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 個根
a
、b
和c
,使得a
接近b
且b
接近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])