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 ( n1) ( x i , y i )  h n

 0  (h n1 ) 
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
xy dx  yx 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