Ich versuche einige Ressourcen zu finden, um zu erklären, wie man Randbedingungen wählt, wenn man Finite-Differenzen-Methoden zur Lösung von PDEs einsetzt.
Die Bücher und Notizen, auf die ich momentan Zugriff habe, sagen ähnliche Dinge aus:
Die allgemeinen Regeln für die Stabilität bei Vorhandensein von Grenzen sind für einen Einführungstext viel zu kompliziert. Sie erfordern ausgefeilte mathematische Maschinen
(A. Iserles Ein erster Kurs in der numerischen Analyse von Differentialgleichungen)
Beispiel: Wenn Sie versuchen, die 2-Schritt-Sprungmethode für die Advektionsgleichung zu implementieren:
mit MATLAB
M = 100; N = 100;
mu = 0.5;
c = [mu 0 -mu];
f = @(x)(exp(-100*(x-0.5).^2));
u = zeros (M, N);
x = 1/(M+1) * (1:M);
u(:,1) = f(x);
u(:,2) = f(x + mu/(M+1));
for i = 3:N
hold off;
u(:,i) = conv(u(:,i-1),c,'same') + u(:,i-2);
plot(x, u(:,i));
axis( [ 0 1 0 2] )
drawnow;
end
Die Lösung verhält sich gut, bis sie die Grenze erreicht, wenn sie sich sehr plötzlich schlecht verhält.
Wo kann ich lernen, mit solchen Randbedingungen umzugehen?