Berechnung der Eigenwerte

Hallo alle zusammen,

ich brauche Eure Hilfe dringend.

Ich muss ein Programm in VBA mit Excel schreiben. Das Programm muss aus quadratischen und symmetrischen Matrizen Eigenwerte und Eigenvektoren berechnen. Und ich weiss nicht, welches Verfahren soll ich nehmen (z.B. Cholesky-Verfahren oder LU-Zerlegung). Wie funktionieren diese Methode überhaupt?
Wenn mir jemand helfen kann, werde ich sehr dankbar sein.
viele grüße

Hallo !

Cholesky funktionert nur wenn du weißt, dass die Matrix symmetrisch und positiv definit ist.
Wenn sie dass ist kannst du sie zerlegen in A=LLT, wobei L eine Dreiecksmatrix ist. Die Eigenwerte von A sind dann gerade die Quadrate der Diagonalelemente von L.
Ansonsten gibt es z.B. die Potenzmethode, die aber nur bei einfachen Eigenwerten konvergiert.
Ich empfehle dir den QR-Algorithmus, der folgendermaßen funktioniert:
A0:=A
Dann iterativ
QR-Zerlegung von Ak, also Ak=QkRk
Ak+1:=RkQk
Wenn A nur reelle Eigenwerte hat entsteht dabei eine Dreiecksmatrix die die Eigenwerte von A auf der Diagonalen hat.
Falls A komplexe Eigenwerte besitzt entsteht eine Blockdreiecksmatrix mit einem 2x2-Block der Form
a b
-b a
auf der Diagonalen für jeden komplexen Eigenwert.
Der zugehörige Eigenwert ist dann a+ib.

Grüße

hendrik

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Hendrik, danke für Ihre Antwort.
ja das Cholesky-Verfahren passt zu meinem Programm nicht, da
die Matrizen nicht immer positiv definit sind, Schade.

Können Sie mir vielleicht qr-Zerlegung an einem Beispiel
erklären.

noch eine Frage
LU-Zerlegung kann ich auch nehmen oder?
oder gibts hier irgendwelche Nachteile ?

Vielen Dank im Voraus

Grüss
studStuttgart

Können Sie mir vielleicht qr-Zerlegung an einem Beispiel
erklären.

Das würde zu ausführlich werden, fürchte ich. Prinizpiell gibt es da zwei Möglichkeiten, die Householder-Transformation und die Givens-Rotation. Letztere ist denke ich weiter verbreitet und auch leichter verständlich.
Ich könnte dir ein Programm in C oder C++ schreiben, das die QR-Zerlegung einer Matrix berechnet, das wäre kein großer Aufwand. Falls du sonst nicht weiter kommst, sag einfach Bescheid, jetzt sind ja Ferien, da hab ich Zeit :wink:

noch eine Frage
LU-Zerlegung kann ich auch nehmen oder?
oder gibts hier irgendwelche Nachteile ?

Ich weiß nicht ob es einen Algorithmus mit der LU-Zerlegung gibt um die Eigenwerte einer Matrix zu finden, vielleicht irgendein Krylov-Verfahren.
Der große Nachteil der LU-Zerlegung ist, dass sie numerisch instabil ist, d.h. kleine Fehler in den Eingangsdaten oder Rundungsfehler die während des Rechenvorgangs gemacht werden können zu großen Fehlern in den Ausgangsdaten führen, so dass du nicht sicher sein kannst wie gut das Ergebnis ist.
Die QR-Zerlegung dagegen ist numerisch stabil und deshalb generell zu bevorzugen auch wenn sie etwas länger braucht.

hendrik