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
Кратность каждого корня.
Примечания
Если у нас есть 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])