Beispiel für CG-Verfahren

Neue Frage »

MoKa Auf diesen Beitrag antworten »
Beispiel für CG-Verfahren
Meine Frage:
Hallo zusammen,

wollte fragen, ob ihr ein schönes Beispiel für das CG-Verfahren kennt, wo mehrere als 3 Iterationen vorkommen, und die Matrix dünn bestetzt ist.

Beste Grüße, MoKa

Meine Ideen:
Leider komme ich nur auf Gleichungssysteme, wo ich nach 3 Iterationen die Lösung finde.
lgrizu Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
Kann es sein, dass du nur 3x3 Matrizen betrachtest? verwirrt

Das CG Verfahren liefert eine exakte Lösung nach maximal n Schritten, wenn du eine nxn Matrix betrachtest.

möchtest du also mehr als 3 iterationsschritte durchführen musst du acuh größere Matrizen betarchten.
MoKa Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
Nee. Ich habe eine dünn besetzte Matrix

A=

72 -36 0 0 0
-36 72 -36 0 0
0 -36 72 -36 0
0 0 -36 72 -36
0 0 0 -36 72

benutzt und für b = [1; 1; 1; 1; 1] angegeben.

Die Lösung dieses Systems lautet: ans =

0.0694
0.1111
0.1250
0.1111
0.0694

und es benötigt nur 3 Iterationen um sie zu bestimmen unglücklich
lgrizu Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
Dann sei doch froh, dass du nur 3 Iterationsschritte benötigst....

Wie gesagt, nach maximal n Schritten ist man fertig, schneller geht immer Augenzwinkern

Ich habe jetzt kein LGS parat, das garantiert mehr Schritte benötigt, CG ist mir auch immer zu aufwendig, das zu Fuß zu rechnen, für einen Rechner ist es sicherlich wesentlich schneller als Gauß, aber zu Fuß führe ich ja nicht Matrix-Matrix Multipliaktionen durch sondern fasse mehrere Matrixmultiplikationen zusammen, weshalb es für mich (sehr subjektiv) wesentlich einfacher ist, Gauß zu verwenden, gerade bei kleinen Matrizen.

Ich denke, es werden sich sicherlich einige Beispiele finden lassen, wenn man sich einmal DGLen anschaut, die mehr als 3 Iterationsschritte benötigen. Die Frage, die sich mir stellt ist, warum du unbedingt mehrere Iterationen durchführen möchtest....
Mystic Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
Zitat:
Original von MoKa
Die Lösung dieses Systems lautet: ans =

0.0694
0.1111
0.1250
0.1111
0.0694

und es benötigt nur 3 Iterationen um sie zu bestimmen unglücklich

Das ist nicht die Lösung und du wirst sie auch so nicht in 3 oder 5 oder irgendeiner endlichen Anzahl von Schritten bekommen, ganz einfach, weil der Wert z.B. von eben nicht 0.1111, sondern 1/9 ist und dafür existiert keine Darstellung als endliche Maschinenzahl... Du musst also von vornherein exakt und in Bruchdarstellung mit einem CAS rechnen und ob da man dann wirklich nur 3 Iterationen braucht hängt ja wohl noch vom Startvektor ab, den du uns sinnigerweise verschweigst... Wenn ich z.B. bei der Lösung selbst starte, dann brauche ich nur 1 Iteration um das festzustellen...
MoKa Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
mein startverkor ist: x0 = [0; 0; 0; 0; 0]. Ich habe dieses Beispiel auch im Internet gefunden und Ergebnis entspricht dem aus dem Internet. 1/9 ist doch 0,111111..... Ich brauche die Dezimalzahlen.

Ich benötige mehrere Iterationen, um auf der Grafik besser die Fehlerwerte zur exakten Lösung über ein längeres Intervall (nach jeder Iteration) sehen zu können.
 
 
Mystic Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
Zitat:
Original von MoKa
mein startverkor ist: x0 = [0; 0; 0; 0; 0]. Ich habe dieses Beispiel auch im Internet gefunden und Ergebnis entspricht dem aus dem Internet. 1/9 ist doch 0,111111..... Ich brauche die Dezimalzahlen.

Ja, 1/9 ist die (periodische und insbesondere nicht abbrechende!) Dezimalzahl 0,11111... Sie lässt sich somit weder binär, noch dezimal als Maschinenzahl darstellen, also genau das, was ich oben auch gesagt hatte...

Zitat:
Original von MoKa
Ich benötige mehrere Iterationen, um auf der Grafik besser die Fehlerwerte zur exakten Lösung über ein längeres Intervall (nach jeder Iteration) sehen zu können.

Tja, und wie ich auch schon gesagt habe, hängt die letztendliche Anzahl der Iterationen (bei exakter Rechnung max. 5) eben auch vom Startvektor ab... Warum du also nicht schon von alleine auf die Idee gekommen bist, einfach einen anderen Startvektor zu wählen, verstehe ich nicht, insbesondere unter der Annahme, dass du ein kleines Programm für das CG-Verfahren geschrieben hast... Mein Rat: Berechne die Eigenvektoren der Matrix und vermeide jedwede Übereinstimmung von Nullkomponenten des Startvektors mit entsprechenden Nullomponenten von diesen, da solche Übereinstimmungen natürlich (wenn man das CG-Verfahren wirklich begriffen hat!) die Anzahl der Iterationen entsprechend vermindert...
MoKa Auf diesen Beitrag antworten »
RE: Beispiel für CG-Verfahren
ok. Weiß selber nicht, warum ich es nicht ausprobiert habe. Finger1

Aber natürlich vielen, vielen Dank für deine Antwort smile
Neue Frage »
Antworten »



Verwandte Themen

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