[Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen] | |
Mathematik-Online-Lexikon: | |
Lösen gewöhnlicher Differentialgleichungen mit MATLAB |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | Übersicht |
Zur Lösung von Anfangswertproblemen für gewöhnliche Differentialgleichungen in Standardform,
[t_steps, u] = ode45(f, t_range, u_0)
,
die auf dem eingebetteten Runge-Kutta-Verfahren von Dormand-Prince basiert.
Die rechte Seite der Differentialgleichung
wird als function-handle übergeben.
Für einen Skalar und einen Spaltenvektor
berechnet die entsprechende
Matlab-Funktion den
Spaltenvektor .
Mit
t_range = [t_0; t_end]
wird das Zeitintervall spezifiziert.
Schließlich ist der Spaltenvektor
u_0
der Anfangswert .
Das Programm
ode45
gibt die Lösung an den zur Berechnung benutzten
Zwischenzeiten
t_steps(k)
als Zeilenvektoren
u(k,:)
zurück.
Als Beispiel wird die durch
f=@(t,u) ([u(2); -sin(u(1))+cos(t)/3]); t_range = [0; 40]; u_0 = [0; 0]; [t_steps, u] = ode45(f, t_range, u_0);
Die Lösung kann auf verschiedene Weise visualisiert werden. Mit
plot(t_steps, u);
werden die beiden Lösungskomponenten als Funktion von gezeigt. Alternativ kann mit
plot(u(:,1),u(:,2));
die Trajektorie in der Phasenebene dargestellt werden.
Möchte man die Lösung zu bestimmten vorgegebenen
Zeiten berechnen, so können diese in dem
Vektor
t_range
spezifiziert werden, z.B.
t_range = [0: 0.1: 40]
Die Routine
ode45
erlaubt auch eine Reihe weiterer Optionen,
wie beispielsweise Toleranzen oder
Vorzeichenrestriktionen.
automatisch erstellt am 19. 8. 2013 |