Rozwiazywanie równan rózniczkowych w programie Mathematica

Transkrypt

Rozwiazywanie równan rózniczkowych w programie Mathematica
Rozwi¡zywanie równa« ró»niczkowych w programie
Mathematica
Milena Ru»yªo
2008-04-28
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Symboliczne rozwi¡zywanie równa«
Do symbolicznego rozwi¡zywania równa« ró»niczkowych zwyczajnych
sªu»y polecenie DSolve.
DSolve [równanie ró»niczkowe, y [x ], x ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Przykªad
Równanie
y 0 = 3x 2 y
rozwi¡»emy tak
DSolve [y 0 [x ] == 3x ˆ2 ∗ y [x ], y [x ], x ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
‚wiczenie
Rozwi¡» samodzielnie równania:
1
2
3
yy 0 = −x
y 00 + y 0 − y
=0
y 0 = cos (xy )
Ad. 3. Je»eli Mathematica nie potra rozwi¡za¢ danego równania,
zwraca komend¦ DSolve nieoszacowan¡.
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Równanie z warunkami pocz¡tkowymi b¡d¹ brzegowymi
Aby w równianiu ró»niczkowym uwzgl¦dni¢ warunki pocz¡tkowe lub
brzegowe, nale»y u»y¢ polecenia DSolve w nast¦puj¡cy sposób
DSolve [{równanie, warunek/warunki pocz¡tkowe/brzegowe }, y [x ], x ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Przykªady
1
2
y 0 = −36x , z y (0) = 2
DSolve [{y 0 [x ] == −36x , y [0] == 2}, y [x ], x ]
y 00 + y = 20 cos(x ), z y (0) = 0, y (π/2 = 1)
DSolve [{y 00 [x ]+y [x ] == 20Cos [x ], y [0] == 0, y [Pi /2] == 1}, y [x ], x ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
‚wiczenie
Rozwi¡» samodzielnie równania:
1
2
y 0 = 3x 2 y , z y (1) = −1
y 00 − 2y 0 + y
= x 2 , z y (0) = 1, y 0 (0) = 2
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Numeryczne rozwi¡zywanie równa«
Do znajdowania numerycznych przybli»e« rozwi¡za« równania
ró»niczkowego w przedziale a ≤ x ≤ b przy danych warukach
pocz¡tkowych sªu»y komeda NDSolve. Dziaªa ona nawet wówczas, gdy
zawodzi DSolve.
NDSolve [{równ. ró»niczkowe, warunek/warunki pocz¡tkowe , }, y [x ], {x , a, b}]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Przykªad
Rozwi¡»emy równanie y 0 = −xy przy warunku pocz¡tkowym y (0) = 1 w
przedziale 0 ≤ x ≤ 2:
solution = NDSolve [{y 0 [x ] == −x ∗ y [x ], y [0] == 1}, y [x ], {x , 0, 2}]
Nast¦pnie piszemy
Clear [f ]
f [x _] = y [x ] /. solution[[1]]
Teraz mo»emy obliczy¢ warto±ci y (0), y (0.25), . . . , y (1.75), y (2):
Table [f [x ], {x , 0, 2, 0.25}]
i narysowa¢ wykres
Plot [f [x ], {x , 0, 2}]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Ukªady równa« ró»niczkowych
Za pomoc¡ DSolve mo»emy te» rozwi¡zywa¢ ukªady równa«
ró»niczkowych zawieraj¡cych dwie lub wi¦cej funkcji y1 (t ), y2 (t ), . . . .
DSolve [{równania ró»niczkowe } {y 1[t ], y 2[t ], . . . }, t ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Przykªad
Rozwi¡»emy ukªad x 0 (t ) = x (t ) − y (t ), y 0 (t ) = y (t ) ze wzgl¦du na
funkcje x (t ) i y (t ):
DSolve [{x 0 [t ] == x [t ] − y [t ], y 0 [t ] == y [t ]}, {x [t ], y [t ]}, t ]
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Ukªady równa« ró»niczkowych - c. d.
Analogicznie mo»emy u»y¢ komendy NDSolve do numerycznego
rozwi¡zywania ukªadów równa« ró»niczkowych.
Samodzielnie rozwi¡» numerycznie ukªad
x 0 (t ) = −2x (t )2 − y (t ) i y 0 (t ) = x (t ) − y (t )
Przy warunkach pocz¡tkowych x (0) = 0.2 i y (0) = 0.1 dla 0 ≤ t ≤ 20
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica
Koniec
Dzi¦kuj¦ za uwag¦
Milena Ru»yªo
Rozwi¡zywanie równa« ró»niczkowych w programie Mathematica