scipy.signal.

unique_roots#

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

Bestimmt eindeutige Wurzeln und ihre Vielfachheiten aus einer Liste von Wurzeln.

Parameter:
parray_like

Die Liste der Wurzeln.

tolfloat, optional

Die Toleranz dafür, dass zwei Wurzeln als gleich betrachtet werden, gemessen an ihrem Abstand. Standardwert ist 1e-3. Details zur Gruppierung von Wurzeln finden Sie in den Hinweisen.

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

Wie die zurückzugebende Wurzel bestimmt wird, wenn mehrere Wurzeln innerhalb von tol voneinander liegen.

  • ‘max’, ‘maximum’: wählt das Maximum dieser Wurzeln aus

  • ‘min’, ‘minimum’: wählt das Minimum dieser Wurzeln aus

  • ‘avg’, ‘mean’: nimmt den Durchschnitt dieser Wurzeln

Beim Ermitteln des Minimums oder Maximums unter komplexen Wurzeln werden diese zuerst nach dem Realteil und dann nach dem Imaginärteil verglichen.

Rückgabe:
uniquendarray

Die Liste der eindeutigen Wurzeln.

multiplicityndarray

Die Vielfachheit jeder Wurzel.

Hinweise

Wenn wir 3 Wurzeln a, b und c haben, so dass a nahe bei b und b nahe bei c liegt (Abstand kleiner als tol), dann bedeutet dies nicht unbedingt, dass a nahe bei c liegt. Es bedeutet, dass die Gruppierung der Wurzeln nicht eindeutig ist. In dieser Funktion verwenden wir eine "gierige" Gruppierung, die die Wurzeln in der Reihenfolge durchläuft, in der sie in der Eingabe p gegeben sind.

Diese Hilfsfunktion ist nicht spezifisch für Wurzeln, kann aber für jede Sequenz von Werten verwendet werden, für die Eindeutigkeit und Vielfachheit bestimmt werden muss. Für eine allgemeinere Routine siehe numpy.unique.

Beispiele

>>> 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')

Prüft, welche Wurzeln eine Vielfachheit größer als 1 haben

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