Es sei die Randwertaufgabe
gegeben. ,
und
seien so gewählt, das
die exakte Lösung ist.
a) Sei zunächst . Geben Sie das Gleichungssystem an, das bei der Diskretisierung der Randwertaufgabe mittels finiter Differenzen entsteht. Geben Sie die Konditionszahl der Systemmatrix für unterschiedliche Werte von
und unterschiedliche Schrittweiten an (Matlab Befehl cond). Welchen Zusammenhang stellen Sie fest?
b) Sei nun . Geben Sie jeweils die Systemmatrix für eine Diskretisierung mittels finiter Differenzen an, wobei der Term erster Ordnung einmal durch die Rückwärtsdifferenz und einmal durch die zentrale Differenz approximiert wird. Bestimmen Sie für beide Varianten und verschiedene Schrittweiten eine approximative Lösung und bestimmen Sie jeweils den maximalen Fehler. Wie ändert sich der Fehler bei Halbierung der Schrittweite?
Lösung
a )
Wir wollen die Gleichung nun diskretisieren im Punkt .
Approximation der Ableitung mit einem Differenzenquotienten:
Nun müssen wir die Werte bestimmen. Dabei müssen wir alle Werte gleichzeitig bestimmen und können nicht wie beim Euler-Verfahren rekursiv vorgehen. Es ist also ein Gleichungssystem aufzustellen und zu lösen. Wir schreiben als Matrix:
Um das Gleichungssystem zu vereinfachen, können wir die erste und die letzte Zeile herauslösen. Das resultierende Gleichungssystem hat dann direkt die praktische Eigenschaft, dass es tridiagonal und symmetrisch ist:
MatLab code zur Berechnung der Konditionszahl:
function co = finDiff1(c) sw=[0.2, 0.1, 0.05, 0.025, 0.0125, 0.00625]; for i = 1 : 6 h = sw(i); N = 1 / h; v = [(c+2 / (h * h)) * ones(1, N-1)]'; v1 = [-1 / (h * h) * ones(1, N-1)]'; A = spdiags([v1, v, v1], -1 : 1, N-1, N-1); %weil man bei spa die Diagonalen %eintragen kann co(i) = cond(full(A)); %Umwandlung in normale Matrix, %weil cond nur da geht end
Zusammenhang:
Die Konditionszahl steigt quadratisch mit sinkender Schrittweite: .
Wenn das c größer wird, ist das Problem besser konditioniert.
b )
Zentrale Differenz:
Rückwärtsdifferenz:
Die Matrix sieht für die zentrale Differenz folgendermaßen aus:
Die Matrix für die Rückwärtsdifferenz sieht folgendermaßen aus:
Es ergibt sich quadratische Konvergenz für die zentrale Differenz, normale (lineare) Konvergenz für die Rückwärtsdifferenz. Das liegt daran, dass man die erste Ableitung approximieren muss. Dieses geschieht bei der zentralen Differenz mit der Konvergenzordnung 2, bei der Rückwärtsdifferenz mit der Konvergenzordnung 1. Dieser Unterschied zieht sich dann durch den Rest der Rechnung durch.
Interpretation: mit
für die Rückwärtsdifferenz
für die zentrale Differenz