Ich bin ein Neuling in Eigenwertalgorithmen, aber etwas macht mich auf sich aufmerksam. Der QR-Algorithmus arbeitet mit reellen / komplexen Matrizen und erzeugt reelle / komplexe Eigenwerte. Es können jedoch keine komplexen Eigenwerte aus einer realen Matrix erzeugt werden . Hier ein vereinfachtes Beispiel, geschrieben in Julia und abgeleitet von hier und hier :
using LinearAlgebra
A = [7 3 4 11 -9 -2;
-6 4 -5 7 1 12;
-1 -9 2 2 9 1;
-8 0 -1 5 0 8;
-4 3 -5 7 2 10;
6 1 4 -11 -7 -1]
M = copy(A)
for i=1:100
global M
Q,R = LinearAlgebra.qr(M);
M=R*Q;
end
display(diag(M))
display(eigvals(A))
6-element Array{Float64,1}:
-2.8415406888480472
8.675063708533656
3.658872985794657
6.3411270142053695
0.12201942568224483
3.0444575546321087
6-element Array{Complex{Float64},1}:
2.916761509842819 + 13.248032079355992im
2.916761509842819 - 13.248032079355992im
5.000000000000005 + 6.000000000000003im
5.000000000000005 - 6.000000000000003im
1.5832384901571723 + 1.4155521348117128im
1.5832384901571723 - 1.4155521348117128im
Die Definition von Matrix A als komplex mit nur realen Komponenten macht keinen Unterschied.
Meine Fragen sind:
- Was ist mein konzeptionelles Missverständnis zu diesem Thema?
- Welchen Schritt mache ich falsch?
- und wie kann man das beheben?
Vielen Dank
linear-algebra
eigenvalues
iterative-method
Noel Araujo
quelle
quelle
Antworten:
eigvals
tut es.eigenvalues
quelle
M
, nicht nur die Diagonalediag(M)
(da sieM
weder diagonal noch dreieckig ist). Dann sehen Sie die 2x2 Blöcke. Sie können meinen Anspruch überprüfen mit zeigvals(M[1:2,1:2])
. (@BrianBorchers Das ist ein ordentlicher Trick!)Vergessen Sie den QR-Algorithmus und denken Sie daran, was Eigenwerte sind - sie sind die Wurzeln des charakteristischen Polynoms für die Matrix (siehe z . B. https://en.wikipedia.org/wiki/Characteristic_polynomial ). Für eine reelle Matrix der Ordnung N ist dies ein Polynom der Ordnung N mit reellen Koeffizienten. Reale Koeffizienten bedeuten jedoch nicht unbedingt echte Wurzeln. Möglicherweise haben Sie komplexe konjugierte Paare. Daher kann eine allgemeine reelle Matrix komplexe Eigenwerte haben.
quelle
Ich habe diese Gleichung oft verwendet, um die Konvergenz zu testen. Die 11 in der ersten Reihe sollte -11 sein. Das Ausführen des QR-Algorithmus ohne Verschiebungen, genau wie die Matrix, für ungefähr 60 Iterationen führt zu einer Matrix, deren Eigenwerte fast genau auf der Diagonale angezeigt werden, selbst die komplexen. Die 5 + -6i befinden sich in den ersten beiden Zeilen, die 4 und 3 in den nächsten beiden und schließlich die 1 + -21 im unteren rechten Block. Denken Sie nicht, dass die komplexen Werte normalerweise klar erscheinen, ohne die 2x2-Matrixeigenwerte zu berechnen.
quelle