Rozwiazywanie równan rózniczkowych

Transkrypt

Rozwiazywanie równan rózniczkowych
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
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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(t0 ) = x0
ic2 - definiuje zagadnienie początkowe - rządu II, np.
x(t0 ) = x0 ,x 0 (t0 ) = x00
A. Syta (Politechnika Lubelska)
7 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
Symboliczne rozwiązywanie niektórych równań z użyciem
Maximy
Przykład 1: Rozwiążmy zagadnienie początkowe:
y 00 + 3y 0 + 2y = t, y (0),y 0 (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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
Symboliczne rozwiązywanie niektórych równań z użyciem
Maximy
Przykład 1: Rozwiążmy zagadnienie początkowe:
y 00 + 3y 0 + 2y = t, y (0),y 0 (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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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
Przegląd wybranych pakietów oprogramowania i ich możliwości
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 00 = F
mx 00 = −kx,
~ = −kx
F
x 00 +
k
x =0
m
Ostatecznie:
s
00
2
x + ω x = 0,
A. Syta (Politechnika Lubelska)
ω=
k
− częstość drgań własnych
m
15 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości
Oscylator jednowymiarowy - równanie ruchu
Równanie ruchu drugiego rzędu zapisujemy jako układ równań rzędu
pierwszego:
1
2
3
Przenosimy na prawą stronę: x 00 = −ω 2 x
dx
Podstawiamy: x = x1 ,
= x2
dt
W naszym przypadku:
dx1
= x2
dt
dx2



= −ω 2 x1
dt




A. Syta (Politechnika Lubelska)
16 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości
Oscylator jednowymiarowy - modyfikacje
Oscylator bez tłumienia i wymuszenia:
x 00 = −ω 2 x
Oscylator bez tłumienia i z wymuszeniem:
x 00 = −ω 2 x + A cos (ωw · t)
Oscylator z tłumieniem liniowym i bez wymuszenia:
x 00 = −bx 0 − ωx 2
Oscylator z tłumieniem liniowym i z wymuszeniem:
x 00 = −bx 0 − ω 2 x + A cos (ωw · t)
A. Syta (Politechnika Lubelska)
17 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości
Układ nieliniowy Duffinga
Układ Duffinga
x 00 = −ax 0 − x(b + cx 2 ) + f0 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: f0 = 0.1
Podwojenie okresu: f0 = 0.32
Rozwiązanie nieokresowe: f0 = 0.35
A. Syta (Politechnika Lubelska)
18 / 19
Przegląd wybranych pakietów oprogramowania i ich możliwości
Układ nieliniowy Lorenza
Układ Lorenza




x 0 = a(y − x)
y 0 = −xz + bx − y


 0
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