Die ode-Functions in Matlab Für die numerische Integration von Anfangswertproblemen stellt Matlab insgesamt sieben Functions zur Verfügung, deren Namen mit ode beginnen (steht für "ordinary differential equations") und deren Aufruf weitgehend einheitlich ist. Die Auswahl der geeigneten Function hängt vom zu lösenden Problem und den Anforderungen an die Lösung ab. Dies stellt den Anwender meist vor kaum zu beantwortende Fragen. In der Matlab-Hilfe wird deshalb die (sehr sinnvolle) Empfehlung gegeben: "ode45 ist the best function to apply as a 'first try' for most problems". Zu ergänzen wäre vielleicht: Und wenn dieser erste Versuch fehlschlägt, dann versuche man es zunächst noch einmal (oder mehrmals) mit ode45, indem man über die "options" Einfluss auf die Berechnung nimmt. Die folgenden Aussagen werden deshalb für die Function ode45 formuliert, gelten aber in ähnlicher und/oder sinngemäßer Art auch für die anderen Functions, zunächst aber eine an dieser Stelle besonders nachdrückliche Empfehlung:
|
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:
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?" |
Fazit
|