scipy.linalg.

fiedler_companion#

scipy.linalg.fiedler_companion(a)[Quelle]#

Gibt eine Fiedler-Begleitmatrix zurück

Gegeben ein Array von Polynomkoeffizienten a, bildet diese Funktion eine pentadiagonale Matrix mit einer speziellen Struktur, deren Eigenwerte mit den Wurzeln von a übereinstimmen.

Parameter:
a(..., N) array_like

1-D-Array von Polynomkoeffizienten in absteigender Reihenfolge mit einem von Null verschiedenen führenden Koeffizienten. Für N < 2 wird ein leeres Array zurückgegeben. N-dimensionale Arrays werden als Stapel behandelt: jeder Schnitt entlang der letzten Achse ist ein 1-D-Array von Polynomkoeffizienten.

Rückgabe:
c(..., N-1, N-1) ndarray

Ergebnis-Begleitmatrix. Für Stapel-Eingaben entspricht jeder Schnitt der Form (N-1, N-1) entlang der letzten beiden Dimensionen der Ausgabe einem Schnitt der Form (N,) entlang der letzten Dimension der Eingabe.

Siehe auch

Begleitmatrix

Hinweise

Ähnlich wie bei companion sollte jeder führende Koeffizient entlang der letzten Achse der Eingabe ungleich Null sein. Wenn der führende Koeffizient nicht 1 ist, werden andere Koeffizienten vor der Array-Erzeugung skaliert. Um numerische Probleme zu vermeiden, ist es am besten, ein monisches Polynom anzugeben.

Hinzugefügt in Version 1.3.0.

Referenzen

[1]

M. Fiedler, "A note on companion matrices", Linear Algebra and its Applications, 2003, DOI:10.1016/S0024-3795(03)00548-2

Beispiele

>>> import numpy as np
>>> from scipy.linalg import fiedler_companion, eigvals
>>> p = np.poly(np.arange(1, 9, 2))  # [1., -16., 86., -176., 105.]
>>> fc = fiedler_companion(p)
>>> fc
array([[  16.,  -86.,    1.,    0.],
       [   1.,    0.,    0.,    0.],
       [   0.,  176.,    0., -105.],
       [   0.,    1.,    0.,    0.]])
>>> eigvals(fc)
array([7.+0.j, 5.+0.j, 3.+0.j, 1.+0.j])