Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 1/9 Gliederung 1. Gewöhnliche Differenzialgleichungen Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 2/9 Gliederung 1. Gewöhnliche Differenzialgleichungen Problemstellung Normalform DGL-Funktion Euler-Verfahren DGLs höherer Ordnung DGL-Funktion 2 Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 3/9 Problemstellung Ziel I Beispiel Berechne numerische Näherungslösungen eines Anfangswertproblems auf einem endlichen Intervall I Differentialgleichung y 0 (x) + I y (x) + 6x = 0 1+x Anfangswert y (0) = 3 I Intervall x ∈ [0, 5] Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 4/9 Normalform Normalform I Beispiel Differentialgleichung nach der 1. Ableitung auflösen I y 0 (x) = f (x, y (x)) I Differentialgleichung wird durch Funktion in zwei Veränderlichen beschrieben y 0 (x) + I Funktioniert nur für explizite Differentialgleichungen 1. Ordnung y (x) + 6x = 0 1+x Auflösen nach der 1. Ableitung y 0 (x) = − f (x, y ) I Gewöhnliche Differenzialgleichung I y (x) − 6x 1+x Funktion für die 1. Ableitung f (x, y ) = − y − 6x 1+x Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 5/9 DGL-Funktion DGL-Funktion I Schreibe Funktion, die bei Eingabe von x und y den Wert der 1. Ableitung berechnet y 0 (x) = f (x, y (x)) I Funktin einbinden −−>e x e c d g l . s c i I Funktin aufrufen −−>d g l ( 0 , 3 ) ans = − 3. f u n c t i o n yp = d g l ( x , y ) // // −y ( x ) // DGL : y ’ ( x ) = −−−−− − 6 x // 1 + x // // INPUT : x . . . x−Wert // y . . . y−Wert // // OUTPUT: yp . . . y ’ ( x ) // yp = −y /(1+ x )−6∗ x ; endfunction scilab/dgl.sci Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 6/9 Euler-Verfahren figure (1); clf ; m t l b _ a x i s ( [ 0 5 −60 1 0 ] ) Euler–Verfahren I Anfangswert y (0) = 3 I Schrittweite h festlegen I Iteration mit Euler-Verfahren x y h = 0 ; // f i r s t x v a l u e = 3 ; // i n i t i a l y v a l u e = 0 . 1 ; // s t e p s i z e y neu = y alt + h f (x alt , y alt ) w h i l e ( x <= 5 ) x neu = x alt + h I Verwende DGL-Function f (x alt , y alt ) I −→ Intervall [0, 5] w h i l e ( x <= 5 ) dgl.sci plot (x , y , ’o ’ ); y = y + h∗ d g l ( x , y ) x = x + h s l e e p (100) end scilab/euler.sce Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 7/9 DGLs höherer Ordnung DGLs höherer Ordnung I Zustandsvariablen z1 (t) = x(t) z2 (t) = ẋ(t) .. .. . . I Beispiel I ẍ(t) + sin x(t) = cos t I 2 Zustandsvariablen I DGL-System der Ordnung 1 Vektor der Zustandsvariablen ż1 (t) = z2 (t) ż2 (t) = − sin z1 (t) + cos t z(t) I DGL der Ornung 2 Normalform ż(t) = f (t, z(t)) I Vektorielle DGL-Funktion z2 (t) ż(t) = − sin z1 (t) + cos t | {z } f (t, z(t)) Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 8/9 DGL-Funktion 2 figure (1); clf ; m t l b _ a x i s ( [ 0 20 −1.5 3 ] ) t = 0; z = [3;0]; h = 0.1; w h i l e ( t < 6∗ %pi ) p l o t ( t , z ( 1 ) , ’ ob ’ ) ; plot ( t , z (2) , ’∗r ’ ); z = z + h∗ d g l 2 ( t , z ) t = t + h s l e e p (100) end f u n c t i o n zp = d g l 2 ( t , z ) // // DGL : // // zp1 = z2 // zp2 = − s i n ( z1)+ c o s ( t ) // // INPUT : t ... t // z ... z(t) // // OUTPUT: zp . . . z ’ ( t ) // zp = [ z ( 2 ) ; −s i n ( z (1)) −0.5∗ z ( 2 ) ] ; scilab/dgl2.sci scilab/euler2.sce Scilab Gewöhnliche Differenzialgleichungen J. Koch, 13. November 2015 9/9
© Copyright 2024 ExpyDoc