scipy.signal.
unique_roots#
- scipy.signal.unique_roots(p, tol=0.001, rtype='min')[源代码][源代码]#
从根列表中确定唯一的根及其重数。
- 参数:
- parray_like
根列表。
- tolfloat, 可选
在考虑两个根之间的距离时,认为它们相等的容差。默认值为 1e-3。请参阅关于根分组的详细说明。
- rtype{‘max’, ‘maximum’, ‘min’, ‘minimum’, ‘avg’, ‘mean’}, 可选
如果多个根在 tol 内彼此接近,如何确定返回的根。
‘max’, ‘maximum’: 选择这些根中的最大值
‘min’, ‘minimum’: 选择这些根中的最小值
‘avg’, ‘mean’: 取这些根的平均值
在复杂根中寻找最小值或最大值时,首先按实部比较,然后按虚部比较。
- 返回:
- 唯一ndarray
唯一根的列表。
- 多重性ndarray
每个根的重数。
注释
如果我们有三个根
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])