Automatische Schrittweitensteuerung garantiert nicht automatisch korrekte Ergebnisse
Für die Schrittweitensteuerung werden nur "lokale Informationen" (an dem Punkt, für den die Werte gerade berechnet wurden) ausgewertet. Damit kann nicht garantiert werden, dass sich über das gesamte Integrationsintervall nicht doch Fehler ergeben, die die Rechnung ungenau bis unbrauchbar machen. Und wenn erst einmal ein größerer Fehler entstanden ist, kann die weitere Rechnung nur noch unbrauchbare Ergebnisse bringen. Die dringende Empfehlung kann nur lauten:
Jede Rechnung muss auf irgendeine Weise kontrolliert werden, mindestens sollte man zwei Rechnungen mit unterschiedlichen Einstellungen für die Optionen ausführen.
Nachfolgend wird auf zwei Beispiele verwiesen, die diesen Satz bestätigen:
Das erste Beispiel stammt aus dem Buch von Cleve Moler: "Numerical Computing with MATLAB" (das Buch steht komplett zum Download zur Verfügung unter http://www.mathworks.com/moler/chapters.html).
Es ist ein einfaches Doppelpendel (zwei Punktmassen, verbunden mit masselosen starren Stangen, keine Reibung, kein Luftwiderstand). Die Differenzialgleichungen werden am Ende des Kapitels 7 hergeleitet. Die Programmierung als Matlab-Function wird ausführlich beschrieben, die Function selbst (sehr komfortabel mit Animation zeitgleich mit der Berechnung) steht unter NCM ("Numerical Computing with Matlab", http://www.mathworks.com/moler/ncmfilelist.html) als Datei swinger.m zur Verfügung.
Da ein praktisch unendliches Integrationsintervall vorgegeben ist (der Benutzer kann die Rechnung per Mausklick anhalten), wird hier die Frage untersucht: "Doppelpendel, wie lange stimmt die Rechnung?"
Das zweite Beispiel ist ein einfaches Feder-Masse-System mit nur einem Freiheitsgrad, das bei bestimmten Parametern in eine kritische Situation geraten können, bei der der weitere Verlauf der Bewegung von kleinen Unterschieden der berechneten Bewegungsgrößen abhängig ist. Zwei Strategien werden hier für die Kontrolle der Genauigkeit verfolgt:
- Man gibt die Bewegungsgrößen (Ort und Geschwindigkeit) am Ende des berechneten Intervalls aus und vergleicht so zwei Rechnungen mit unterschiedlichen Schrittweiten.
- Es wird eine zusätzliche Kontrollfunktion erzeugt (hier: Gesamtenergie im System), deren Verlauf man als Indiz für eine "gesunde" numerische Rechnung werten kann.
|