Numerische Verfahren Numerische Methoden von gewöhnlichen Differentialgleichungen (AWP) Prof. Dr.-Ing. K. Warendorf, Prof. Dr.-Ing. P. Wolfsteiner Hochschule für Angewandte Wissenschaften München Fakultät 03 WS 13/14 Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 1 / 18
Inhalt Explizite Zeitschrittverfahren für DGL 1. Ordnung 1 Explizite Zeitschrittverfahren für DGL 1. Ordnung Einleitung Explizites Euler-Verfahren Runge-Kutta-Verfahren 4. Ordnung 2 3 DGL-Systeme 1. Ordnung 4 Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 2 / 18
Einleitung Einleitung Explizites Euler-Verfahren Runge-Kutta-Verfahren 4. Ordnung Gegeben sei das Anfangswertproblem: ẏ = f (t, y), y(t 0) = y 0 Aufgabe Berechnung eines Näherungswertes an der Stelle t n = b. y n y(b) mit der Diskretisierung: Zerlegung des Integrationsintervalles [a = t 0, b] in: a = t 0 < t 1 < < t n = b Feste Schrittweite: h = b a = t n i t i 1 Achtung: Der Stabilitätsbereich eines expliziten Einschrittverfahrens und damit die Schrittweite h sind beschränkt. Für zu große h divergiert das Verfahren. h ist auch nach unten beschränkt, da sonst die Rundungsfehler überwiegen! Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 3 / 18
Explizites Euler-Verfahren Einleitung Explizites Euler-Verfahren Runge-Kutta-Verfahren 4. Ordnung Fortschreiterichtung: Steigung in t i 1 Euler-Verfahren Gegeben: Anfangswert: (t 0, y 0 ), Schrittweite: h y i = y i 1 + h f (t i 1, y i 1 ), i = 1,..., n Globaler Diskretisierungsfehler: O(h). Verfahren 1. Ordnung (Konvergenz) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 4 / 18
Runge-Kutta-Verfahren 4. Ordnung Einleitung Explizites Euler-Verfahren Runge-Kutta-Verfahren 4. Ordnung Fortschreiterichtung: mittlere Steigung: Berechnet aus den 4 Steigungen in t i 1, t i und 2 Punkten in der Mitte Runge-Kutta-Verfahren 4. Ordnung Gegeben: Anfangswert: (t 0, y 0), Schrittweite: h y i = y i 1 + 1 (k1 + 2k2 + 2k3 + k4), 6 k 1 = h f (t i 1, y i 1) k 2 = h f (t i 1 + 1 h, 2 yi 1 + 1 k1) 2 k 3 = h f (t i 1 + 1 h, 2 yi 1 + 1 k2) 2 k 4 = h f (t i 1 + h, y i 1 + k 3) i = 1,..., n Globaler Diskretisierungsfehler: O(h 4 ). Verfahren 4. Ordnung (Konvergenz) Matlab: ode45(...). Dieses und entsprechende Verfahren sind mit automatischer Schrittweitensteuerung implementiert. Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 5 / 18
Implizites Euler-Verfahren Implizites Verfahren: Die Funktion f wird nicht an dem schon berechneten Punkt (t i 1, y i 1) ausgewertet, sondern an dem neuen Punkt (t i, y i) Implizites Euler-Verfahren Gegeben: Anfangswert: (t 0, y 0), Schrittweite: h y i = y i 1 + h f (t i, y i), i = 1,..., n Globaler Diskretisierungsfehler: O(h). Verfahren 1. Ordnung (Konvergenz) Das Verfahren ist unbeschränkt absolut stabil (A-stabil), d.h. h unterliegt aufgrund der Stabilität keiner Beschränkung nach oben. Es entsteht eine (nicht)-lineare Gleichung (bzw. System). Diese muss mit geeigneten (numerischen) Verfahren (z.b.) Newton-Verfahren, Fixpunktiteration) gelöst werden. Implizite Verfahren werden insbesondere zur Lösung von steifen DGL-Systemen genutzt. Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 6 / 18
DGL-Systeme 1. Ordnung DGL-Systeme 1. Ordnung Die numerischen Verfahren zur Lösung von DGLn 1. Ordnung lassen sich entsprechend auf Systeme 1. Ordnung übertragen. Die skalaren Operationen müssen als Vektoroperationen aufgefasst werden. DGL-System 1. Ordnung ẏ 1 = f 1 (t, y 1,..., y n ) ẏ 2 = f 2 (t, y 1,..., y n ). ẏ n = f n (t, y 1,..., y n ) : Vektorschreibweise: ẏ = F(t, y) mit den Anfangsbedingungen y 1 (t 0 ) = y (0) 1, y 2(t 0 ) = y (0) 2,..., y n(t 0 ) = y n (0) bzw. y(t 0 ) = y 0. Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 7 / 18
DGL-Systeme 1. Ordnung Explizites Euler-Verfahren für DGL-System 1. Ordnung Euler-Verfahren Gegeben: Anfangswerte: y 1 (t 0 ) = y (0) 1, y 2(t 0 ) = y (0) 2,..., y n(t 0 ) = y n (0) bzw. y(t 0 ) = y 0, Schrittweite: h y i = y i 1 + h F(t i 1, y i 1 ), i = 1,..., n Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 8 / 18
auf ein System 1. Ordnung () Die numerische Lösung von DGLn höherer Ordnung oder von Systemen, erfordert ein Umschreiben in die sogenannte (System 1. Ordnung). DGL n-ter Ordnung: y (n) = f (t, y, ẏ,..., y (n 1) ), Anfangsbedingungen: y(t 0), ẏ(t 0),..., y (n 1) (t 0) Zustandsgrößen: z 1 = y, z 2 = ẏ, z 3 = ÿ,... z n = y (n 1) Umformung in ein System 1. Ordnung: ż 1 = z 2, z 1(t 0) = y(t 0) ż 2 = z 3, z 2(t 0) = ẏ(t 0).,. ż n 1 = z n, z n 1(t 0) = y (n 2) (t 0) ż n = f (t, z 1,..., z n), z n(t 0) = y (n 1) (t 0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 9 / 18
für DGLn 2. Ordnung I DGL 2. Ordnung: ÿ = f (t, y, ẏ) mit AB: y(t 0 ) = y (0) 1, ẏ(t 0) = y (0) 2 lässt sich durch z 1 = y, z 2 = ẏ überführen in die : ż 1 = z 2, z 1 (t 0 ) = z (0) 1 = y (0) 1 ż 2 = f (t, z 1, z 2 ), z 2 (t 0 ) = z (0) 2 = y (0) 2 Vektorielle Schreibweise: ż = z 2 f (t, z) (1) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 10 / 18
für DGLn 2. Ordnung II Euler-Verfahren für obiges System (1) Gegeben: Anfangswerte: (t 0, z (0) 1 ),(t 0, z (0) 2 ) Schrittweite: h, Schrittanzahl: m z (i) 1 = z (i 1) 1 + h z (i 1) 2 z (i) 2 = z (i 1) 2 + h f (t i 1, z (i 1) 1, z (i 1) 2 ) i = 1,..., m Vektorielle Schreibweise: z i = z i 1 + h ż i 1 Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 11 / 18
einer DGL 2. Ordnung: Punktpendel Nichtlineare DGL 2. Ordnung in ϕ: m l 2 ϕ(t) = m g l sin (ϕ(t)) ϕ(t) = g l sin (ϕ(t)) Anfangsbedingungen: Anfangswinkel: ϕ(0), Anfangswinkelgeschwindigkeit: ϕ(0) Zustandsgrößen: Lage: z 1(t) = ϕ(t), Geschwindigkeit: z 2(t) = ϕ(t) Umformung in ein System 1. Ordnung: ż 1 = z 2, z 1(0) = ϕ(0) ż 2 = g l sin (z 1(t)), z 2(0) = ϕ(0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 12 / 18
eines Systems 2. Ordnung: I System von DGL 2. Ordnung in y 1,..., y n: ÿ 1 = f 1(t, y 1,..., y n, ẏ 1..., ẏ n). ÿ n = f n(t, y 1,..., y n, ẏ 1..., ẏ n) Anfangsbedingungen: y 1(t 0),..., y n(t 0), ẏ 1(t 0),..., ẏ n(t 0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 13 / 18
eines Systems 2. Ordnung: II Zustandsgrößen: z 1 = y 1,..., z n = y n z n+1 = ẏ 1,..., z 2n = ẏ n Umformung in ein System 1. Ordnung: ż 1 = z n+1, z 1(t 0) = y(t 0).,. ż n = z 2n, z n(t 0) = y n(t 0) ż n+1 = f 1(t, z 1,..., z n, z n+1..., z 2n), z n+1(t 0) = ẏ 1(t 0).,. ż 2n = f n(t, z 1,..., z n, z n+1..., z 2n), z 2n(t 0) = ẏ n(t 0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 14 / 18
eines Systems 2. Ordnung: Federpendel I System von DGL 2. Ordnung in ϕ, l: m (l(t) ϕ(t) + 2 l(t) ϕ(t)) = mg sin(ϕ(t)) m ( l(t) l(t) ϕ 2 (t)) = c(l(t) l F ) + mg cos(ϕ(t)) ϕ(t) = 1 l ( g sin(ϕ(t)) 2 l(t) ϕ(t)) l(t) = c m (l(t) l F) + g cos(ϕ(t)) + l(t) ϕ 2 (t) Anfangsbedingungen: Anfangslage: ϕ(0), l(0) Anfangswinkelgeschwindigkeit: ϕ(0), l(0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 15 / 18
eines Systems 2. Ordnung: Federpendel II Zustandsgrößen: Lage: z 1(t) = ϕ(t), z 2(t) = l(t) Geschwindigkeit: z 3(t) = ϕ(t), z 4(t) = l(t) Umformung in ein System 1. Ordnung: ż 1 = z 3, z 1(0) = ϕ(0) ż 2 = z 4, z 2(0) = l(0) ż 3 = 1 z 2 (g sin(z 1) + 2z 4z 3), z 3(0) = ϕ(0) ż 4 = c m (z2 l F) + g cos(z 1) + z 2z3 2, z 4(0) = l(0) Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 16 / 18
eines Systems 2. Ordnung: Massenmatrix I Falls das DGL-System nicht in expliziter Form gegeben ist und sich nur schwer nach den 2. Ableitungen auflösen lässt (starke Kopplung), ist eine andere Vorgehensweise zu empfehlen. System von 2 DGL (linear in den 2. Ableitungen) a 11ÿ 1 + a 12ÿ 2 = f 1(t, y 1, y 2, ẏ 1, ẏ 2) a 21ÿ 1 + a 22ÿ 2 = f 2(t, y 1, y 2, ẏ 1, ẏ 2) a ij können von t, y 1, y 2, ẏ 1 und ẏ 2 aber nicht von ÿ 1 und ÿ 2 abhängen. Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 17 / 18
eines Systems 2. Ordnung: Massenmatrix II Zustandsgrößen: z 1 = y 1, z 2 = y 2, z 3 = ẏ 1, z 4 = ẏ 2 ż 1 = z 3, z 1 (t 0 ) = y 1 (t 0 ) ż 2 = z 4, z 2 (t 0 ) = y 2 (t 0 ) a 11 ż 3 + a 12 ż 4 = f 1 (t, z 1, z 2, z 3, z 4 ), z 3 (t 0 ) = ẏ 1 (t 0 ) a 21 ż 3 + a 22 ż 4 = f 2 (t, z 1, z 2, z 3, z 4 ), z 4 (t 0 ) = ẏ 2 (t 0 ) Matrix-Schreibweise: 1 0 0 0 ż 1 z 3 0 1 0 0 ż 2 = z 4 0 0 a 11 a 12 ż 3 f 1 (t, z 1, z 2, z 3, z 4 ) 0 0 a 21 a 22 }{{} Massenmatrix: M=M(t, z) ż 4 }{{} ż f 2 (t, z 1, z 2, z 3, z 4 ) }{{} F(t, z) Matlab kann diese gekoppelten Differentialgleichungen lösen. Dazu muss M mit dem Befehl odeset( Mass, @Matrix) bekannt gemacht werden. Prof. Dr.-Ing. K. Warendorf (Fakultät 03) Numerische Verfahren WS 13/14 18 / 18