scipy.signal.
unique_roots#
- scipy.signal.unique_roots(p, tol=0.001, rtype='min')[源]#
从根列表中确定唯一根及其重数。
- 参数:
- parray_like
根的列表。
- tol浮点数, 可选
用于判断两个根之间距离是否相等时的容差。默认值为 1e-3。有关根分组的详细信息,请参阅“备注”部分。
- 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])