12.02.2014 Aufrufe

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

7.10. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN IN MATLAB 297<br />

Abbildung 7.28: Vergleich<br />

aller in MatLab<br />

implementierten Verfahren<br />

zur Lösung<br />

gewöhnlicher Differentialgleichungen<br />

was sich einerseits in relativ großen Abweichungen von der analytischen Lösung zeigt (siehe<br />

Abb. 7.28), andererseits in recht langer Rechenzeit.<br />

§ 1121 Die Laufzeit eines Statements in MatLab lässt sich mit Hilfe der Stoppuhr bestimmen.<br />

Diese wird vor dem Statement mit tic gestartet und am Ende des Statements mit<br />

toc gestoppt, wobei der Wert von toc einer Variablen zugewiesen oder auf dem Bildschirm<br />

ausgegeben werden kann. Für die in Abb. 7.28 berechneten Kurven benötigte MatLab für<br />

die einzelnen Lösungsverfahren auf einem älteren Notebook die folgenden Zeiten:<br />

tic<br />

toc<br />

Funktion rungekutta ode45 ode23 ode113 ode15s ode23s ode23tb<br />

Zeit t [ms] 70 30 10 80 41 30 60<br />

Dabei zeigt sich für dieses Problem ode45 als Sieger: bei vergleichbarer Genauigkeit wie<br />

ode113 oder das handgestrickte rungekutta ist hier die Laufzeit am geringsten. Alle Solver<br />

für steife Differentialgleichungen liefern bei vergleichbarer oder fast doppelt so großer<br />

Rechenzeit nur um mehrere Größenordnungen verringerte Genauigkeit.<br />

Steife Differentialgleichungen<br />

§ 1122 Diese letzteren Verfahren sind jedoch speziell für steife Differentialgleichungen entwickelt,<br />

d.h. Differentialgleichungen die eine abfallende Exponentialfunktion enthalten, deren<br />

Zeitkonstante klein ist gegen das Integrationsintervall. Als Beispiel verwenden wir die simple<br />

DGL für den radioaktiven Zerfall und setzen die Zeitkonstante gleich 1. Mit einem Integrationsintervall<br />

von 0 bis 10 ist die Bedingung für eine steife DGL zwar noch nicht optimal<br />

erfüllt aber zumindest angenähert. Abbildung 7.29 gibt einen Vergleich der verschiedenen in<br />

MatLab implementierten Verfahren. Zusätzlich wurde das selbst gestrickte Runge-Kutta-<br />

Verfahren mit 100 Schritten verwendet. Die anderen Verfahren kommen auch hier wieder<br />

mit wesentlich weniger Schritten aus. In diesem Integrationsbereich sind die konventionellen<br />

Verfahren alle noch recht genau, der Vorteil der steifen Verfahren liegt in ihrer geringeren<br />

Rechenzeit. Erweitern wir den Integrationsbereich, so wird die Bedingung für eine steife DGL<br />

noch besser erfüllt. Dann liefert MatLab mit allen Verfahren für große Zeiten sehr große<br />

Fehler, während das handgestrickte Runge–Kutta-Verfahren auf Grund seiner kleinen Schrittweite<br />

(und damit der Langsamkeit) auf eine recht genaue Annäherung führt. Allerdings sehen<br />

wir auch, dass die für steife DGLs geschriebenen Verfahren wesentlich bessere Annäherungen<br />

liefern als die für nicht-steife. Eine bessere Anpassung bei allen MatLab-Verfahren können<br />

c○ M.-B. Kallenrode 13. März 2007

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!