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