scipy.signal.

unique_roots#

scipy.signal.unique_roots(p, tol=0.001, rtype='min')[source]#

從根列表確定唯一根及其重數。

參數:
parray_like

根的列表。

tolfloat,選用

兩個根之間距離的容差值,在此容差值內將被視為相等。預設值為 1e-3。 有關根分組詳細資訊,請參閱「Notes」章節。

rtype{‘max’, ‘maximum’, ‘min’, ‘minimum’, ‘avg’, ‘mean’},選用

如果多個根彼此之間的距離在 tol 範圍內,如何確定傳回的根。

  • ‘max’、‘maximum’:選擇這些根的最大值

  • ‘min’、‘minimum’:選擇這些根的最小值

  • ‘avg’、‘mean’:取這些根的平均值

在複數根中尋找最小值或最大值時,會先比較實部,然後比較虛部。

回傳值:
uniquendarray

唯一根的列表。

multiplicityndarray

每個根的重數。

註解

如果我們有 3 個根 abc,使得 a 接近 bb 接近 c (距離小於 tol),那麼這不一定表示 a 接近 c。 這表示根分組不是唯一的。 在此函數中,我們使用「貪婪」分組,按照根在輸入 p 中給出的順序進行分組。

此實用函數不特定於根,但可用於任何需要確定唯一性和重數的值序列。 有關更通用的常式,請參閱 numpy.unique

範例

>>> from scipy import signal
>>> vals = [0, 1.3, 1.31, 2.8, 1.25, 2.2, 10.3]
>>> uniq, mult = signal.unique_roots(vals, tol=2e-2, rtype='avg')

檢查哪些根的重數大於 1

>>> uniq[mult > 1]
array([ 1.305])