Rozwiązywanie równań różniczkowych zwyczajnych za pomocą komputera Arkadiusz Syta A. Syta (Politechnika Lubelska) 1 / 19
Wstęp Przegląd wybranych pakietów oprogramowania i funkcji Rozwiązywanie równań symbolicznie i numerycznie Symboliczne rozwiązywanie równań z użyciem Maximy Numeryczne rozwiązywanie równań z użyciem Octave Podsumowanie A. Syta (Politechnika Lubelska) 2 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości Wybrane przykłady zastosowania równań różniczkowych: Mechanika (teoria drgań) Automatyka (teoria sterowania) Elektryka (teoria przewodnictwa) Biologia (rozwój populacji, modele epidemiologiczne) Ekonomia (modele ekonomiczne) Chemia (reakcje chemiczne) A. Syta (Politechnika Lubelska) 3 / 19
Pakiety do obliczeń symbolicznych Oprogramowanie komercyjne: Mathematica - http://www.wolfram.com/ Maple - http://www.maplesoft.com/ Oprogramowanie wolne: Maxima i WxMaxima (nakładka graficzna) - http://maxima.sourceforge.net/ A. Syta (Politechnika Lubelska) 4 / 19
Pakiety do obliczeń numerycznych Oprogramowanie komercyjne: Matlab i Simulink - www.mathworks.com/ Mathematica - http://www.wolfram.com/ Maple - http://www.maplesoft.com/ Oprogramowanie wolne: Octave - http://www.gnu.org/software/octave/ Scilab i Xcos - http://www.scilab.org/ A. Syta (Politechnika Lubelska) 5 / 19
Rozwiązywanie równań różniczkowych symbolicznie i numerycznie Rozwiązanie symboliczne Wykorzystywany jest język symboliczny, w którym zapisujemy równanie i dostajemy rozwiązanie (ogólne jak i szczególne - również w postaci symbolicznej) wywołując odpowiednią dla danego pakietu funkcję. Rozwiązanie numeryczne Wykorzystywane są metody numeryczne, dzięki którym można znaleźć rozwiązanie szczególne dane jako szereg czasowy (ciąg wartości zapisanych z jednakowym odstępem). A. Syta (Politechnika Lubelska) 6 / 19
Symboliczne rozwiązywanie niektórych równań z użyciem Maximy Wykorzystywane funkcje ode2 - rozwiązuje równania rzędu I i II ic1 - definiuje zagadnienie początkowe - rzędu I, np. x(t 0 ) = x 0 ic2 - definiuje zagadnienie początkowe - rządu II, np. x(t 0 ) = x 0,x (t 0 ) = x 0 A. Syta (Politechnika Lubelska) 7 / 19
Symboliczne rozwiązywanie niektórych równań z użyciem Maximy Składnia funkcji ode2 (równanie,zmienna zależna,zmienna niezależna) ic1 (rozwiązanie,warunek początkowy argument,warunek początkowy wartość) ic2 (rozwiązanie,warunek początkowy argument,warunek początkowy wartość,warunek początkowy wartość pochodnej) A. Syta (Politechnika Lubelska) 8 / 19
Symboliczne rozwiązywanie niektórych równań z użyciem Maximy Przykład 1: Rozwiążmy zagadnienie początkowe: y + 3y + 2y = t, y(0),y (0) = 0 Sposób postępowania: 1 Definicja równania: rr1: diff(y,t,2)+3* diff(y,t)+2y=t 2 Rozwiązanie ogólne: ro1: ode2(rr1,y,t) 3 Rozwiązanie szczególne: rsz1:ic2(ro1,t=0,y=0, diff(y,t)=0) A. Syta (Politechnika Lubelska) 9 / 19
Symboliczne rozwiązywanie niektórych równań z użyciem Maximy Transformata Laplace a - wykorzystywane funkcje atvalue - definiuje warunek lub warunki początkowe laplace - transformata Laplace a solve - rozwiązuje przekształcone równanie ze względu na transformatę L [y(t)] ilt - odwrotna transformata Laplace a map - odwrotna transformata obydwu stron A. Syta (Politechnika Lubelska) 10 / 19
Transformata Laplace a - składnia funkcji Rozwiązywanie za pomocą transformaty Laplace a atvalue (równanie,warunek początkowy argument,warunek początkowy wartość) laplace (równanie,zmienna niezależna oryginału,zmienna niezależna transformaty) solve (transformata równania,niewiadoma funkcja) ilt (transformata równania, zmienna niezależna transformaty, zmienna niezależna oryginału) map (lambda([nazwa równania], ilt(nazwa równania, s, t)), transformata rozwiązania) A. Syta (Politechnika Lubelska) 11 / 19
Symboliczne rozwiązywanie niektórych równań z użyciem Maximy Przykład 1: Rozwiążmy zagadnienie początkowe: y + 3y + 2y = t, y(0),y (0) = 0 Sposób postępowania: 1 rr1: diff(y(t),t,2)+3* diff(y(t),t)+2*y(t)=t 2 atvalue(y(t),t=0,0) 3 atvalue( diff(y(t),t),t=0,0) 4 lrr1: laplace(rr1,t,s) 5 lroz1: solve(lrr1, laplace(rr1,t,s)) 6 map(lambda([rozw],ilt(rozw,s,t)),lroz1) A. Syta (Politechnika Lubelska) 12 / 19
Numeryczne rozwiązywanie niektórych równań z użyciem Octave Rozwiązujemy zawsze układ równań rzędu 1 (każde równanie rzędu 2 można zapisać jako układ równań rzędu 1, sytuacja odwrotna nie zawsze jest możliwa) Definiujemy funkcję zawierającą dany układ równań Tworzymy wektor czasu t Definiujemy wektor zawierający warunki początkowe: x0 Wywołujemy funkcję: lsode(@uklad,x0,t) w MATLABIE: ode(@uklad,t,x0) A. Syta (Politechnika Lubelska) 13 / 19
Oscylator jednowymiarowy Rozpatrzmy układ dynamiczny składający się z masy (m) zaczepionej na sprężynie o liniowej sprężystości (kx). A. Syta (Politechnika Lubelska) 14 / 19
Oscylator jednowymiarowy - równanie ruchu Druga zasada dynamiki Newtona Zmiana ruchu jest proporcjonalna do przyłożonej siły poruszającej i odbywa się w kierunku prostej, wzdłuż której siła jest przyłożona. mx = F, F = kx mx = kx, x + k m x = 0 Ostatecznie: x + ω 2 x = 0, ω = k częstość drgań własnych m A. Syta (Politechnika Lubelska) 15 / 19
Oscylator jednowymiarowy - równanie ruchu Równanie ruchu drugiego rzędu zapisujemy jako układ równań rzędu pierwszego: 1 Przenosimy na prawą stronę: x = ω 2 x 2 Podstawiamy: x = x 1, dx dt = x 2 3 W naszym przypadku: dx 1 dt = x 2 dx 2 dt = ω2 x 1 A. Syta (Politechnika Lubelska) 16 / 19
Oscylator jednowymiarowy - modyfikacje Oscylator bez tłumienia i wymuszenia: x = ω 2 x Oscylator bez tłumienia i z wymuszeniem: x = ω 2 x + A cos (ω w t) Oscylator z tłumieniem liniowym i bez wymuszenia: x = bx ωx 2 Oscylator z tłumieniem liniowym i z wymuszeniem: x = bx ω 2 x + A cos (ω w t) A. Syta (Politechnika Lubelska) 17 / 19
Układ nieliniowy Duffinga Układ Duffinga x = ax x(b + cx 2 ) + f 0 cos (ωt) Nieliniowe tłumienie: x(b + cx 2 ) Dla c = 0 - oscylator liniowy z liniowym tłumieniem i wymuszeniem Typowe wartości: a = 0.1 b = 1.0 c = 1.0 ω = 1.4 Rozwiązanie okresowe: f 0 = 0.1 Podwojenie okresu: f 0 = 0.32 Rozwiązanie nieokresowe: f 0 = 0.35 A. Syta (Politechnika Lubelska) 18 / 19
Układ nieliniowy Lorenza Układ Lorenza x = a(y x) y = xz + bx y z = xy cz Typowe wartości parametrów: a = 16.0, b = 45.92, c = 4.0 Efekt motyla Dowolny układ fizyczny, który zachowuje się nieokresowo, jest nieprzewidywalny. (Edward Lorenz) A. Syta (Politechnika Lubelska) 19 / 19