4. Einleiung Eine der herausragenden Särken von MATLAB is das numerische (näherungsweise) Auflösen von Differenialgleichungen. In diesem kurzen Kapiel werden wir uns mi einigen Funkionen zum Lösen von gewöhnlichen Differenzialgleichungen verrau machen. Die englische Abkürzung für gewöhnliche Differenialgleichungen laue ODE (ordinary differenial equaion). Wir werden im Folgenden diese Abkürzung verwenden, da die meisen MATLAB Befehle zum Lösen von Differenialgleichungen mi ode beginnen. In der Mahemaikvorlesung haben Sie gelern, wie Differenialgleichungen von Hand gelös werden können. Für die allermeisen Dgl. gib es gar keine Lösungsmehoden, viele nur sehr komplexe. MATLAB muss daher eine solche Gleichung auch numerisch lösen. Dazu gib es verschiedene numerische Verfahren, eines heiss Runge-Kua -Verfahren. Als Einführung in die numerischen Verfahren der Dgl. wird in der Regel das Euler -Verfahren gezeig. Es is numerisch absolu insabil, d.h. es liefer über grössere Disanzen schleche Resulae, zeig aber das Grundprinzip sehr gu auf. Wenn Sie im Help von MATLAB nachschauen, so sind insbesondere die folgenden Verfahren aufgeführ: ode 45 (Runge-Kue mi Formelpaar der Konvergenzordnung 4 und 5) ode 3 ode 3 ode 5s ode 5i ode 3s ode 3 ode 3b Einleiung Je nach Ausgangslage der Differenialgleichung wähl man ein geeignees Verfahren aus (siehe z.b. Überhuber e. al. MATLAB 7, eine Einführung, Springer Verlag, ISBN 3--37-3, S. 50 ff.). In Rahmen von unserem Modul Ing-Tool, arbeien wir wenn nichs anderes erwähn wird mi ode45. 4. Repeiion: Lösen von Differenialgleichungen Die einfachse Mehode für eine Dgl. Erser Ordnung is die Mehode Trennung der Variablen. Weiere wie z.b. Variaion der Konsanen haben Sie ev. im Mahemaikmodul kennengelern. In höheren Semesern lernen Sie, je nach Sudiengang, weiere Verfahren kennen (z.b. miel Laplace- Transformaion). Naürlich müssen Sie im Rahmen von diesem Modul keine Dgl. von Hand lösen. Trozdem wollen wir einige wenige Beispiele als Repeiion durchführen. Bei dieser Gelegenhei besprechen wir auch einige Aspeke zum Lösen von Dgl. mi MATLAB. Beispiel : Suchen Sie eine Funkion y(, welche folgende Differenialgleichung erfüll. y = 8 x 3 + Wir kennen die Ableiung und müssen somi nur aufleien (inegrieren). Die Lösung laue y = 4 x 4 + x + C Es gib wegen der Inegraionskonsanen unendlich viele Lösungen. Mi MATLAB lös man Differenialgleichungen numerisch. Das is nur möglich, wenn die Lösungen keine Inegraionskonsane und keine sog. Formvariable (Buchsabe) enhalen. Bsp.: y = 8 x 3 + r x + 4 kann numerisch nich gelös werden, da r keine konkree Zahl is. Seie /7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
Beispiel : Gegeben sei eine Differenialgleichung mi einer Anfangsbedingung y = 8 x 3 + mi y() = Wir besimmen zuers die allgemeine Lösung y( = 4 x 4 + x + C Nun wollen wir die Anfangsbedingung erfüllen und sezen ein y() =. y() = 4 4 + + C = C = 47 Das Resula enhäl keine Inegraionskonsane mehr, es laue: y( = 4 x 4 + x 47 Beispiel 3: Gegeben sei eine Differenialgleichung y( = y( mi der Anfangsbedingung y(0) = Welche Funkion is gleich ihrer Ableiung? y( = y(? Das gil für y( = C e x. Mi der Anfangsbedingung y(0) = C e 0 = folg C =. Die Lösung der Dgl. laue somi y( = e x. Beispiel 4: Gegeben sei eine Differenialgleichung y' ( x y( mi der Anfangsbedingung y(0) =. Hier müssen wir nun mi der Mehode Trennung der Variablen arbeien. x y( dx y y x dx x dx x ln( y) C resp. ln( y) x C und somi y e x C e C e x C e x x Also y( C e, mi der Anfangsbedingung y (0) C e C. Die Lösung der Dgl. laue somi y( e Bemerkungen:. Mi der Anfangsbedingung y(0) = 3, änder sich die Lösung zu y( 3e.. Mi der Anfangsbedingung y() =, änder sich die Lösung wie folg: C y(0) C e C e C e. e Und somi: y( e e x e x x e x 0 x Seie /7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
4.3 Repeiion: Aufsellen von Differenialgleichungen Naürlich müssen Sie in diesem Modul keine Differenialgleichungen aufsellen. Nichsdesoroz lohn es sich anhand von Beispielen diesen Prozess zu repeieren. Beispiel 5: Gesuch is eine Kurve, für die die Seigung in jedem Punk gleich der doppelen Summe ihrer Koordinaenwere is. Die Seigung im Kurvenpunk Punk P(x; y) können wir mi /dx bezeichnen. Somi laue die Differenialgleichung ( x y) resp. y' ( ( x y) resp. y' ( x y 0 dx Die Lösung is wie wir wissen eine Kurvenschar. Mi MATLAB können wir diese noch nich lösen, da wir noch keine Anfangsbedingung haben. D.h. wir können mi MATLAB nur eine ganz besimme Kurve besimmen. So z.b. mi der (Anfangs-)Bedingung, dass die Kurve durch den Punk P(5; 4) gehen soll, d.h. y(5) = 4. Beispiel 6: Es is die Wasserhöhe h = h( in einem Gefäss mi der Grundfläche A zu berechnen, wenn ein Zufluss z( r e und ein Abfluss von k( s h( erfolg. Zu Beginn des Prozesses bezeichnen wir den Wassersand mi h 0. Dabei seien A, r, s und h 0 posiive Konsanen. Nebenrechnungen: Das Volumen (d.h. V() des Wassers beräg, V( = A*h( (Grundfläche mal Höhe). Die Volumenänderung in der Zei is somi V ( = (A*h() = A*h (, da A konsan is. Die Anfangshöhe h 0 is insbesondere die Anfangsbedingung. Wegen der Massenerhalung gil: Volumenänderung = Zufluss Abfluss, also: A h' ( r e k( resp. A h' ( r e s h( resp. A h' ( s h( r e Somi laue die Differenialgleichung: A h' ( s h( r e mi der Anfangsbedingung h(0) = h 0 Die Lösung können wir mi MATLAB noch nich erhalen, da wir noch Formvariablen in der Differenialgleichung haben. Wir müssen für die Konsanen Zahlenwere einsezen. Seie 3/7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
4.4 ODE s erser Ordnung Beispiel 4a: Wir lösen numerisch die ODE y' ( x y( mi der Anfangsbedingung y(0) = im Inervall x [0; ]. Hinweise zur Lösung in MATLAB: Die Anfangsbedingung(en) müssen sich auf den Inervallanfang beziehen. Die Anfangsbedingung muss sich somi nich auf Null beziehen!! Die Differenzialgleichung muss nach y' aufgelös sein.. Schri: Im ersen Schri müssen wir die reche Seie der Differenialgleichung y' = x y als Skrip-Funkion definieren. Also speichern Sie folgenden Zeilen z.b. unerode_4.m ab. funcion = ode_4(x,y) = *x*y; a. Schri: Wir können nun die ODE im Command Window mi folgender Insrukion lösen: >>[x, y] = ode45('ode_4',[0,],); Dabei gib [0, ] das Inervall an, in dem die Dgl. zu lösen is. Der leze Wer is die Anfangsbedingung, d.h. der Funkionswer der Lösung am Inervallanfang (in diesem Fall is der Inervallanfang Null, das is aber nich nowendigerweise so). b. Schri: Schreiben einer Skrip-Daei. Besser is, eine Skrip-Daei wie unen zu schreiben und diese dann ensprechend abzuspeichern. Die Dgl. wird in dem Aufruf [x, y] = ode45( ) gelös (Runge-Kua Verfahren zum numerischen Lösen von ODE s). clear % Inervallgrenzen feslegen (Anfang und Ende) xa = 0; xe = ; %Anfangsbedingung y0 = ; %ODE lösen [x, y] = ode45('ode_4',[xa, xe], y0); plo(x,y) xlabel('x'), ylabel('y') Aufgabe 4.: a) Nehmen Sie die Programmiervorlage DGL_Loesen_ode_-Vorlage.m und ändern Sie, was geänder werden muss. b) Lösen auch das Beispiel 4b) mi den Anfangsbedingung y(0) = 3 im Inervall [0; ] c) Lösen auch das Beispiel 4c) mi den Anfangsbedingung y() = im Inervall [; ] d) Zeichnen Sie die Funkionen in ein Diagramm. Seie 4/7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
Aufgabe 4.: Besimmen und ploen Sie die Lösung y( für die ODE y' ( y( sin( e mi der Anfangsbedingung y(0) = 0 im Inervall x [0; 8]. Variieren Sie die Aufgabe mi unerschiedlichen Anfangsbedingungen!! Aufgabe 4.3: Öffnen Sie die Vorlage zu Aufgabe 4.3. Füllen Sie die offenen Punke in der Vorlage aus, dami die unensehenden Aufgaben und Fragesellungen gelös werden können. Besimmen und ploen Sie die Lösung h( der ODE aus Beispiel 6 mi den Parameern: A = 0.5, s = ½, r = 4 und h 0 = 4 [0; 4]. Die Achsen sind mi und h( zu beschrifen, es is ein Tiel hinzuschreiben und eine Legende einzufügen. Inerpreieren Sie das erhalene Resula. (Tipp: Lassen Sie das Nez zeichnen siehe Kap. Graphik). Die Dgl. Auflösen Einsezen der Were: A h' ( s h( r e resp. s h'( h( A r A e h' ( 0.5 h( 0.5 4 0.5 e und Vereinfachen h'( h( 6e Inerpreaion: Graphik anschauen Zunächs is der Zufluss grösser als der Abfluss. Nach ca. = 0,4 is das Maximum erreich, nach ca. =, is ungefähr die ursprüngliche Menge, nach ca. =,95 noch ewa die Hälfe und nach =,7 noch ewa ein Vierel im Gefäss. Der Wer an der Selle = 4 is ca. 0,3. Were anschauen Wir überprüfen das, in dem wir alle Were ausgeben und nachschauen. Anbei ein Auszug aus den Daen, um die obigen Berachungen zu besäigen. Im Command Window sehen Ihnen alle Were zur Verfügung Zei h( 0 4.0000 0.3746 5.384 0.4660 5.345.0460 4.40.460 3.8736.9460.0406.6460.0745.7460 0.9775 4.0000 0.890 Genaue Lösung ploen und für = 4 rechnen Die genaue Lösung laue h( 6 e e und dami h(4) = 0,890 Resumée: In diesem Fall liefer die numerische die genaue Lösung. Seie 5/7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
4.5 Sysem von ODE s erser Ordnung Beispiel 5: Gesuch sind die zwei Funkionen y ( ) und y ( ), welche die Differenialgleichungen y ( y ( y y ( y ( ( y ( mi den Anfangsbedingungen y (0). und y (0). 8 im Inervall [0; 5]. erfüllen. Die Idee beseh darin, einen Vekor mi den beiden gesuchen Funkionen zu definieren Y y( y( MATLAB Y=[y();y()] Die Differenialgleichung laue dann: y ( y( y( Y y ( y( y( MATLAB dy=[y()*(-y());-y()*(-y())]. Schri: Definieren der rechen Seie als m-funcion ode_sysem.m funcion dy = ode_sysem(,y) dy = [y()*(-y()); -y()*(-y())];. Schri: m-file zum Lösen und Ploen der ODE clear % Inervallgrenzen feslegen (Anfang und Ende) a = 0; e = 5; %Anfangsbedingungen y_0 =.; y_0 =.8; %ODE lösen [, y] = ode45('ode_sysem',[a, e], [y_0; y_0]); plo(,y) xlabel(''), ylabel('y') legend('y','y') Aufgabe 4.4: Lösen Sie das Beispiel 5 in MATLAB Seie 6/7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.
4.6 ODE s höherer Ordnung Wir berachen hier nur ein Beispiel mi einer ODE zweier Ordnung. Das Vorgehen für höhere Ordnung wird ganz analog sein. Beispiel 6: Gesuch is die Lösung der ODE y( y ( 9y( 0 mi den Anfangsbedingungen y( 0) 0 und y ( 0) im Inervall [0; 5]. In MATLAB können nur ODE s erser Ordnung gelös werden. Naürlich kann auch dieses Problem gelös werden! Die Idee beseh darin, dass man eine gegebene Differenialgleichung n er Ordnung in ein Sysem von n Differenialgleichungen erser Ordnung umschreib und danach wie im Kapiel 4.5 vorgeh. Für unser Beispiel heiss das, dass wir aus der ODE zweier Ordnung zwei ODE s erser Ordnung machen. Wir machen das, indem wir zwei neue Funkionen y ( ) und y ( ) einführen, definier durch y ( y( y ( y ( Leien wir y ( ) nach ab und nehmen die gegebene ODE zu Hilfe, so ergib sich: y ( y( y( y ( 9y( y ( 9y( Zusammengefass erhalen wir das Sysem erser Ordnung: y ( y ( y ( y ( 9y ( mi den Anfangsbedingungen y (0) 0 und y (0). Aufgabe 4.5: Lösen Sie dieses Sysem in MATLAB (cf. Kap. 4.5) 4.7 Tesaaufgaben Aufgabe 4.5: Die Aufgaben 4. 4.5 sauber in MATLAB lösen. Aufgabe 4.6: Je ein eigenes Beispiel (offene Fragesellung) zu einer ODE-.Ordnung, Sysem mi ODE-.Ordnung und ODE.Ordnung. Seie 7/7 Original von E.Vock, überarbeie von T. Tresch, angepass von J. Schuler, V.