Implementieren Sie den Algorithmus 1 aus der Vorlesung (Methode der Konjugierten Gradienten) zur Lösung des Gleichungssystems
Ax = b
in Matlab. Die Anwendung der Matrix A auf einen Vektor Au soll explizit, also als Matrix-Vektor-Multiplikation erfolgen. Die Matrix A soll dem diskreten Laplace-Operator mit Dirichlet-Randbedingungen in zwei Dimensionen entsprechen (A ∼ −Δ). Sie können dafür die auf der Website bereitgestellte Matlab-Routine laplace.m
benutzen.
Testen Sie ihr Programm und untersuchen Sie die Konvergenz für eine Diskretisierung auf einem 64x64 Gitter:
Plotten Sie die Norm des Residuums ||r(k)|| und des Fehlers ||e(k)|| als Funktion der Iterationsschritte k. Wie erklären Sie den Unterschied zwischen beiden?
und setzen Sie dabei den Startvektor x(0) = 0.
10 Punkte
Beweisen Sie die folgenden Eigenschaften der Residuen r(k) und Suchrichtungen p(k), die durch den Algorithmus aus der Vorlesung generiert werden:
r(k)Tp(i) = 0 i < k
p(k)TAp(i) = 0 i ≠ k
r(k)Tr(i) = 0 i ≠ k
p(k)Tr(k) = r(k)Tr(k)
Hinweis: Beweisen Sie die ersten beiden Zeilen durch Induktion.
10 Punkte