1. wstęp. metoda eulera
Transkrypt
1. wstęp. metoda eulera
1. WSTĘP. METODA EULERA 1 1. WSTĘP. METODA EULERA Wprowadzenie Motywacja poznawania metod numerycznych: 1. Rozwiązywanie bardzo dużych konstrukcji o złożonej geometrii, wielu stopniach swobody (powyżej 1miliona), przy różnorodnym zachowaniu materiałów. 2. Świadome wykorzystywanie oprogramowania (wymaganiem jest posiadanie podstawowej wiedzy na temat metod numerycznych). 3. Metody numeryczne pozwalają na “naukę” matematyki wyższej. Metody numeryczne pozwalają na formułowanie matematycznych problemów i rozwiązywanie ich w efektywny sposób. Cechą charakterystyczną metod numerycznych jest zastąpienie zwykle pracochłonnych obliczeń innymi metodami, wymagającymi zastosowania arytmetycznych działań. Przed rozwojem przemysłu komputerowego najwięcej czasu poświęcano na rozwiązywanie problemów (rozwiązywanie równań algebraicznych, różniczkowych), a znacznie mniej czasu poświęcano na samo formułowanie problemu i interpretację wyników. Było to efektem trudności w otrzymywaniu rozwiązań. Obecnie komputery i metody numeryczne stanowią alternatywę dla metod tradycyjnych. Wykorzystując komputery nie jesteśmy zmuszeni do robienia wielu założeń upraszczających co zwiększa możliwość rozwiązywania złożonych problemów. W końcowym efekcie więcej czasu można poświęcić na formułowanie problemu i interpretację wyników. Równanie różniczkowe nazywamy zwyczajnym, gdy mamy do czynienia z pochodnymi tylko jednej zmiennej niezależnej. Będziemy rozważać równania różniczkowe pierwszego rzędu: dy = f x , y dx lub układ równań dy1 f1 ( x, y1 yn ) dx dy2 f 2 ( x, y1 yn ) dy (1.1) dyn f n ( x, y1 yn ) dx z warunkiem początkowym: yi ( x0 ) yi , 0 i 1, n Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa (1.2) 1. WSTĘP. METODA EULERA 2 Zagadnienia powyższe możemy zapisać w postaci wektorowej: dy f (x,y) dx y (x0 ) y 0 y1 y 2 y yn (1.3) y1,0 y 2, 0 y0 y n, 0 f1 f 2 f fn (1.4) W przypadku gdy n=1 zagadnienie przyjmuje postać jednego równania skalarnego: dy f(x,y) dx y(x 0 ) y 0 (1.5) W tym rozdziale będziemy rozważać metody całkowania równań różniczkowych z grupy metod Rungego-Kutty, dla których wzór ogólny jest postaci: yi 1 yi h h xi 1 xi (1.6) (1.7) gdzie h jest krokiem całkowania funkcji a φ „kierunkiem” poszukiwanego kolejnego punktu rozwiązania. Metody Rungego – Kutty charakteryzują się tym, że poszukiwane rozwiązanie otrzymujemy za pomocą wcześniej obliczonych wartości. y wielkość kroku całkowania - h h=x i 1−x i hh y i 1 yi y i 1=y i f x i , y i h φ xi x i 1 x Rys.1.1 Interpretacja graficzna metody stycznych Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 1. WSTĘP. METODA EULERA 3 Metoda Eulera Jedną z najprostszych metod rozwiązywania zagadnienia (1.5) jest metoda Eulera, według której „kierunek” jest wyrażony przez pierwszą pochodną funkcji: dy f ( xi , yi ) dx (1.8) W takim razie mamy: y i 1 y i f ( xi , y i )h (1.9) h xi 1 xi (1.10) Tak więc pierwsza pochodna funkcji, to znaczy prawa strona równania różniczkowego, wyznacza kierunek położenia nowego punktu rozwiązania. Jest to tzw. predyktor. y y i 1 predyk tor yi hj punk t przybliżony błąd k rok u punk t szukany xi x i 1 x Rys.1.2 Interpretacja graficzna metody Eulera Odległość między predyktorem a rozwiązaniem dokładnym stanowi błąd metody. Ze względu na swoją prostotę metoda Eulera jest łatwa do zastosowania. Dobrze oddaje charakter rozwiązania ale może być obarczona dużym błędem. Przykład 1.1: Rozpatrzmy równanie różniczkowe postaci: dy 2 x 3 12 x 2 20 x 8,5 dx Znajdźmy rozwiązanie dla przedziału od x=0 do x=4 i warunku początkowego y(0)=1 i kroku całkowania h=0,5. Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 1. WSTĘP. METODA EULERA 4 Rozwiązanie dokładne: dy (2 x 3 12 x 2 20 x 8,5)dx 1 y x 4 4 x 3 10 x 2 8,5 x C 2 dla warunku początkowego: y (0) 1 C 1 więc rozwiązanie dokładne ma postać: 1 y x 4 4 x 3 10 x 2 8,5 x 1 2 Rozwiązanie metodą Eulera dla x = 0,5 y (0,5) y (0) f (0;1) 0,5 na podst. wzoru (1.9) f (0;1) 2(0) 3 12(0) 2 20(0) 8,5 8,5 y (0,5) 1 8,5 0,5 5,25 rozwiazanie numeryczne 1 y (0,5) (0,5) 4 4(0,5) 3 10(0,5) 2 8,5(0,5) 1 3,21875 rozw.dokladne 2 Błąd całkowity i procentowy w punkcie x = 0,5 Et ydokladne y numeryczne Et 3,21875 5, 25 2,03125 Ek Et y dokladne Ek 63,1% 100% Rozwiązanie metodą Eulera dla x = 1 y (1) y ( 0,5) f (0,5;5,25) 0,5 na podst. wzoru (1.9) f (0,5;5, 25) 2(0,5) 3 12( 0,5) 2 20( 0,5) 8,5 1, 25 y (1) 5,25 1,25 0,5 5,875 y (1) rozw.numeryczne 1 (1) 4 4 (1) 3 10 (1) 2 8,5 1 1 3 roz.dokl. 2 Błąd całkowity i procentowy w punkcie x = 1 Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 1. WSTĘP. METODA EULERA 5 Et 3 5,875 2,875 Ek 95,8% Uzyskane rozwiązanie dla całego przedziału przedstawiono na (Rys 1.3) gdzie dla porównania zamieszczono również rozwiązanie dokładne. Metoda Eulera 7 6 5 4 3 2 1 0 0 0,5 1 1,5 2 Rozw. dokładne 2,5 3 3,5 h=0,5 Rys.1.3 Rozwiązanie obliczone dla kroku h=0,5 Poprawienie dokładności można osiągnąć np. przez zmniejszenie kroku h. Na Rys1.4 przedstawiono rozwiązania dla kroku całkowania h=0,1 i h=0,5. Widać wyraźnie poprawienie dokładności dla mniejszego kroku całkowania. Metoda Eulera 7 6 5 4 3 2 1 0 0 0,5 1 1,5 Rozw. dokładne 2 2,5 h=0,1 3 h=0,5 Rys.1.4 Rozwiązania dla różnych wielkości kroku Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 3,5 1. WSTĘP. METODA EULERA 6 5 liczba kroków 500 50 5000 100 Błąd względny [%] 10 1 0,1 1 0,1 0,001 0,01 wielkość krok u Rys.1.5 Zależność między wielkością kroku, ilością kroków a dokładnością rozwiązania. Oszacowanie błędu w metodzie Eulera W analizie numerycznej wyróżniamy zasadniczo dwa typy błędów: Błędy zaokragleń wynikające z wykonywania działań arytmetycznych Błąd metody (dyskretyzacji, obcięcia). Określimy ten błąd dla metody Eulera. Dowolną funkcję można przedstawić za pomocą rozwinięcia w szereg Taylora. Gdy oznaczymy funkcję przez y mamy: (n) yi 1 yi yi ' h yi ' ' 2 y h i h n Rn 2! n! (1.11) gdzie: Rn yi ( n 1) ( ) h ( n 1 ) ( n 1)! h xi 1 xi xi xi 1 Ponieważ nasze równanie różniczkowe ma postać dy f ( x, y ) zatem możemy napisać: dx Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa (1.12) 1. WSTĘP. METODA EULERA 7 f ' ( xi , yi ) h 2 y i 1 y i f ( x i , y i ) h 2! f ( n1) ( x i , y i ) h n 0 (h n1 ) n! (1.13) Widać z równania (1.13), że błąd metody Eulera wynosi: f ' ( xi , yi ) h 2 Et 0 ( h n 1 ) 2! (1.14) a błąd przybliżony ograniczamy do pierwszego wyrazu błędu obcięcia: Ea f ' ( xi , y i ) h 2 2! (1.15) Jest to błąd lokalny na jednym kroku proporcjonalny do kwadratu kroku. Można wykazać, że błąd globalny (całkowity) jest proporcjonalny do pierwszej potęgi kroku. Przykład 1.2: Wyznaczyć błąd metody Eulera dla wielomianu z poprzedniego zadania. f ' ( xi , yi ) h 2 f ' ' ( xi , yi ) h 3 f (3) ( xi , yi ) h 4 2! 3! 4! 2 f ' ( x, y ) 6 x 24 x 20 f ' ' ( x, y ) 12 x 24 Et ze wzoru (1.14) f (3) ( x, y ) 12 Obliczamy poszczególne błędy metody dla 1,2 i 3 pochodnej w punkcie x= 0 6(0) 2 24( 0) 20 ( 0,5) 2 2,5 2 12(0) 24 (0,5) 3 0,5 6 12 ( 0,5) 4 0,03125 24 Et , 2 Et ,3 Et , 4 Całkowity błąd równy jest sumie błędów dla poszczególnych pochodnych: Et 2,5 0,5 0,03125 2,03125 W ten sposób oszacowaliśmy całkowity błąd w punkcie x=0 nie znając dokładnego rozwiązania. Zwróćmy uwagę, że błąd ten jest równy dokładnie błędowi otrzymanemu podczas rozwiązywania zadania w przykładzie wyżej. Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 1. WSTĘP. METODA EULERA 8 Et y dok y num 2,03125 Widać, że wraz ze wzrostem rzędu pochodnej (kolejne wyrazy szeregu Taylora) wartość błędu maleje, dlatego ograniczamy błąd do pochodnej drugiego rzędu. Dla metody Eulera błąd lokalny jest więc proporcjonalny do kwadratu kroku a błąd globalny o jeden rząd niżej (liniowy). W celu zmniejszenia błędu w metodzie Eulera można uwzględnić wyrazy wyższego rzędu. Przypatrzmy się, jak to będzie w przypadku wyrazu II rzędu. I tak mamy: y i 1 y i f ( x , y ) h Ea f ' (x , y ) h 2 2 f ' ' ( x, y ) h 3 3! (1.16) (1.17) Pierwszą pochodną musimy wyznaczyć jak dla funkcji uwikłanej. Jest ona następująca: f ' (x , y ) f ( x, y ) f ( x, y ) dy x y dx (1.18) Druga pochodna będzie miała postać: 2 f 2 f dy 2 f 2 f dy dy f d 2 y f ' ' ( x, y ) 2 x xy dx yx y 2 dx dx y dx 2 (1.19) Widać, że obliczenie wyższych pochodnych wymaga dużego nakładu pracy i jest skomplikowane, dlatego unika się takiego podejścia w praktyce. Zastąpmy jeszcze we wzorze (1.16) wyrażenie na dpochodną wyrażeniem różnicowym: f' yi 1 yi h Otrzymamy wówczas: yi 1 yi f ( xi , yi )h h 2 yi 1 yi ( ) 2 h i ostatecznie: yi 1 yi f ( xi , yi ) h h yi 1 yi 2 Powyższe równanie możemy zapisać również jako: yi 1 yi f ( xi , yi )h h f ( xi 1 , yi 1 ) f ( xi , yi ) 2 Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa 1. WSTĘP. METODA EULERA 9 yi 1 yi h f ( xi , yi ) f ( xi 1 , yi 1 ) 2 Zwróćmy uwagę, że powyższa formuła całkowania ma dokładność O(h3). Jest to tzw. zmodyfikowana metoda Eulera. Powrócimy do tej metody w kolejnym rozdziale. Metody Komputerowe - Dominika Mejbaum, Anna Snela, Marek Komosa