Numerik f¨ur Chemiker • Prof. Dr. B. Hartke, Universit¨at Kiel, hartke@pctc.uni-kiel.de
Aufgabenblatt 6: Lineare Gleichungssysteme
Aufgabe 1: Grundverfahren (8 Punkte)
Programmieren Sie zur L¨osung eines Systems aus N Gleichungen und N Unbekannten die Gauß-Elimination mit R¨uckw¨artssubstitution sowie die LU-Zerlegung mit Vorw¨arts- und R¨uckw¨artssubstitution, wie in der Vorlesung vorgestellt (jeweils mit Teilpivotsuche;
nat¨urlich ist es w¨ahrend der Entwicklung einfacher, die Teilpivotsuche erstmal wegzulassen).
Benutzen Sie als ersten Test das lineare Gleichungssystem A·x=b mit der Matrix A=
4 3 1
2 −1 −1
7 1 −3
(1)
und der rechten Seite
b=
13
−3 0
(2)
Der L¨osungsvektor ist
x=
1 2 3
(3)
Dieses System sollte auch ohne Pivotierung l¨osbar sein.
Aufgabe 2: Anwendung (3 Punkte)
Gegeben sind vier Vorratsbeh¨alter mit einer unterschiedlich verd¨unnten S¨aure. Stellt man aus diesen vier Beh¨altern eine Mischung im Verh¨altnis 1:1:1:1 her, erh¨alt man 25%ige S¨aure; bei 4:3:2:1 ist sie 20%ig; bei 4:1:1:4 25%ig; und bei 4:1:4:1 22%ig. Berechnen Sie mit einem Ihrer Programme aus Aufg.1, wie groß die Konzentrationen der S¨aure in den vier Vorratsbeh¨altern sind. (Hinweis: Wenn Sie f¨ur einen oder mehrere der Vorratsbeh¨alter eine negative Konzentration erhalten, haben Sie eine entscheidende Sache ¨ubersehen. . . )
Aufgabe 3: Schlechte Kondition, Pivotierung (3 Bonuspunkte)
Das analytische Ergebnis des Gleichungssystems A·x=b mit der Matrix A=
1 w w 1
(4) und diesen Werten f¨ur die rechte Seite
b= 1
1
(5) kann man analytisch leicht zu
x=
1/(1 +w) 1/(1 +w)
(6) berechnen. F¨ur hinreichend kleine Werte von w ist das System jedoch schlecht konditioniert (aber selbst f¨ur w= 0 offensichtlich nicht singul¨ar!).
1
Numerik f¨ur Chemiker • Prof. Dr. B. Hartke, Universit¨at Kiel, hartke@pctc.uni-kiel.de
Das ¨außert sich numerisch dadurch, daß das Ergebnis f¨ur die lediglich zeilenvertauschten Originalgleichungen nicht mit dem zu erwartenden ¨ubereinstimmt. (Warum ist ohne Zeilen- vertauschung bei hinreichend kleinem w-Wert eigentlich gar kein numerischer Rechenschritt mehr n¨otig, sondern die L¨osung w¨are direkt aus der Aufgabenstellung ablesbar?)
Versuchen Sie, mit Ihrem eigenen Programm aus Aufg.1 diesen Rundungsfehler durch einen hinreichend kleinen Wert f¨ur w zu provozieren. Achtung: Wie in der Vorlesung gezeigt, funktioniert das nur, wenn das Programm nicht “intelligent” genug ist: F¨ur diese Aufgabe pivoting abschalten! Zeigen Sie, daß durch hinreichend kleine w-Werte Elemente des L¨osungsvektors erzeugbar sind, die um mehr als 100% vom richtigen Wert abweichen.
Aufgabe 4: Matrixinversion (5 Bonuspunkte)
Schreiben Sie Ihr Programm f¨ur die Behandlung mehrerer rechter Seiten um, falls Sie diese M¨oglichkeit noch nicht vorgesehen haben. Dadurch erhalten Sie die M¨oglichkeit zur Matrixinversion, durch B= 1 (siehe Vorlesung). Testen Sie diese Matrixinversion mit 3 selbstgew¨ahlten, nicht-trivialen Matrizen der Dimensionen 3, 10 und 20. Kontrollieren Sie dabei jeweils, daß die resultierende invertierte Matrix multipliziert mit der urspr¨unglichen Matrix die Einheitsmatrix ergibt.
2