Microsoft Word Viewer 97 - 4 Wyk³ad_Uk³ady równań i met
Transkrypt
Microsoft Word Viewer 97 - 4 Wyk³ad_Uk³ady równań i met
METODY KOMPUTEROWE 1 UKŁADY RÓWNAŃ RÓŻNICZKOWYCH, METODY WIELOKROKOWE Michał PŁOTKOWIAK, Adam ŁODYGOWSKI Konsultacje naukowe dr inz. Witold Kąkol Poznań 2002/2003 METODY KOMPUTEROWE 4 UKŁADY RÓWNAŃ RÓŻNICZKOWYCH Układ równań różniczkowych zapiszemy w postaci: dy1 = f 1 (x, y1 , y 2 ,..., y n ) dx ....................................... ....................................... (4.1) dy n = f n (x, y1 , y 2 ,..., y n ) dx Rozwiązanie takiego układu polega na zastosowaniu jednej z poznanych metod rozwiązywania równań różniczkowych dla każdego równania. Przykład: dy1 dx = −0,5 y1 Rozwiąż układ równań: dy 2 = 4 − 0,3 y − 0,1 y 2 1 dx Warunek początkowy: y1 (0) = 4 y 2 (0) = 6 krok h = 0,5 Stosując metodę Eulera mamy: y1 (0,5) = 4 + [− 0,5 ⋅ 4]⋅ 0,5 = 3 y 2 (0,5) = 6 + [4 − 0,3 ⋅ (6) − 0,1 ⋅ (4)]⋅ 0,5 = 6,9 Politechnika Poznańska ® Michał Płotkowiak, Adam Łodygowski 2 METODY KOMPUTEROWE UKŁADY RÓWNAŃ RÓŻNICZKOWYCH, METODY WIELOKROKOWE METODA POŁOWIENIA PRZEDZIAŁU Dzięki takiemu zabiegowi otrzymujemy zbieżność metody wyższego rzędu, a co za tym idzie, większą dokładność rozwiązania i mniejszy błąd. h 2 ⋅ 0,5h (y1 ) (y 2 ) ∆ = y 2 − y1 Przykład: y ' = 4 ⋅ e 0,8⋅ x − 0,5 ⋅ y Rozwiązanie y 2 ← y 2 + ∆ 15 Rozwiąż równanie w przedziale od x=0 do x=2 Warunek początkowy: y(0)=2 Krok całkowania: h=1 Rozwiązanie dokładne: y (2) = 14,84392 korzystając z metody połowienia przedziału mamy: dla h 1 [3 + 2 ⋅ (6,40216 + 4,70108) + 14,11105]⋅ 2 = 15,10584 6 1 y (1) = 2 + [3 + 2 ⋅ (4,2173 + 3,91297 ) + 5,94568 ⋅ 1]⋅ 1 = 6,20104 6 1 y (2) = 6,20104 + [5,8164 + 2 ⋅ (8,72954 + 7,99756 ) + 12,71283]⋅ 1 = 14,86249 6 y (2) = 2 + Błąd: 14,56249 − 15,10584 = 0,01622 15 E k = 14,84392 − 14,86249 = −0,01857 E= y (2) = 14,86249 − 0,01622 = 14,84627 Politechnika Poznańska ® Michał Płotkowiak, Adam Łodygowski 3 METODY KOMPUTEROWE UKŁADY RÓWNAŃ RÓŻNICZKOWYCH, METODY WIELOKROKOWE METODY WIELOKROKOWE: Oznaczmy przez : Ax = b uklad równań algebraicznych. Rozwiązanie ukladu zapiszemy formalnie w postaci : x = A −1b Gdy det A ≈ 0 to rozwiązanie jest wrażliwe na niedokladności zaokrągleń. Jeżeli dla układu równań różniczkowych y = f ( x, y ) stosunek największej wartości ' df do najmniejszej wartości własnej jest dy własnej co do modułu macierzy Jacobiego >>1, to taki układ nazywamy typu stiff. Np. y' = A ⋅ y A= − 667 333 666 − 334 λ1 = −1 λ 2 = −1000 y1 ( x) = e − x − e −1000 x y 2 ( x) = 2e − x − e −1000 x y y = 1 y2 Przykład: dy = −1000 y + 3000 − 2000e −t dt −1000t Rozwiązanie: y = 3 − 0,998e − 2,002e −t dy = ay y (0) = y 0 dt y = y 0 e at y (0) = 0 Rozpatrzmy rozwiązanie metodą Eulera: dy i ⋅h dt = y i + ay i ⋅ h y i +1 = y i + y i +1 y i +1 = y i (1 − a ⋅ h ) Politechnika Poznańska ® Michał Płotkowiak, Adam Łodygowski METODY KOMPUTEROWE UKŁADY RÓWNAŃ RÓŻNICZKOWYCH, METODY WIELOKROKOWE Rozwiązanie zależy od wielkości kroku h Aby rozwiązanie było stabilne to musi być spełniony warunek: 1− a ⋅ h < 1 . h < 2 a = 2 1000 = 0,002 METODA EXPLICIT (metoda jawna) Metoda ta polega na wyznaczaniu rozwiązania przez wykonywanie operacji i otrzymywaniu rozwiązania wprost. Bardzo prosta w użyciu ale ograniczona przez wielkość kroku całkowania. METODA NIEJAWNA (metoda backword lub implicit Eulera) W metodzie tej stosujemy algorytm: dy i +1 ⋅h dt = y i + ay i +1 ⋅ h y i +1 = y i + y i +1 y i +1 = Metoda ta jest bezwarunkowo stabilna. yi ⇒ yi → 0 ⇒ i → ∞ 1+ a ⋅ h Przykład: y (0) = 0 dy = −1000 y + 3000 − 2000e −t dt Rozwiążemy to równanie metodą: 1) explicit Eulera dla h=0,0005 i h=0,0015, dla przedziału t=0 i t=0,006 2) implicit dla h=0,05 w przedziale 0<t<0,4 ( + (− 1000 y 1) y i +1 = y i + − 1000 y i + 3000 − 2000e 2) y i +1 = y i y i +1 = i +1 − t i +1 + 3000 − 2000e )⋅ h )⋅ h − t i +1 y i + 3000h − 2000he −ti +1 1 + 1000h Politechnika Poznańska ® Michał Płotkowiak, Adam Łodygowski 4 METODY KOMPUTEROWE UKŁADY RÓWNAŃ RÓŻNICZKOWYCH, METODY WIELOKROKOWE Rys. 1. Porównanie rozwiązań metod a) explicit i b) implicit Politechnika Poznańska ® Michał Płotkowiak, Adam Łodygowski 5