Gauß-Algorithmus programmieren

Neue Frage »

kaktus018 Auf diesen Beitrag antworten »
Gauß-Algorithmus programmieren
Hallo!

Ich bin dabei in Excel-VBA den Gauß-Algorithmus umzusetzen und bin dabei auf ein Problem gestoßen. Folgende Seite habe ich als Informationsquelle verwendet: http://www.tm-mathe.de/Themen/html/der_verkettete_algorithmus__lr.html

Ich zerlege also die Matrix A in die Dreiecksmatrizen L und R und berechne die Vektoren y und schlussendlich die Lösung x. So weit so gut. Mit dem angegebenen Beispiel funktioniert das auch problemlos. Nur wenn ich jetzt Koeffizientenmatrizen habe, die Nullen enthalten wird's problematisch (Nulldivision). Im verlinkten Artikel steht, dass die Hauptdiagonalen in den Matrizen L und R immer besetzt sind. Wenn dies der Falle wäre, dann hätte ich auch keine Nulldivision, aber es wird tatsächlich zumindest ein Eintrag Null.
Im angehängten Bild ist der Wert rot markiert. Genau so weit schafft es das Programm.

Hat jemand eine Idee, wo hier das Problem liegt?
HAL 9000 Auf diesen Beitrag antworten »
Pivotisierung
Schon mal davon was gehört?
kaktus018 Auf diesen Beitrag antworten »
RE: Pivotisierung
Nein, hab ich nicht smile .
Wie führe ich dann die Zeilentauschoperationen richtig durch, sodass ich die Nulldivision vermeide? Einfach alles durch probieren kann ja nicht zielführend sein.
HAL 9000 Auf diesen Beitrag antworten »
RE: Pivotisierung
Im Falle eines störenden Nullelements (oder generell wenn man mit Pivotisierung vielleicht aus numerischen Gründen arbeitet) ist eine Zeilenvertauschung nötig. Dem entspricht einer Links-Multiplikation mit einer entsprechenden Permutationsmatrix. Das ist u.U. mehrmals nötig, so dass man am Ende nicht die LR-Zerlegung von , sondern von berechnet hat mit einer Permutationsmatrix , die all jene vorgenommenen Zeilenvertauschungen beinhaltet. D.h., man hat dann berechnet, und die Lösung von entspricht dann , wobei eben die entsprechenden Zeilenvertauschungen im Zielvektor beschreibt.

Aber ich will da jetzt nicht im Detail eingehen, das haben andere schon viel besser getan.
kaktus018 Auf diesen Beitrag antworten »

Alles klar, vielen Dank!
Nur um das klarzustellen, es reichen allein Zeilentauschoperationen, oder? Ich habe nämlich von einer "vollständigen" Pivotisierung gelesen, bei welcher Zeilen und Spalten getauscht werden. Hat das nur numerische Vorteile oder ist das zur sicheren Vermeidung von Nulldivisionen (sofern Determinate ungleich Null) erforderlich?
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »