Równania różniczkowe zwyczajne
Równania różniczkowe zwyczajne
Równania różniczkowe zwyczajne
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Rozdział 6<br />
RÓWNANIA RÓŻNICZKOWE<br />
ZWYCZAJNE<br />
W rozdziale niniejszym rozważane będzie zagadnienie numerycznego wyznaczania<br />
rozwiazania ˛ układu równań różniczkowych zwyczajnych pierwszego rzędu przy podanej<br />
wartości rozwiazania ˛ w punkcie poczatkowym. ˛ Jest to więc tzw. zagadnienie<br />
poczatkowe ˛ dla równań różniczkowych zwyczajnych (zadanie Cauchy’ego). Metody<br />
numeryczne rozwiazywania ˛ tego zagadnienia stanowiapodstawę ˛ algorytmiczna˛<br />
pakietów<br />
symulacji ciagłych ˛ układów dynamicznych. Ponadto, sa˛<br />
one podstawowe dla<br />
szeregu algorytmów wyznaczania rozwiazań ˛ również szerszych klas układów równań<br />
rózniczkowych, jak np. zagadnienia dwugraniczne, zob. np. [7].<br />
Zmienna niezależna˛<br />
oznaczać będziemy przez x ∈ R 1 (np. reprezentuje ona<br />
czas). Zmienne zależne (rozwiazania ˛ układu równań) oznaczaćbędziemy przez y i (x) ,<br />
i =1, ..., m. Szukaćbędziemy rozwiazania ˛ układu równań postaci:<br />
dy i<br />
dx = f i (x, y 1 , ..., y m ) , i =1, ..., m, (6.1)<br />
na odcinku x ∈ [a, b], przywarunkachpocz˛ atkowych: y i (a) =y ia , i =1, ..., m. W<br />
zapisie skróconym, wektorowym:<br />
Twierdzenie (o jednoznaczności rozwiazania)<br />
˛<br />
Jeśli spełnione sawarunki:<br />
˛<br />
1. funkcje f i ,i=1, ..., m, saci˛<br />
˛ agłe nazbiorze<br />
y 0 (x) = f (x, y) ,<br />
y (a) = y a , x ∈ [a, b]. (6.2)<br />
D = {(x, y) : a ≤ x ≤ b, y ∈R m }<br />
2. oraz spełniaja˛<br />
warunek Lipschitza wzgledem ˛ y, tzn.<br />
∃ L>0 ∀x ∈ [a, b] , ∀y,y k f i (x, y) − f i (x, y) k≤ L k y−y k, (6.3)<br />
1
2 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
to dla każdych warunków poczatkowych ˛ y a<br />
ciagła, ˛ różniczkowalna i spełniajaca<br />
˛<br />
istnieje dokładnie jedna funkcja y (x),<br />
y 0 (x) =f (x, y) , y (a) =y a , x ∈ [a, b] .<br />
Można ponadto pokazać, że zagadnienie spełniajace ˛ założenia tego twierdzenia jest<br />
dobrze postawione, tzn. jego rozwiazanie ˛ zależy w sposób ciagły ˛ odzmian(odchyleń)<br />
warunków poczatkowych ˛ i zaburzeń funkcjif.<br />
Najpopularniejsze metody numerycznego rozwiazywania ˛ równań różniczkowych<br />
można podzielić na trzy grupy:<br />
- metody jednokrokowe,<br />
- metody wielokrokowe,<br />
- metody ekstrapolacyjne.<br />
W niniejszym opracowaniu zajmiemy się metodami z dwóch pierwszych grup.<br />
Metody numeryczne znajdowania rozwiazań ˛ układu równań różniczkowych to<br />
metody różnicowe, tj. przybliżona wartość rozwi˛ azania obliczana jest w kolejnych,<br />
dyskretnych punktach x n ,<br />
a = x 0 ≤ x 1 ≤ ...≤ x n = b,<br />
gdzie h i = x i+1 − x i - kolejne kroki metody.<br />
Definicja (zbieżnościmetodyróżnicowej)<br />
Mówimy, że metoda jest zbieżna, jeśli dla każdego układu równań maj˛ acego jednoznaczne<br />
rozwiazanie ˛ y (x), przykrokachh daż ˛ acychdozerazachodzi:<br />
˛<br />
lim y (x n; h) → y (x)<br />
h→0<br />
gdzie y (x n ; h) oznacza rozwiazanie ˛ przybliżone uzyskane tametod˛<br />
˛ a.<br />
Przykład. Metoda Eulera:<br />
y n+1 = y n + hf (x n ,y n ) , n =0, 1, ... y 0 = y a . (6.4)<br />
Wykażemy teraz zbieżność tej metody (zakładajac, ˛ że y∈ C 2 na odcinku [a, b]). Mamy<br />
y (x n + h) =y (x n )+y 0 (x n ) h + y 00 (ξ n ) h2<br />
2 , ξ n ∈ [x n ,x n + h] . (6.5)<br />
Bład ˛ metody po n krokach:<br />
df<br />
e n = y (xn ) − y n<br />
Odejmujac ˛ stronami (6.4) i (6.5) oraz korzystajac ˛ z założenia, że funkcja f spełnia<br />
warunek Lipschitza otrzymujemy:<br />
e n+1 = e n + h [f (x n ,y(x n )) − f (x n ,y n )] + T n ,<br />
|e n+1 | ≤ |e n | + hL |e n | + |T n |,
P. Tatjewski WYBRANE METODY NUMERYCZNE 3<br />
Rysunek 6.1: Graficzna interpretacja metody Eulera<br />
gdzie L stała Lipschitza,zaś<br />
T n = y 00 (ξ n ) h2<br />
2 .<br />
Niech<br />
M z = 1 2 max<br />
x∈[a,b] |y00 (x)| ,<br />
wówczas szacujac ˛ bład ˛ uzyskujemy<br />
|e n+1 | ≤ (1 + Lh) |e n | + h 2 M z<br />
≤ (1 + hL) 2 |e n−1 | + h 2 M z ((1 + Lh)+1)<br />
nX<br />
≤ ··· ≤ h 2 M z (1 + Lh) j<br />
j=0<br />
= h 2 1 − (1 + Lh) n+1<br />
M z<br />
1 − (1 + Lh)<br />
(1 + Lh) n+1 − 1<br />
= hM z ,<br />
L<br />
skad ˛ przy założeniu L 6= 0otrzymujemy, podstawiajac ˛ n+1 = x n+1−a<br />
h<br />
tożsamość 1+Lh < e Lh ,<br />
iwykorzystuj˛ ac<br />
(1 + Lh) x n+1 −a<br />
h<br />
− 1<br />
|e n | ≤ hM z<br />
L<br />
e L(b−a) − 1<br />
≤ hM z = ξ<br />
L<br />
0 h,<br />
co dowodzi zbieżności metody Eulera, gdyż |e n | −→ 0 dla h −→ 0.
4 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Metoda Eulera jest najprostsza, ˛ ale i najmniej dokładna. ˛ Stad ˛ nie ma ona większego<br />
znaczenia praktycznego. Natomiast tzw. zmodyfikowane metody Eulera podane<br />
poniżej maja już znaczenie praktyczne, jako stosunkowo najprostsze metody nie<br />
generujace ˛ w typowych sytuacjach zbyt dużych błędów.<br />
Zmodyfikowana metoda Eulera ( metoda punktu środkowego):<br />
y n+1 = y n + hf(x n + 1 2 h, y n + 1 2 hf (x n,y n )) (6.6)<br />
Metoda Heuna (też modyfikacja metody Eulera):<br />
y n+1 = y n + 1 2 h [f (x n,y n )+f (x n + h, y n + hf (x n ,y n ))] (6.7)<br />
Czytelnikowi pozostawiamy zastanowienie się nad interpretacjagraficzn ˛ atychmetod<br />
˛<br />
i porównanie ich z metodaEulera.<br />
˛<br />
6.1 METODY JEDNOKROKOWE<br />
Ogólny wzór określajacypojedynczykroktzw.metod ˛<br />
jednokrokowych:<br />
y n+1 = y n + h Φ f (x n ,y n ; h) ,<br />
y 0 = y a , gdzie x n = x 0 + nh, n =0, 1, ... (6.8)<br />
zaś Φ f (x n ,y n ; h) to funkcja definiujaca ˛ metodę. Możemy napisać<br />
Φ f (x n ,y n ; h) = y n+1 − y n<br />
, (h 6= 0).<br />
h<br />
Zdefiniujmy<br />
∆ f (x n ,y n ; h) = y (x n + h) − y (x n )<br />
h<br />
Metoda jest zbieżna, gdy<br />
h → 0 ⇒ y (x n ; h) → y (x) ,<br />
tzn. gdy h → 0 ⇒ Φ f (x n ,y n ; h) → ∆ f (x n ,y n ; h) .<br />
Zkoleimamy<br />
∆ f (x n ,y n ; h) → h→0 y 0 (x n )=f (x n ,y n ) .<br />
St ˛ ad warunkiem aproksymacji (też: wrunkiem zgodności metody z równaniem) nazywamy<br />
warunek<br />
Φ f (x, y;0)=f (x, y)
P. Tatjewski WYBRANE METODY NUMERYCZNE 5<br />
Jeśli spełnione sazałożenia ˛ twierdzenia o jednoznaczności rozwiazań ˛ orazΦ f (x, ·; h)<br />
spełnia warunek Lipschitza, to warunek powyższy jest koniecznym i dostatecznym<br />
zbieżności metody jednokrokowej.<br />
Bład ˛ aproksymacji (lokalny) - bład ˛ powstały wjednymkroku(tj.przyzałożeniu,<br />
że y (x n )=y n ), wyraża się wzorem:<br />
r n (h) df = y (x n + h) − [y (x n )+hΦ f (x n ,y n ; h)] , (6.9)<br />
gdzie y (x n + h) jest rozwiazaniem, ˛ dla x = x n + h, ukł adu<br />
y 0 (x) = f (x, y (x)) ,<br />
y (x n ) = y n , x ∈ [x n ,b] .<br />
Zakładajac ˛ odpowiedniagładkość ˛ funkcji r n (h) irozwijaj˛ ac ja˛<br />
w szereg Taylora otrzymujemy:<br />
r n (h) =r n (0) + rn 0 (0) h + 1 2 r(2) n (0) h 2 + ...<br />
Mówimy, że metoda jest rzedu ˛ p, jeśli zachodzarówności:<br />
˛<br />
r n (0) = 0, r 0 n<br />
(0) = 0, . . ., r(p) n<br />
(0) = 0, r(p+1) n (0) 6= 0. (6.10)<br />
Wtedy<br />
r n (h) = r(p+1) n (0)<br />
(p +1)! hp+1 + O ¡ h p+2¢ , (6.11)<br />
gdzie pierwszy składnik to tzw. cześć ˛ główna bł edu ˛ aproksymacji, zaśdrugijest<br />
funkcjarzędu ˛ nie niższego niż h p+2 (tzn. iloraz O(hp+2 )<br />
jest ograniczony w otoczeniu<br />
h p+2<br />
zera).<br />
Przykład.<br />
Dla metody Eulera<br />
r n (h) =y (x n + h) − y n − hf (x n ,y n ) .<br />
Rozwijajac ˛ y (x n + h) w szereg Taylora otrzymujemy:<br />
y (x n + h) =y (x n )+y 0 (x n ) h + 1 2 y00 (x n ) h 2 + ...<br />
Zzałożenia y n = y (x n ) , y 0 (x n )=f (x n ,y n ) , stad<br />
˛<br />
y (x n + h) = y n + hf (x n ,y n )<br />
| {z } +y00 (x n ) h 2 + ...<br />
y n+1<br />
Stad ˛ bezpośrednio<br />
r n (h) =yn 00 (x n) h 2 + O ¡ h 3¢ ,<br />
zatem metoda Eulera jest rzędu pierwszego.
6 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
6.1.1 Metody Rungego - Kutty (RK)<br />
Metody te można zdefiniować następujacym ˛ wzorem:<br />
przy czym i−1 P<br />
y n+1 = y n + h ·<br />
j=1<br />
mX<br />
w i k i ,<br />
i=1<br />
gdzie<br />
k 1 = f (x n ,y n ) ,<br />
Ã<br />
!<br />
Xi−1<br />
k i = f x n + c i h, y n + h · a ij k j , i =2, 3, ..., m<br />
a ij = c i , i =2, 3, ..., m.<br />
Dla wykonania jednego kroku metody należy obliczyćwartości prawych stron równań<br />
różniczkowych dokładnie m razy (dlatego będziemy mówić o m-etapowej iteracji<br />
metody, czy krócej o metodzie m-etapowej) Parametry w i , a ij , c i dobiera się tak,<br />
aby przy ustalonym m rzad ˛ metody był możliwie wysoki. Jesli przez p(m) oznaczymy<br />
maksymalny możliwy do uzyskania rzad ˛ metody, to udowodniono, że<br />
j=1<br />
p (m) =m dla m =1, 2, 3, 4<br />
p (m) =m − 1 dla m =5, 6, 7<br />
p (m) ≤ m − 2 dla m ≥ 8<br />
Największe znaczenie praktyczne majametodyzm ˛<br />
=4irzędu 4 - udany kompromis<br />
między dokładnościametody(rz˛<br />
˛<br />
ad metody) a nakładem obliczeń najedn˛ aiteracjęi<br />
zwiazanym ˛ z tym wpł ywem błędów zaokragleń.<br />
˛<br />
Metoda RK 4-tego rzędu (RK4, ”klasyczna”):<br />
y n+1 = y n + 1 6 h (k 1 +2k 2 +2k 3 + k 4 )<br />
k 1 = f (x n ,y n )<br />
k 2 = f(x n + 1 2 h, y n + 1 2 hk 1)<br />
k 3 = f(x n + 1 2 h, y n + 1 2 hk 2)<br />
k 4 = f (x n + h, y n + hk 3 )<br />
Interpretacja graficzna wyznaczania kolejnego punktu wg powyższych wzorów przedstawiona<br />
jest na rysunku ??.<br />
Wybór długości kroku<br />
Podstawowym zagadnieniem przy praktycznej implementacji metod rozwi ˛ azywania<br />
równań różniczkowych zwyczajnych jest kwestia doboru długości kroku całkowania h.<br />
Przy wyznaczaniu długości kroku występuja dwie przeciwstawne tendencje:
P. Tatjewski WYBRANE METODY NUMERYCZNE 7<br />
Rysunek 6.2: Graficzna interpretacja metody RK4<br />
• jeśli krok h maleje, to maleje bład ˛ metody (bład ˛ aproksymacji), dla metody<br />
zbieżnej maleje do zera przy h daż ˛ acym ˛ do zera,<br />
• jeśli krok h maleje, to rośnie ilość iteracji (ilość kroków) dla wyznaczenia rozwiaza-<br />
nia na zadanym odcinku [a, b], ast˛ ad ilość obliczeń izwi˛ azanych z nimi bł ędów<br />
˛<br />
zaokragleń.<br />
˛<br />
Stad, ˛ nadmierne zmniejszanie długości kroku nie jest wskazane - krok powinien<br />
być wystarczaj˛ acy dla uzyskania założonej dokł adności, ale nie znacznie mniejszy.<br />
Wmyśl powyższych uwag, stały krokcałkowania będzie odpowiedni jedynie dla<br />
rozwiazań ˛ o podobnej szybkości zmienności w całym zakresie [a, b]. Aiwtymprzypadku<br />
zgadnięcie optymalnej jego długościniejestapriorimożliwe - powinien byćdobierany<br />
automatycznie przez metodę. Oczywiście, rozwiazania ˛ bardzo wielu układów<br />
równań różniczkowych saoróżnej ˛ szybkości zmienności, nierzadko różniacej ˛ sie o<br />
rzędy wielkości. Dla takich sytuacji wskazane jest zmienianie długości kroku w trakcie<br />
działania metody - automatyczny dobór długości kroku powinien być wbudowany<br />
w algorytm metody.<br />
Najistotniejsza informacja˛<br />
konieczna˛<br />
dla automatycznego wyznaczania odpowiedniej<br />
długości kroku jest oszacowanie wartości błędu metody w danym jej kroku.
8 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Szacowanie wartości błędu według zasady zdwajania kroku<br />
Dla jednego kroku o długości h wykonujemy dodatkowo, równolegle (tzn. startujac<br />
˛ też z punktu x n )dwadodatkowekrokiodługości h , w celu oszacowania błędu.<br />
2<br />
Wprowadźmy oznaczenia:<br />
• y (1)<br />
n - nowy punkt uzyskany w kroku o długości h,<br />
• y (2)<br />
n - nowy punkt wyznaczony przez dwa kroki o długościach h 2 .<br />
Zakładajac ˛ identyczny bład ˛ aproksymacji w każdym z dwóch kroków pomocniczych<br />
(świadome przybliżenie) mamy<br />
p+1<br />
y (x n + h) '<br />
µ h<br />
y n (2) +O ¡ h p+2¢<br />
2<br />
| {z }<br />
po kroku podwójnym<br />
część główna błędu<br />
y (x n + h) = y (1)<br />
n + γ · h p+1<br />
| {z } +O ¡ h p+2¢ po kroku pojedynczym<br />
część główna błędu<br />
Rugujac ˛ nieznany współczynnik γ = r(p+1)<br />
n (0)<br />
(p+1)!<br />
otrzymamy:<br />
Stad ˛ bezpośrednio<br />
y (x n + h) = y (2)<br />
n<br />
y (x n + h)(1− 1 2 p ) = y(2) n<br />
= y (2)<br />
n<br />
y (x n + h) − y n<br />
(1)<br />
+ O ¡ h p+2¢<br />
2 p h p+1<br />
+ hp+1<br />
− y(1) n<br />
2 + O ¡ h p+2¢<br />
p<br />
(1 − 1<br />
2 p )+y(2)<br />
n<br />
2 − y(1) n<br />
p 2 + O ¡ h p+2¢<br />
p<br />
lub równoważnie<br />
y (x n + h) =y (1)<br />
n<br />
y (x n + h) =y (2)<br />
n<br />
+2 p y(2) n − y n<br />
(1)<br />
2 p − 1<br />
+ y(2) n − y n<br />
(1)<br />
2 p − 1<br />
+ O ¡ h p+2¢ , (6.12)<br />
+ O ¡ h p+2¢ . (6.13)<br />
Z (6.12) wynika oszacowanie błędu δ n (h) ≈ y n (2) − y n<br />
(1) pojedynczego kroku o długości<br />
h (za oszacowanie błędu przyjmuje się oszacowanie jego części głównej). Natomiast,<br />
występujacy ˛ w (6.13) składnik części głównej błędu<br />
µ<br />
δ n 2 × h <br />
= y(2) n − y n<br />
(1)<br />
2 2 p − 1<br />
Ã<br />
y n (2) − y n<br />
(1)<br />
= p=4<br />
15<br />
!<br />
(6.14)
P. Tatjewski WYBRANE METODY NUMERYCZNE 9<br />
można potraktować jako oszacowanie błędu dwóch kolejnych kroków o długości h/2,<br />
i oszacowanie to jest 2 p razy mniejsze niż δ n (h). Stad, ˛ przyjmowanie y n+1 = y n<br />
(1) z<br />
oszacowaniem błędu δ n (h) ≈ y n (2) − y n<br />
(1) , jakkolwiek poprawne, prowadzi do niewykorzystania<br />
dokł adniejszego wyniku uzyskanego w dwóch mniejszych krokach. Praktyczniejsze<br />
jest przyjmowanie y n+1 = y n<br />
(2)<br />
¡<br />
z oszacowaniem błędu δ n 2 ×<br />
h<br />
2¢<br />
(6.14) - i,<br />
być może, z nieco ostrożniejszym współ czynnikiem bezpieczeństwa, zob. punkt 6.1.3.<br />
6.1.2 Metody Rungego-Kutty-Fehlberga (RKF)<br />
Załóżmy, że rozważamy dwie metody RK, m-etapowarzędu ˛ p i m+1-etapowarzędu<br />
˛<br />
p+1.<br />
-MetodaRKrzędu p:<br />
y n+1 = y n + h · mP wi ∗ k i<br />
i=1<br />
k 1 = f (x n ,y n )<br />
k i = f(x n + c i h, y n + h · i−1 P<br />
a ij k j ),<br />
-MetodaRKrzędu p+1:<br />
j=1<br />
i =2, 3, ..., m<br />
(6.15)<br />
y n+1 = y n + h · m+1 P<br />
i=1<br />
w i k i<br />
k 1 = f (x n ,y n )<br />
k i = f(x n + c i h, y n + h · i−1 P<br />
a ij k j ), i =2, 3, ..., m +1<br />
j=1<br />
(6.16)<br />
Wobumetodachwspółczynniki wi<br />
∗ i w i saróżne, ˛ ale współczynniki c i i a ij sa˛<br />
równe dla j =1, ..., i − 1, i=2, ..., m ,tznwspółczynniki k i sarównedlai ˛<br />
=1, ..., m.<br />
Jeśli wykonamy obliczenia obydwiema metodami, to<br />
-dlarzędu p:<br />
-dlarzędu p+1:<br />
y (x n + h) = y n + h ·<br />
mX<br />
wi ∗ k i (h)+h p+1 γ (0) + O ¡ h p+2¢<br />
i=1<br />
| {z } | {z }<br />
y (0)<br />
n+1 część główna błędu<br />
m+1<br />
X<br />
y (x n + h) = y n + h · w i k i (h)+h p+2 γ (1) + O ¡ h p+3¢<br />
i=1<br />
| {z } | {z }<br />
y (1)<br />
n+1 O ¡ h p+2¢
10 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Odejmujac ˛ stronami i pomijajac ˛ ”ogon” składajacy ˛ sie z wyrażeń O (h p+2 ) otrzymujemy<br />
oszacowanie błędu (błędu metody rzędu p, niższego):<br />
δ n (h) = h p+1 γ (0)<br />
mX<br />
= h · (w i − wi ∗ ) · k i (h)+hw m+1 k m+1 (h) (6.17)<br />
i=1<br />
Omówiona para metod RK to tzw. para metod włożonych Fehlberga, zwanych<br />
metodami RKF (Rungego-Kutty-Fehlberga). Zwięzły zapiswspółczynników metody<br />
m-etapowej:<br />
0<br />
c 2<br />
c 3<br />
.<br />
c m<br />
¯¯¯¯¯¯¯¯¯¯¯<br />
a 21<br />
a 31 a 32<br />
. .<br />
a m1 a m2 ··· a<br />
¯¯¯¯¯¯¯¯¯¯¯<br />
m,m−1<br />
Dla pary metod włożonych, m i m+1 etapowej, mamy jednatabelkę:<br />
˛<br />
0<br />
w1<br />
c 2 a 21<br />
. .<br />
c m a m1 a m,m−1<br />
c<br />
¯¯¯¯¯¯¯¯¯¯¯<br />
m+1 a m+1,1 ··· a m+1,m−1 a<br />
¯¯¯¯¯¯¯¯¯¯¯<br />
∗ w 1<br />
w2<br />
∗ w 2<br />
.<br />
.<br />
wm<br />
∗ w m<br />
¯<br />
m+1,m<br />
w ∗ 1<br />
w ∗ 2<br />
w ∗ 3<br />
.<br />
w ∗ m<br />
w m+1<br />
Parametry par metod włożonych1i2rzędu,RKF12,2i3rzędu RKF23 oraz 4 i 5<br />
rzędu, RKF45, podano w tabelach 1, 2 i 3.<br />
Tabela 1. Parametryparymetodwłożonych 1 i 2 rzędu (RKF12):<br />
c i a ij w ∗ i w i<br />
0<br />
1<br />
256<br />
1<br />
512<br />
1<br />
2<br />
1<br />
2<br />
255<br />
256<br />
255<br />
256<br />
1<br />
1<br />
256<br />
Tabela 2. Parametryparymetodwłożonych 2 i 3 rzędu (RKF23)<br />
255<br />
256<br />
1<br />
512<br />
c i a ij w ∗ i w i<br />
0<br />
214<br />
891<br />
533<br />
2106<br />
1<br />
4<br />
1<br />
4<br />
1<br />
0<br />
33<br />
27<br />
− 189<br />
40 800<br />
729<br />
800<br />
650<br />
891<br />
800<br />
1053<br />
1<br />
214<br />
891<br />
1<br />
33<br />
650<br />
891<br />
− 1<br />
78
P. Tatjewski WYBRANE METODY NUMERYCZNE 11<br />
Tabela 3. Parametryparymetodwłożonych 4 i 5 rzędu (RKF45)<br />
c i a ij w ∗ i w i<br />
0<br />
25<br />
216<br />
16<br />
135<br />
1<br />
4<br />
1<br />
0 0<br />
4<br />
3<br />
8<br />
3<br />
32<br />
9<br />
32<br />
1408<br />
2565<br />
6656<br />
12825<br />
12<br />
13<br />
1932<br />
− 7200<br />
2197 2197<br />
7296<br />
2197<br />
2197<br />
4104<br />
28561<br />
56430<br />
1<br />
439<br />
216<br />
−8<br />
3680<br />
513<br />
− 845<br />
4104<br />
− 1 5<br />
− 9 50<br />
1<br />
− 8 2 − 3544<br />
2 27 2565<br />
1859<br />
− 11<br />
4104 40<br />
2<br />
55<br />
Wykonanie jednego kroku obliczeń zapomoc˛ a metody RKF45 wymaga, ł acznie ˛ z<br />
szacowaniem błędu, sześciu obliczeń funkcji prawej strony układu równań. Dla porównania:<br />
wykonanie jednego kroku obliczeńzapomoc˛ a metody RK4 wraz z szacowaniem<br />
błędu według zasady Rungego, realizowanej zgodnie z wzorem (6.13), wymaga 11-tu<br />
(4+3+4) obliczeń wartości funkcji prawej strony - ale jest to w istocie metoda liczaca<br />
˛<br />
z krokiem h/2. Tak więc w przypadku kroków udanych, spełniajacych ˛ test dokładności<br />
(sα ≥ 1)nakład obliczeńnaiterację jest porównywalny, natomiast w przypadku<br />
kroków nieudanych metody RKF sa˛<br />
znacznie efektywniejsze niż RK..<br />
6.1.3 Wyznaczanie zmienionej długości kroku<br />
Mamy ogólny wzór na część głównabłędu ˛ dla kroku h:<br />
δ n (h) =h p+1 · γ, (6.18)<br />
gdzie γ jest odpowiednim współczynnikiem w rozwinięciu bł ędu aproksymacji w<br />
szereg Taylora. Gdy zmieniamy krok na αh, to<br />
δ n (αh) =(αh) p+1 · γ,<br />
stad<br />
˛<br />
Zakładajac ˛ dokładność ε:<br />
δ n (αh) =α p+1 · δ n (h) . (6.19)
12 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
uzyskujemy<br />
|δ n (αh)| = ε,<br />
α p+1 |δ n (h) | = ε,<br />
skad ˛ dostajemy współczynnik modyfikacji kroku α,<br />
ε<br />
α =(<br />
|δ n (h)| ) 1<br />
p+1 . (6.20)<br />
Wzór ten jest oczywiście sluszny dla dowolnej metody z oszacowaniem błędu δ n (h).<br />
Jest on też słuszny dla metody RK4 z szacowaniem błędu wg zasady Rungego zależnościa<br />
˛ (6.14), tzn. gdy δ n (h) =δ n 2 ×<br />
¡<br />
h<br />
2¢<br />
. Albowiem<br />
µ<br />
δ n 2 × h <br />
≈ 2γ( h 2 2 )p+1 ,<br />
µ<br />
δ n 2 × αh <br />
≈ 2γ( αh<br />
2 2 )p+1 = α p+1 · 2γ( h 2 )p+1 = α p+1 · δ n<br />
µ2 × h <br />
,<br />
2<br />
tj. zależność analogiczna jak (6.19).<br />
Wpraktyce,dlauwzględnienia niedokładności oszacowania błędu, stosuje się jeszcze<br />
współczynnik bezpieczeństwa, s, st˛ ad<br />
h n+1 = s · α · h n , gdzie s
P. Tatjewski WYBRANE METODY NUMERYCZNE 13<br />
Punkt startowy: x 0 = a, (x ε [a, b])<br />
Parametry dokładności: ε w , ε b<br />
Krok początkowy: h 0<br />
Licznik iteracji: n = 0<br />
wzrosth := .TRUE.<br />
Startując z punktu x n z krokiem h n wyznacz<br />
(metodą RK czy RKF) :<br />
- rozwiązanie y n+1 ,<br />
- oszacowanie błędu δ n (h n ).<br />
Wylicz współczynnik korekty długości kroku α,<br />
a następnie proponowaną korektę długości kroku:<br />
h * n+1 = sαh n , (s = 0.9)<br />
T<br />
sα < 1<br />
N<br />
wzrosth := .FALSE.<br />
N<br />
x n +h n =b<br />
T<br />
N<br />
h n := h * n+1<br />
h * n+1
14 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
6.2 METODY WIELOKROKOWE<br />
Ogólna postać wzorudefiniujacego ˛ krok (iterację) metody k-krokowej liniowej:<br />
kX<br />
kX<br />
y n = α j y n−j + h β j · f (x n−j ,y n−j ) ,<br />
j=1<br />
y 0 = y a .<br />
Metoda wielokrokowa jest jawna (ang. explicit method), jeśli β 0 = 0. Dla<br />
metody jawnej wartość y n zależy jawnie (explicite) od wartości y i f(x, y) jedynie w<br />
poprzednich (już obliczonych) punktach, tj od wartości y n−1 ,y n−2 ,...,y n−k ,f n−1 =<br />
f (x n−1 ,y n−1 ) ,f n−2 = f (x n−2 ,y n−2 ) , ..., f n−k = f (x n−k ,y n−k ) .<br />
Metoda wielokrokowa jest niejawna ( ang. implicit method), jeśli β 0 6=0. Dla<br />
metody niejawnej nowa wartość y n obliczana jest na podstawie k poprzednich wartości<br />
y n−1 , ..., y n−k i f n−1 , ..., f n−k gdzie f j = f (x j ,y j ),orazrównieżwartości w punkcie<br />
bieżacym ˛ f n = f(x n ,y n ), tj. dla wyznaczenia y n trzeba w istocie rozwiazać ˛ równanie<br />
(nieliniowe jeśli f nieliniowa) ϕ (y n )=0,gdzie<br />
ϕ (y n ) df = −y n +<br />
kX<br />
α j y n−j + h ·<br />
j=1<br />
j=0<br />
kX<br />
β j f (x n−j ,y n−j )+hβ 0 f (x n ,y n ) .<br />
j=1<br />
Dla β 0 6=0równanie to może mieć niejednoznaczne rozwiazanie, ˛ jest ono jednoznaczne<br />
jeśli<br />
h
P. Tatjewski WYBRANE METODY NUMERYCZNE 15<br />
Metody Adamsa dostajemy rozważajac ˛ to równanie na przedziale [x n−1 ,x n ]:<br />
y (x n )=y (x n−1 )+<br />
Z x n<br />
f (t, y (t)) dt.<br />
x n−1<br />
Metody jawne (Adamsa - Bashfortha)<br />
Funkcję podcałkowaprzybliżamy ˛<br />
wielomianem interpolacyjnym W (x) stopniaconajwyżej<br />
k − 1 opartym na węzłach x n−1 , ..., x n−k ,przyjmuj˛ ac y (x n−j ) ∼ = y n−j .Stosuj˛ ac<br />
wzór interpolacyjny Lagrange’a mamy<br />
f (x, y (x)) ∼ kX<br />
= W (x) = f (x n−j ,y n−j ) · L j (x) ,<br />
j=1<br />
kX<br />
y n = y n−1 + f (x n−j ,y n−j ) ·<br />
j=1<br />
gdzie L j (x) to wielomiany Lagrange’a,<br />
Z x n<br />
x n−1<br />
L j (t) dt<br />
L j (x) =<br />
kY<br />
m=1,m6=j<br />
x − x n−m<br />
x n−j − x n−m<br />
.<br />
Stad ˛ po scałkowaniu, przy założeniu x n−j = x n − jh, j =1, 2, ..., k, otrzymujemy:<br />
y n = y n−1 + h<br />
kX<br />
β j f (x n−j ,y n−j ) ,<br />
gdzie wartości współczynników β dla kilku wartości k podano w tabeli 4.<br />
Tabela 4. Parametry metod Adamsa-Bashfortha (jawnych)<br />
j=1<br />
k β 1 β 2 β 3 β 4 β 5 β 6 β 7<br />
1 1 - metoda Eulera<br />
2<br />
3<br />
2<br />
− 1 2<br />
23<br />
3 − 16<br />
12 12<br />
55<br />
4 − 59<br />
24 24<br />
1901<br />
5 − 2774<br />
720 720<br />
4277<br />
6 − 7923<br />
1440 1440<br />
5<br />
12<br />
37<br />
24<br />
− 9<br />
24<br />
2616<br />
− 1274<br />
720 720<br />
9982<br />
− 7298<br />
1440 1440<br />
251<br />
720<br />
2877<br />
1440<br />
− 475<br />
1440<br />
7<br />
198721<br />
− 447288<br />
60480 60480<br />
705549<br />
− 688256<br />
60480 60480<br />
407139<br />
− 134472<br />
60480 60480<br />
19087<br />
60480
16 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Tabela 5. Parametry metod Adamsa-Moultona (niejawnych)<br />
k β ∗ 0 β ∗ 1 β ∗ 2 β ∗ 3 β ∗ 4<br />
1 ∗ 1<br />
1<br />
1<br />
2<br />
1<br />
2<br />
-wsteczna<br />
met.Eulera<br />
2<br />
5<br />
12<br />
8<br />
12<br />
− 1<br />
12<br />
3<br />
9<br />
24<br />
19<br />
24<br />
− 5<br />
24<br />
1<br />
24<br />
4<br />
251<br />
720<br />
646<br />
- 264<br />
720 720<br />
106<br />
720<br />
− 19<br />
720<br />
5<br />
475<br />
1440<br />
1427<br />
1440<br />
− 798<br />
1440<br />
482<br />
1440<br />
− 173<br />
1440<br />
27<br />
1440<br />
6<br />
19087<br />
60480<br />
65112<br />
− 46461<br />
60480 60480<br />
37504<br />
− 20211<br />
60480 60480<br />
6312<br />
60480<br />
− 863<br />
60480<br />
7<br />
36799<br />
120960<br />
139849<br />
− 121797<br />
120960 120960<br />
123133<br />
120960<br />
− 88547<br />
120960<br />
41499<br />
120960<br />
− 11351<br />
120960<br />
1375<br />
120960<br />
Metody niejawne (Adamsa - Moultona)<br />
Funkcję podcałkowaprzybliżamy ˛<br />
wielomianem interpolacyjnym W ∗ (x) stopnia co<br />
najwyżej k opartym na węzł ach x n ,x n−1 , ..., x n−k .Następnie postępujac ˛ analogicznie<br />
jak w przypadku poprzednim metod Adamsa-Bashfortha otrzymamy:<br />
kX<br />
y n = y n−1 + h β ∗ j · f (x n−j,y n−j )=<br />
j=0<br />
= y n−1 + h · β ∗ 0 · f (x n,y n )+h<br />
kX<br />
β ∗ j · f (x n−j,y n−j )<br />
Wartości parametrów β ∗ j dla kilku wartościkpodanowtabeli5.<br />
j=1<br />
6.2.2 Bład ˛ aproksymacji<br />
Błedem ˛ aproksymacji odpowiadajacym ˛ punktowi x n nazywamy różnicę:<br />
r n (h) df =[<br />
kX<br />
α j y (x n−j )+h<br />
j=1<br />
kX<br />
β j f (x n−j ,y(x n−j ))] − y (x n ) , (6.25)<br />
j=0
P. Tatjewski WYBRANE METODY NUMERYCZNE 17<br />
tzn. bład ˛ aproksymacji r n (h) informuje o tym, jaki bład ˛ wnosi metoda w kroku x n ,a<br />
więc przy założeniu y n−j = y(x n−j ),j=1,...,k. Łacz ˛ ac ˛ równanie metody i równanie<br />
błędu dostajemy:<br />
y n − y(x n )=hβ 0 [f(x n ,y n ) − f(x n ,y(x n ))] + r n (h) .<br />
Stosujac ˛ twierdzenie o wartości średniej dostajemy dalej<br />
r n (h) =(1− hβ 0<br />
∂f<br />
∂y (x n,ζ n ))(y n − y(x n )), (6.26)<br />
gdzie ζ n (y n, y(x n )). Tak więc dla metody jawnej bład ˛ aproksymacji jest równy różnicy<br />
y n − y(x n ),adlametodyniejawnej jest proporcjonalny do tej różnicy, przy czym<br />
współczynnik proporcjonalności jest tym bliższy 1 im mniejsza wartośc kroku h.<br />
Przyjmujac ˛ x n−j = x n − jh (stały krok), j =0, 1,...,k mamy<br />
r n (h) =<br />
kX<br />
α j y (x n − jh)+h<br />
j=0<br />
gdzie α 0 = −1.<br />
kX<br />
β j y 0 (x n − jh) ,<br />
Rozwijajac ˛ y (x n − jh) i y 0 (x n − jh) w szereg Taylora w otoczeniu punktu x n (jeśli<br />
tylko y (x) jest p+1 razy różniczkowalna, p ≥ 1), dostajemy<br />
gdzie<br />
c 0 =<br />
p+1<br />
X<br />
r n (h) =c 0 y (x n )+ h m c m y (m) (x n )+O ¡ h p+2¢ , (6.27)<br />
kX<br />
α j = −1+<br />
j=0<br />
c 1 = −<br />
c m = 1 m!<br />
kX<br />
jα j +<br />
j=1<br />
j=1<br />
kX<br />
j=0<br />
kX<br />
j=1<br />
β j<br />
m=1<br />
α j<br />
kX<br />
(−j) m 1<br />
α j +<br />
(m − 1)!<br />
j=0<br />
kX<br />
(−j) (m−1) β j , m ≥ 2. (6.28)<br />
Metoda wielokrokowa jest rzedu ˛ p jeśli c 0 , ..., c p =0, c p+1 6=0.Dlametodyrzędu<br />
p bład ˛ aproksymacji wyraża się wzorem<br />
j=1<br />
r n (h) =c p+1 h p+1 y (p+1) (x n )+O(h p+2 ), (6.29)<br />
gdzie wartość c p+1 to stałabł ˛ edu,zaś ˛ c p+1 h p+1 y (p+1) (x n ) to cześćgłówna ˛ błędu sproksymacji.<br />
Wartości stałych błędu metod Adamsa-Bashfortha podano w tabeli 6, a<br />
Adamsa-Moultona w tabeli 7.
18 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Tabela 6. Rzędy i stałe błędumetodjawnychAdamsa<br />
k 1 2 3 4 5 6 7<br />
p 1 2 3 4 5 6 7<br />
c p+1 − 1 2<br />
− 5<br />
12<br />
− 3 8<br />
− 251<br />
720<br />
− 95<br />
288<br />
− 19087<br />
60480<br />
− 36799<br />
120960<br />
Tabela 7. Rzędy i stałe błędu metod niejawnych Adamsa<br />
k 1 ∗ 1 2 3 4 5 6 7<br />
p 2 3 4 5 6 7 8<br />
c ∗ p+1<br />
1<br />
2<br />
1<br />
12<br />
1<br />
24<br />
19<br />
720<br />
3<br />
360<br />
863<br />
60480<br />
275<br />
24192<br />
339533<br />
3628800<br />
6.2.3 Stabilność izbieżność<br />
Metoda wielokrokowa jest stabilna, jeśli stabilne jest jej równanie różnicowe dla h =0,<br />
kX<br />
−y n + α j y n−j =0. (6.30)<br />
j=1<br />
Wielomian charakterystyczny tego równania to:<br />
ρ (z) =−z k + α 1 z k−1 + ... + α k−1 z + α k . (6.31)<br />
Twierdzenie.<br />
Metoda k-krokowa jest zbieżna wtedy i tylko wtedy, gdy jest stabilna i jest co najmniej<br />
rzedu ˛ pierwszego (tzn, zachodzi c 0 = c 1 =0- tzw. warunek aproksymacji,<br />
zgodności).<br />
Dla metody zbieżnej jedynka jest zawsze pierwiastkiem wielomianu ρ (z), ponieważ:<br />
ρ (1) = −1+<br />
nX<br />
α i = c 0 =0<br />
i=1<br />
Zdefiniujmy ponadto wielomian zwiazany ˛ ze współczynnikami β j metody,<br />
σ (z) =β 0 z k + ... + β k−1 z + β k . (6.32)
P. Tatjewski WYBRANE METODY NUMERYCZNE 19<br />
Wykazano, zob. [6], że dla danego wielomianu ρ (z) metody k-krokowej można skonstruować<br />
takiwielomianσ (z) stopnia m ( m ≤ k), że metoda jest rzedu p>m. Praktycznie<br />
użyteczny maksymalny rzad ˛ stabilnej metody k-krokowej niejawnej wynosi<br />
k+1. Dla k parzystych możliwy jest maksymalny rzadrównyk+2,alewtedyitylko<br />
˛<br />
wtedy gdy wszystkie pierwiastki wielomianu charakterystycznego leżanakolejed-<br />
nostkowym, co prowadzi do złych cech tzw. absolutnej stabilności metody (definicja<br />
˛<br />
dalej), rodzaju stabilności najważniejszej z praktycznego punktu widzenia .<br />
Stad<br />
˛<br />
Przykład.<br />
Rozważmy ogólnie metodę jawn˛ adwukrokow˛ a, zakładajac ˛ jej rzad ˛ p =2.Mamy<br />
y n = α 1 y n−1 + α 2 y n−2 + hβ 1 f (x n−1 ,y n−1 )+hβ 2 f (x n−2 ,y n−2 ) .<br />
ρ(z) = −z 2 + α 1 z + α 2 ,<br />
σ(z) = β 1 z + β 2 .<br />
Warunki rzędu drugiego (zawierajace ˛ warunki zgodności) to<br />
c 0 = 0 ⇒ −1+α 1 + α 2 =0,<br />
c 1 = 0 ⇒ −α 1 − 2α 2 + β 1 + β 2 =0,<br />
c 2 = 0 ⇒ 1 2 (α 1 +4α 2 ) − β 1 − 4β 2 =0.<br />
Sa˛<br />
to trzy równania z czterema niewiadomymi. Traktujac ˛ β 2 jako parametr mamy<br />
trzy równania z trzema niewiadomymi, po rozwiazaniu ˛ otrzymujemy<br />
Stad ˛ dostajemy<br />
α 1 = −2β 2 , α 2 =1+2β 2 , β 1 = β 2 +2.<br />
ρ(z) =−z 2 + −2β 2 z +1+2β 2 .<br />
Wiadomo, że z 1 =1powinno być pierwiastkiem równania ρ(z) =0,st˛ ad<br />
ρ(z) =−(z − 1)(z − z 2 ),<br />
skad ˛ wyliczamy z 2 = −(1 − 2β 2 ). Warunki stabilności wymagaja, ˛ aby<br />
−1 ≤ z 2 < 1, co implikuje − 1
20 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Dla β 2 =0dostajemy metodę o minimalnym module c 3 , |c 3 | = 1 , (tzw. metoda<br />
3<br />
dwukrokowa Nystroema) - wówczas z 2 = −1.<br />
Dla β 2 = − 1 2 dostajemy c 3 = − 5 12 i z 2 =0,jesttodwukrokowametodaAdamsa-<br />
Bashfortha.<br />
Decydujaca ˛ dla praktyki jest stabilność równania różnicowego metody dla skończonych<br />
wartości kroku całkowania h. Przyh 6= 0zachowanie sięci˛ agów generowanych<br />
przez metodęzależy jednakże równieżodcechrozwi˛ azywanego problemu, tzn. postaci<br />
funkcji f(x, y). Stabilność dla kroków niezerowych definiuje się dla asymptotycznie<br />
stabilnego zadania liniowego, dla układu nieliniowego odpowiada to rozważaniu jego<br />
przybliżenia liniowego .<br />
Rozważmy jednowymiarowe zadanie liniowe<br />
y 0 (x) = λ · y(x),<br />
y(0) = 1, x ∈ [0,b] ,bÀ 0, (6.33)<br />
gdzie λ ∈ C, zaśzzałożenia asymptotycznej stabilności wynika Re λ < 0, czyli<br />
rozwiazanie ˛ problemu zbiega do zera wraz ze zmianami x od zera 0 do b. Stosuj˛ ac do<br />
tego zadania metodę wielokrokowa ˛ uzyskujemy następujace ˛ rownanie różnicowe<br />
y n =<br />
kX<br />
kX<br />
α j y n−j + h · β j λy n−j ,<br />
j=1<br />
j=0<br />
które zapiszemy w postaci<br />
kX ¡ ¢<br />
αj + hλβ j yn−j =0, gdzie α 0 = −1. (6.34)<br />
j=0<br />
Metoda wielokrokowa z krokiem h>0 jest absolutnie stabilna dla problemu (6.33)<br />
jeśli ciag ˛ uzyskiwanych punktów rozwiazania ˛ numerycznego y 0 =1,y 1 ,y 2, ..., y n ,y n+1 , ...<br />
zbiega do zera przy n →∞,tzn. jeśli równanie różnicowe (6.34) jest asymtotycznie<br />
stabilne (opisuje asymptotycznie stabilny dyskretny system dynamiczny). Przypomnijmy,<br />
że równanie (6.34) jest asymptotycznie stabilne wtedy i tylko wtedy gdy wszystkie<br />
pierwiastki jego równania charakterystycznego<br />
leżawewn˛<br />
˛ atrz koła jednostkowego.<br />
eρ (z; hλ) =ρ (z)+hλσ (z) (6.35)<br />
Definicja. Zbiór wartości hλ dla którego pierwiastki wielomianu (6.35) sapołożone<br />
˛<br />
wewnatrz ˛ koła jednostkowego nazywamy obszarem absolutnej stabilności metody wielokrokowej<br />
zdefiniowanej wielomianami ρ (z) i σ (z) , metodę nazywamy absolutnie stabilna˛<br />
w tym obszarze.
P. Tatjewski WYBRANE METODY NUMERYCZNE 21<br />
Pierwiastki wielomianu eρ (z; hλ) mogaoczywiście ˛<br />
być zespolone,st˛ ad obszary<br />
absolutnej stabilności sapodzbioramipłaszczyzny ˛<br />
zmiennej zespolonej. Ponadto,<br />
ponieważ Re (hλ) < 0 (bo Re (λ) < 0 i h>0), to zbiory absolutnej stabilności leża˛<br />
wlewejpółpłaszczyźnie. Można łatwo pokazać, że jeśli wszystkie pierwiastki wielomianu<br />
ρ (z) , poza jednym pojedynczym równym jedności, majamoduły ˛ mniejszeod<br />
jedności , to dla dostatecznie małych wartości hλ metoda jest absolutnie stabilna<br />
(obszar absolutnej stabilności ma niepuste wnętrze).<br />
Charakter kształtu obszarów absolutnej stabilności dla metod Adamsa pokazano<br />
na rysunku 6.4. Odcinek [q,0] (zob. rysunek) nazywany jest odcinkiem absolutnej<br />
stabilności, wartości lewego krańca q tego odcinka (|q| jest jego długościa) ˛ podane sa˛<br />
wnastępnym podrozdziale w tabeli 8.<br />
Przedstawiona definicja absolutnej stabilnościprzenosisię natychmiast na przypadek<br />
wielowymiarowy<br />
y 0 (x) = Ay (x) , y ∈R m ,<br />
y (0) = 1, x ∈ [0,b] ,bÀ 0, (6.36)<br />
gdzie wszystkie wartości własne λ i macierzy A majaujemneczęści ˛<br />
rzeczywiste, Reλ i <<br />
0, ponieważ układ (6.36) ma mieć asymptotycznie stabilne rozwiazania. ˛ Dla absolutnej<br />
stabilności metody wielokrokowej z krokiem h zastosowanej do problemu (6.36)<br />
warunkiem koniecznym i dostatecznym jest aby dla każdej wartości własnej λ i , iloczyn<br />
hλ i należał do obszaru absolutnej stabilności metody.<br />
Rysunek 6.4: Kształt obszarów absolutnej stabilności metod Adamsa<br />
6.2.4 Metody predyktor-korektor<br />
Najpraktyczniejszametod˛<br />
˛ a wielokrokowabyłaby ˛ metoda o:
22 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
1. wysokim rzędzie i małej stałej błędu,<br />
2. możliwie dużym obszarze absolutnej stabilności,<br />
3. możliwie małej ilości obliczeń naiterację.<br />
Metody jawne gorzej spełniajawarunki1i2,natomiastmetodyniejawnespełniaj ˛<br />
a˛<br />
warunki1i2,aleniespełniaja˛<br />
warunku 3, gdyż wkażdej iteracji trzeba rozwiazywać<br />
˛<br />
względem y n równanie nieliniowe<br />
−y n +<br />
kX ¡ ¢<br />
α<br />
∗<br />
j y n−j + hβ ∗ jf n−j + hβ<br />
∗<br />
0 f (x n ,y n )=0. (6.37)<br />
j=1<br />
Praktyczne realizacje metod wielokrokowych to algorytmy typu predyktor - korektor<br />
(ang. predictor-corrector, P-K).<br />
Np. dla metody k-krokowej realizacja w postaci struktury predyktor-korektor<br />
P k EC k E (z jednym obliczeniem korektora w każdej iteracji metody) ma postać:<br />
P: y n<br />
[0] P<br />
= k P<br />
α i y n−j + h k β j f n−j<br />
j=1<br />
j=1<br />
³ ´<br />
E: f n<br />
[0] = f x n ,y n<br />
[0]<br />
P<br />
C: y n = k P<br />
α ∗ jy n−j + h k β ∗ jf n−j + hβ ∗ 0f n<br />
[0]<br />
j=1<br />
j=1<br />
(P - prediction)<br />
(E - evaluation)<br />
(C - correction)<br />
E: f n = f (x n ,y n ) (E - evaluation)<br />
Interpretacja: Iteracja predyktora to obliczenie dobrego punktu poczatkowego<br />
˛<br />
(tym lepszego im mniejszy krok h iwyższy rzad ˛ algorytmu predyktora) dla iteracji<br />
algorytmu korektora metoda˛<br />
iteracji prostej. W algorytmie P k EC k Eprzedstawionym<br />
powyżej wykonujemy tylko jednaiterację ˛ algorytmu korektora. Podkreślmy: metoda<br />
P-K to w istocie przybliżony sposób realizacji metody niejawnej (korektora), algorytm<br />
predyktora gra tu rolę pomocnicz˛ a.<br />
Dla metod Adamsa algorytm P k EC k Emapostać:<br />
P: y [0]<br />
n<br />
P<br />
= y n−1 + h k β j f n−j ,<br />
j=1<br />
E: f n [0] = f(x n ,y n [0] ),<br />
C:<br />
P<br />
y n = y n−1 + h k<br />
E: f n = f (x n ,y n ) .<br />
j=1<br />
β ∗ jf n−j + hβ ∗ 0f [0]<br />
n ,<br />
Długości odcinka absolutnej stabilności dla metod Adamsa jawnej, niejawnej i<br />
P k EC k E przedstawiono w tabeli 8.
P. Tatjewski WYBRANE METODY NUMERYCZNE 23<br />
Tabela 8. Lewy kraniec odcinka absolutnej stabilności metod Adamsa<br />
k AB (jawna) AM (niejawna) P k EC k E<br />
1 −2 −∞ −2<br />
2 −1 −6 −2.4<br />
3 −0.55 −3 −2<br />
4 −0.3 −1.83 −1.4<br />
5 −0.18 −1.18 −1.05<br />
6 −0.12 −0.78 −0.76<br />
Dokładniejsze wyniki otrzymamy prowadzac ˛ kilka iteracji algorytmu korektora.<br />
Dla m iteracji korektora w jednym kroku metody, tj w metodzie P k (EC k ) m E, mamy:<br />
P: y [0]<br />
n<br />
E 1 :<br />
f [s]<br />
n<br />
K: y [s+1]<br />
n<br />
P<br />
= k P<br />
α i y n−j + h k β j f n−j , s =0,<br />
j=1<br />
= f(x n ,y n [s] )<br />
P<br />
= k<br />
j=1<br />
j=1<br />
α ∗ jy n−j + h k P<br />
s = s +1,<br />
jeśli sr.<br />
Wniosek: Jesli rzad ˛ predyktora jest równy rzędowi korektora, to dla dostatecznie<br />
małych wartości kroku h, tzn. gdyczęść główna błędu jest dominujaca, ˛ uzyskanie
24 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
maksymalnego rzędu (tj. rzędu metody korektora) nastepuje już w algorytmie P-K z<br />
jednaiteracj˛<br />
˛ akorektora.<br />
6.2.5 Oszacowania błędu aproksymacji metod P-K<br />
Zgodnie z twierdzeniem o rzędzie metody P-K, jeśli tylko rzad ˛ predyktora p p jest nie<br />
niższy od rzędu korektora p, torz˛ ad metody P-K jest rzędem korektora p. Przyjmujac<br />
˛ za podstawę oszacowaniabłędu aproksymacji metody P-K część głównabłędu<br />
˛<br />
korektora,<br />
δ n (h) =c ∗ p+1 hp+1 y (p+1) (x n ) , (6.39)<br />
trzeba oszacować pochodn˛ a y (p+1) (x n ) , np.<br />
wsteczna:<br />
˛<br />
czyli oszacowanie błędu<br />
y (p+1) (x n ) ∼ = 5(p+1) y (x n )<br />
, skad<br />
˛<br />
h p+1<br />
h p+1 y (p+1) (x n ) ∼ = 5 (p+1) y (x n ) ∼ = 5 (p+1) y n ,<br />
przybliżajac ˛ ja˛<br />
odpowiedniaróżnic ˛ a˛<br />
|δ n (h) | ∼ = |c ∗ p+1 5p+1 y n |, (6.40)<br />
gdzie c ∗ p+1 to stała błędu korektora. Oszacowanie (6.40) można obliczać wyliczajac<br />
˛<br />
wartość róznicy wstecznej 5 p+1 y n w oparciu o punkty y n ,y n−1 , ..., y n−p−1 . Instnieje<br />
jednak efektywniejszy sposób szacowania błędu aproksymacji w przypadku równych<br />
rzędów predyktora i korektora.<br />
Rozważmy metodeP-Kzrównymrz˛<br />
˛<br />
edem p predyktora i korektora. Zgodnie z<br />
twierdzeniem o rzędzie metody P-K rzad ˛ ten jest też równyp. Oznaczaj˛ ac przez y n<br />
[0]<br />
wynik działania predyktora a przez y n wynik po korekcji algorytmem korektora ( y n<br />
oznacza w ogólności rezultat m iteracji korektora, y n = y n<br />
[m] ,m=1lub m>1)<br />
możemy napisać<br />
y n [0] n) = c p+1 y (p+1) (x n )h p+1 + O(h p+2 ),<br />
y n − y(x n ) = c ∗ p+1 y(p+1) (x n )h p+1 + O(h p+2 ),<br />
Zaniedbujac ˛ człony O(h p+2 ) możemy z powyższych równań wyeliminować pochodna˛<br />
y (p+1) (x n ). Stad<br />
˛<br />
y n − y(x n )= c∗ p+1<br />
(y n [0] − y(x n )).<br />
c p+1<br />
Dodajac ˛ do obu stron − c∗ p+1<br />
c p+1<br />
(y n − y(x n )) uzyskujemy<br />
czyli<br />
c p+1 − c ∗ p+1<br />
c p+1<br />
(y n − y(x n )) = c∗ p+1<br />
c p+1<br />
(y [0]<br />
n − y n )<br />
c ∗ p+1<br />
y n − y(x n )=<br />
(y<br />
c p+1 − c ∗ n [0] − y n ). (6.41)<br />
p+1
P. Tatjewski WYBRANE METODY NUMERYCZNE 25<br />
Stad ˛ estymatę bleduδ n (h n−1 ) można bardzo łatwo wyliczyć wykorzystyj˛ ac jedynie<br />
wartości y n [0] i y n ,<br />
c ∗ p+1<br />
δ n (h n−1 )=<br />
(y<br />
c p+1 − c ∗ n [0] − y n). (6.42)<br />
p+1<br />
Na przykład, dla metody P-K Adamsa P 4 EC 3 E z 4-ro etapowym predyktorem<br />
Adamsa-Bashfortha i 3-etapowym korektorem Adamsa-Moultona uzyskujemy (zob.<br />
stałe błęduwtablicach6i7,obiemetodys˛ arzędu 4)<br />
y n − y(x n )=− 19<br />
270 (y[0] n − y n ).<br />
Dla metod P k EC k E Adamsa, gdzie rzad ˛ predyktora jest niższy o jeden od rzędu<br />
korektora, mamy dwie możliwości postępowania:<br />
1. Zamiast metody P k EC k E stosujemy metodę P k (EC k ) 2 E, tzn. wykonujemy dwie<br />
iteracje korektora w każdym kroku (m =2, zob. twierdzenie o rzędzie metody<br />
P-K). Pozwala nam to na zachowanie rzędu metody P-K równego rzędowi k-<br />
krokowego korektora - ale nie możemy stosować efektywnego sposobu szacowania<br />
błęduopartegonazależności (6.42). Pozostaje mniej efektywny sposób<br />
oparty na wykorzystaniu ogólnej zależnosci (6.40), lub:<br />
2. Wykonujemy wstępny krok i szacujemy bład ˛ tak jak w metodzie P k EC k-1 E,<br />
tj. dla k-1 krokowego korektora - rzędy predyktora i korektora sawówczas<br />
˛<br />
równe. Natomiast już po oszacowaniu i akceptacji błędu krok finalny korektora<br />
możemy wykonać metod˛ ak-krokow˛ ajakodokładniejszaodk-1krokowej,co<br />
˛<br />
powinno nam tylko poprawić wiarygodność oszacowania błędu (krok metoda˛<br />
Adamsa-Moultona rzędu k+1 powinien być dokł adniejszy niż metod˛ arzędu k).<br />
Ten sposób postępowania będzie jednak efektywny, jeśli przejście od wartości<br />
obliczonych k-1 krokowym korektorem do wartości wyznaczanych korektorem<br />
k-krokowym będzie proste, wymagajace ˛ niewielu obliczeń. Jest to możliwe jesli<br />
będziemy implementować metodyAdamsawtzw.wersji różnicowej.<br />
6.2.6 Metody Adamsa w wersji różnicowej<br />
Stosujac ˛ zamiast wzoru interpolacyjnego Lagrange’a (zob. rozdz. 6.2.1) wzór interpolacyjny<br />
w postaci Newtona (wstecz) dostajemy równoważnapostaćwzorunametody<br />
˛<br />
Adamsa-Bashfortha wykorzystujac ˛ aróżnice ˛ wsteczne<br />
Xk−1<br />
y n = y n−1 + h · γ j ·5 j f n−1 ,<br />
gdzie f n−1 = f (x n−1 ,y n−1 ), f n−2 = f (x n−2 ,y n−2 ) , ... ,a różnice wsteczne liczone s ˛ a<br />
w oparciu o punkty f n−1 ,f n−2 , ... , f n−k .<br />
j=0
26 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Podobnie uzyskuje się postaćrównoważna˛<br />
wzoru iteracyjnego dla metod Adamsa-<br />
Moultona wykorzystujac ˛ aróżnice ˛ wsteczne: .<br />
kX<br />
y n = y n−1 + h · γ ∗ j ·5 j f n ,<br />
j=0<br />
gdzie różnice wsteczne liczone sa˛<br />
w oparciu o punkty f n = f n (x n ,y n ),f n−1 ,f n−2 , ... , f n−k .<br />
Wartości parametrów γ j i γ ∗ j dla algorytmów metod Adamsa w postaci wzorów<br />
iteracyjnych z różnicami wstecznymi podane sa˛<br />
w tabeli 9. Należy zwrócić uwagę, że<br />
wartości współczynników γ j i γ ∗ j s a ˛ dla tych samych wartości j te same dla algorytmów<br />
różnego rzędu.<br />
Tabela 9. Parametry metod Adamsa w wersji różnicowej<br />
j 0 1 2 3 4 5 6 7<br />
γ j 1<br />
1<br />
2<br />
5<br />
12<br />
3<br />
8<br />
251<br />
720<br />
95<br />
288<br />
19087<br />
60480<br />
36799<br />
120960<br />
γ ∗ j 1 − 1 2<br />
− 1 12<br />
− 1<br />
24<br />
− 19<br />
720<br />
− 3<br />
160<br />
− 863<br />
60480<br />
− 1375<br />
120960<br />
Dla metod Adamsa stałe błędu zwiazane ˛ sa˛<br />
jednoznacznie nie tylko ze współczynnikami<br />
α j i β j ,aleoczywiście też zewspółczynnikami γ j ,mamy:<br />
Twierdzenie [6].<br />
Dla każdego k =1, 2, ... k-krokowa metoda Adamsa-Bashfortha jest rzędu p = k<br />
iostałej błędu c k+1 = −γ k ,zaś k-krokowa metoda Adamsa-Moultona jest rzędu<br />
p = k +1iostałej błędu c ∗ k+2 = −γ∗ k+1 .<br />
Nawiazuj ˛ ac ˛ do określenia metod jawnych i niejawnych Adamsa w postaci różnicowej<br />
można algorytm predyktor-korektor Adamsa P k EC k−1 Ezapisaćwnastępujacej<br />
˛<br />
równoważnej postaci różnicowej:<br />
P: y [0]<br />
n<br />
= y n−1 + h k−1 P<br />
j=0<br />
j=0<br />
γ j 5 j f n−1 ,<br />
E: f n [0] = f(x n ,y n [0] ),<br />
C: y n = y n−1 + h k−1 P<br />
γ ∗ j∇ j f n [0] ,<br />
E: f n = f (x n ,y n ) ,<br />
gdzie 5 j f n−1 , j =0, 1,...,k − 1 saróżnicami ˛ wstecznymi określonymi na podstawie<br />
wartości f n−1 , ..., f n−k ,natomiast∇ j f n [0] , j =0, 1, ..., k − 1 saróżnicami ˛ wstecznymi<br />
określonymi na podstawie wartości f n [0] ,f n−1 , ..., f n−k+1 .Ponieważ w przypadku tym<br />
predyktor i korektor sa˛<br />
tego samego rzędu, to do szacowania błędu aproksymacji
P. Tatjewski WYBRANE METODY NUMERYCZNE 27<br />
można zastosować wzór (6.42), który w języku parametrów wersji różnicowych przyjmuje<br />
postać<br />
δ n (h n−1 )=<br />
γ∗ k<br />
(y<br />
γ k − γ ∗ n [0] − y n ). (6.43)<br />
k<br />
Podanawyżej ˛ podstawowapostaćróżnicow ˛<br />
a˛<br />
metody P-K Adamsa P k EC k−1 Emożna<br />
przekształcić do prostszej postaci równoważnej. Mianowicie, uwzględniajac ˛ zależność<br />
γ ∗ j = γ j − γ j−1 ,<br />
zob. tabela 9 czy też dowódw[6],możemy napisać<br />
Xk−1<br />
y n = y n−1 + h γ ∗ j ·5 j f n<br />
[0]<br />
j=0<br />
= y n−1 + hγ 0 f [0]<br />
n<br />
= y n−1 + hγ 0 f [0]<br />
n<br />
Xk−1<br />
+ h (γ j − γ j−1 )∇ j f n<br />
[0]<br />
j=1<br />
Xk−1<br />
+ h<br />
j=1<br />
γ j ∇ j f [0]<br />
n<br />
Xk−1<br />
− h<br />
j=1<br />
Odpowiednio zmieniajac ˛ granice sumowania mamy dalej<br />
y n = y n−1 + hγ 0 f [0]<br />
n<br />
k−1<br />
+ h X<br />
j=1<br />
= y n−1 + hγ k−1 ∇ k−1 f [0]<br />
n<br />
γ j ∇ j f [0]<br />
n<br />
k−2<br />
− h X<br />
γ j−1 (∇ j−1 f [0]<br />
n −∇ j−1 f n−1 )<br />
j=0<br />
γ j (∇ j f [0]<br />
n −∇j f n−1 )<br />
k−1<br />
+ h X<br />
γ j ∇ j f n−1 − hγ k−1 ∇ k−1 f n−1<br />
j=0<br />
= y [0]<br />
n + hγ k−1 (∇ k−1 f [0]<br />
n −∇ k−1 f n−1 )<br />
i finalnie<br />
y n = y n [0] + hγ k−1 ∇ k f n [0] , (6.44)<br />
czyli różnicowa postać równoważna algorytmu P k EC k−1 E:<br />
P: y [0]<br />
n<br />
= y n−1 + h k−1 P<br />
j=0<br />
γ j 5 j f n−1 ,<br />
E: f n [0] = f(x n ,y n [0] ),<br />
C: y n = y n [0] + hγ k−1 ∇ k f n [0] ,<br />
E: f n = f (x n ,y n ) ,<br />
oraz wzór na szacowanie błędu aproksymacji (6.43) można przekształcić dopostaci<br />
δ n (h n−1 ) =<br />
−γ ∗ k<br />
γ k − γ ∗ k<br />
hγ k−1 ∇ k f [0]<br />
n<br />
= γ k − γ k−1<br />
hγ<br />
−γ k−1 ∇ k f n<br />
[0]<br />
k−1<br />
= −h(γ k − γ k−1 )∇ k f [0]<br />
n ,
28 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
czyli ostatecznie<br />
δ n (h n−1 )=−hγ ∗ k ∇k f n [0] , (6.45)<br />
gdzie ∇ k f n<br />
[0] jest różnica˛<br />
wstecznaokreślon ˛ anapodstawiewartości ˛<br />
f n [0] ,f n−1 , ..., f n−k .<br />
Zwróćmy uwagę, że różnicę tęmożna obliczyć bezpośredniopoobliczeniuwartości<br />
predyktora - nie dokonuj ac ˛ iteracji korektora jeśli uzyskana dokładnośćjestzbytmała.<br />
Jednak oszczędność tajestwistocieniewielka,gdyżmaj˛ ac obliczone y n [0] oraz ∇ k f n<br />
[0]<br />
wykonanie iteracji korektora wg wzoru (6.44) jest proste. Natomiast wzór (6.45)<br />
pozwala na dalsze jego przekształcenie do interesujacej ˛ postaci. Mianowicie, wypisujac<br />
˛ postać różnicowaakgorytmuP-KAdamsaP ˛<br />
k EC k Emamy:<br />
P: y [0]<br />
n<br />
= y n−1 + h k−1 P<br />
j=0<br />
E: f n [0] = f(x n ,y n [0] ),<br />
C:<br />
P<br />
y n = y n−1 + h k<br />
E: f n = f (x n ,y n ) ,<br />
Stad ˛ oznaczajac<br />
˛<br />
j=0<br />
γ j 5 j f n−1 ,<br />
γ ∗ j∇ j f [0]<br />
n ,<br />
• y (+1)<br />
n<br />
- rezultat kroku algorytmem P k EC k EAdamsa,<br />
• y n - rezultat kroku algorytmem P k EC k-1 EAdamsa,<br />
mamy:<br />
y n (+1) − y n = hγ ∗ k ∇k f n [0] , (6.46)<br />
tzn. wzór (6.45) można przedstawić wpostaci<br />
δ n (h n−1 )=y n − y (+1)<br />
n . (6.47)<br />
Stosowanie oszacowania błędu słusznego dla algorytmu P k EC k-1 E do algorytmu<br />
P k EC k E, tj. dokł adniejszego, jedynie zwiększa wiarygodność oszacowania błędu.<br />
Stad ˛ stosujac ˛ algorytm P k EC k E z oszacowaniem błędu dla P k EC k-1 Emożemy bardzo<br />
efektywnie (bez dodatkowego nakładu obliczeń) wyznaczać to oszacowanie z wzoru<br />
(6.47), gdyż przystosowaniuwersjiróżnicowych liczac ˛ wartości rozwiazania ˛ korektorem<br />
k-krokowym niejako ”po drodze” liczymy wartości korektorem (k-1)-krokowym.<br />
6.2.7 Zmienny krok i rzad ˛ całkowania<br />
Konstruujac ˛ algorytm wielokrokowy ze zmiennadługości ˛ akroku,proponowan˛<br />
˛<br />
adługość<br />
nowego kroku wyznaczamy identycznie jak w metodach jednokrokowych RK<br />
(zob.rozdz.5.1.1):<br />
h n = s · α · h n−1 , (6.48)
P. Tatjewski WYBRANE METODY NUMERYCZNE 29<br />
gdzie<br />
∙<br />
α =<br />
ε<br />
|δ n (h n−1 )|<br />
¸ 1<br />
p+1<br />
, (6.49)<br />
|δ n (h n−1 ) | - oszacowanie części głównej błędu aproksymacji (w iteracji z punktu<br />
x n−1 z krokiem h n−1 ),<br />
s -współczynnik bezpieczeństwa,<br />
ε -dokładność,<br />
ε = |y n |·ε w + ε b . (6.50)<br />
W metodach wielokrokowych opartych na równoodległych punktach (a takie omawiamy),<br />
tzn. x n−j = x n − jh, trudniej jest dokonywać zmianydł ugości kroku niż w<br />
metodach jednokrokowych. Dla wykonania kroku z nowadługości ˛ a˛<br />
h n = sαh n−1<br />
trzeba znać bowiemwartości y i f (x, y) w punktach x = x n − j (sαh n−1 ), j =1, ..., k.<br />
• Zwiekszanie ˛ kroku (sα > 1): jeśli sα jest całkowite, to trzeba wykorzystać k<br />
wartości y n−j i f n−j odległychodsiebieosαh n−1 anieoh n−1 -tj. trzeba<br />
odczytać tewartości spośród znacznie wcześniej obliczonych. Jeśli sα nie jest<br />
całkowite, to potrzebne poprzednie wartości w ogólności nie były wyznaczone<br />
- trzeba je wyznaczyć dokonuj˛ ac interpolacji funkcji rozwiazania ˛ na przedziale<br />
obejmujacym ˛ potrzebne punkty i następnie obliczajac ˛ wartości funkcji f odpowiadajace<br />
˛ tym punktom. Prostaisensown˛<br />
˛ a, choć nieco konserwatywn areguł ˛ aktóra ˛<br />
unika interpolacji jest zasada zdwajania kroku:<br />
jeśli sα ≥ 2 to h n =2h n−1 , (6.51)<br />
jeśli 1 ≤ sα < 2 to h n = h n−1 . (6.52)<br />
• Zmniejszanie długości kroku (sα < 1): wartości y n−j i f n−j = f(x n−j ,y n−j )<br />
potrzebne do wykonania iteracji ze zmniejszonym krokiem trzeba wyznaczyć w<br />
drodze interpolacji rozwiazania ˛ y wpamiętanych punktach, i następnie obliczajac<br />
˛ wartości funkcji f. Dla metod Adamsa potrzebne sa˛<br />
jedynie poprzednie<br />
wartościfunkcjiprawychstronf(x n−j ,y n−j ), stad ˛ efektywniej jest interpolować<br />
od razu te wartości. Mozna tu zastosować wielomian interpolacyjny Newtona<br />
na interpolację wsteczdlarownoodległych argumentów, dla interpolacji opartej<br />
na l węzł ach x n−1 ,x n−2 , ..., x n−l wzór ten ma postać<br />
W l−1 (x) =f n−1 + 5f n−1<br />
h<br />
(x − x n−1 )+ 52 f n−1<br />
2h 2 (x − x n−1 )(x − x n−2 )+···<br />
···+ 5l−1 f n−1<br />
(l − 1)!h l−1 (x − x n−1) ···(x − x n−l+1 ) ,
30 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
gdzie h = h n−1 jest aktualnym krokiem całkowania, a różnice wsteczne 5 i f n−1 ,<br />
i =1, ..., l − 1 liczone sanawartościach ˛<br />
f n−1 ,f n−2 , ..., f n−l ,<br />
5f n−1 = f n−1 − f n−2 ,<br />
5 2 f n−1 = 5f n−1 − 5f n−2 ,<br />
5 3 f n−1 = 5 2 f n−1 − 5 2 f n−2 ,<br />
itd.<br />
Przy 1 całkowitym pewne z poprzednio pamiętanych punktów mog abyćwykorzystane,<br />
pozostałe (pośrednie) trzeba wyliczyć z interpolacji. Zamiast in-<br />
sα<br />
˛<br />
terpolacji można zastosować algorytm metody RK. Najprostszaidość ˛ sensowna,<br />
˛ ale nieco konserwatywn ametod˛ ˛ apostepowaniajeststrategia poł owienia<br />
kroku, tj. zmniejszania kroku 1 razy, gdzie r jest najmniejsza 2<br />
˛ liczba˛<br />
naturalna˛<br />
r<br />
taka, ˛ że 1 ≤ sα. Dla zmniejszenia kroku 2 razy należy obliczyć nowepunkty<br />
2 r<br />
położone pośrodku między istniejacymi, ˛ można łatwo wyznaczyć wzorynate<br />
punkty. Np. interpolujac ˛ wielomianem 4 stopnia opartym na 5 węzłach interpolacji<br />
x n−1 ,x n−2 , ..., x n−5 potrzeba wyinterpolować dwiewartości w punktach<br />
x n−1−1/2 ,x n−2−1/2 , odpowiednie wzory sajaknastępuje<br />
˛<br />
f n−1−1/2 = −5f n−5 +28f n−4 − 70f n−3 + 140f n−2 +35f n−1<br />
128<br />
f n−2−1/2 = 3f n−5 − 20f n−4 +90f n−3 +60f n−2 − 5f n−1<br />
128<br />
Ponieważ korektadługości kroku kosztuje, to należy decydować sięnani˛ a z rezerwa,<br />
˛ wprowadzaj ac ˛ zabezpieczenia. Np. blokujace ˛ możliwośćzwiększania kroku jeśli<br />
bezpośrednio przedtem nastapiło ˛ jego zmniejszenie, itp., aby uniknać ˛ oscylacyjnych<br />
zmian długości kroku. Schemat blokowy przykł adowej realizacji metody P-K ze<br />
zdwajaniem/połowieniem kroku przedstawiono na rys. 5.5.<br />
Obok, a w pewnych zastosowaniach nawet zamiast zmiany długości kroku stosuje<br />
się zmiany rzędu metody wielokrokowej P-K dla sterowania dokładnościa˛<br />
obliczeń.<br />
Zmiany rzedu ˛ sa˛<br />
szczególnie wygodne przy stosowaniu metody P-K Adamsa w postaci<br />
różnicowej. Zwiększanie rzędu powinno prowadzić dozmniejszania błędu, a więc<br />
zwiększania dokładności obliczeń. Należy jednak zaznaczyć, że przynajmniej teoretycznie<br />
zwiększenie rzędu nie zawsze musi spowodować zmniejszenieoszacowania<br />
błędu. W ogólnym wzorze na oszacowanie błędu występuje iloczyn stałej błędu i<br />
różnicy wstecznej, c ∗ p+1 ·5 p+1 y n , gdzie różnica wsteczna jest oszacowaniem iloczynu<br />
h p+1 · y (p+1) (x n ). Teoretycznie istnieja˛<br />
funkcje, np. exp(βx), β > 1, dla których<br />
wartość pochodnej wzrasta wraz z jej rzędem. Jeśli ten wzrost jest szybszy niż malenie,<br />
wraz ze wzrostem rzędu p, czynnika c ∗ p+1h p+1 , to możliwa jest sytuacja wzrostu<br />
błędu wraz ze wzrostem p (a więc i malenia błędu z maleniem p, symetrycznie).
P. Tatjewski WYBRANE METODY NUMERYCZNE 31<br />
Punkt startowy: x 0 = a, (x ε [a, b])<br />
Parametry dokładności: ε w , ε b<br />
Krok początkowy: h = h 0<br />
W punktach x 0 , x 0 +h, ..., x 0 +(k-1)h wyznacz<br />
rozwiązanie procedurą startową, n := k<br />
wzrosth := .TRUE.<br />
Startując z punktu x n-1 z krokiem h n<br />
wyznacz metodą predyktor-korektor:<br />
- rozwiązanie y n ,<br />
- oszacowanie błędu δ n (h n ).<br />
Wylicz współczynnik korekty długości kroku α,<br />
a następnie proponowaną korektę długości kroku:<br />
h * n+1 = sαh n , (s = wsp. bezpieczeństwa)<br />
T<br />
sα < 1<br />
N<br />
wzrosth := .FALSE.<br />
N<br />
x n +h n =b<br />
T<br />
N<br />
h * n+1
32 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
Metody ze stałym krokiem stosuje się w programach symulacyjnych, dla przykładu<br />
program SIMULINK w wersji 2 wykorzystuje właśnie metody ze stałym krokiem i zmiennym<br />
rzędem.Efektywne, profesjonalne implementacje metod Adamsa wykorzystuja˛<br />
dość złożone algorytmicznie wersje z nierównoodległymi punktami, z bieżacymi ˛ zmianami<br />
zarówno długości kroku jak i rzędu metody. Metody te sa˛<br />
samostartujace,<br />
˛<br />
zmiana długości kroku i rzędu jest w nich z kroku na krok łatwa. Satojednez<br />
˛<br />
najlepszych aktualnie znanych algorytmów.<br />
6.3 RÓWNANIA ŹLE UWARUNKOWANE<br />
Rozważmy przykład:<br />
y 0 (x)= Ay(x),<br />
∙ ¸ ∙ ¸<br />
−667 333<br />
0<br />
A =<br />
y 0 = x ∈ [0, 10] .<br />
666 −334<br />
3<br />
Jak łatwo wyliczyć<br />
Sp (A) ={λ 1 ,λ 2 } = {−1, −1000} ,<br />
zaś rozwi˛ azanie:<br />
y 1 (x) = e −x − e −1000x ,<br />
y 2 (x) = 2e −x + e −1000x .<br />
Rozwiazanie ˛ jest szybko zmienne w krótkiej poczatkowej ˛ fazie (dominuje e −1000x ),<br />
anastępnie bardzo wolno zmienne. Efektywna procedura powinna całkować pierwszy<br />
odcinek z krokiem 1000 razy mniejszym (stosunek wartości własnych). Np. dla<br />
metody P 3 EC 3 E z warunku absolutnej stabilności mamy (odcinek absolutnej stabilności<br />
wynosi [−2, 0]):<br />
|λ 1 h| < 2 ⇒ h< 2<br />
|λ 1 | =2,<br />
|λ 2 h| < 2 ⇒ h< 2<br />
|λ 2 | =2· 10−3 .<br />
Procedura całkuje najpierw z krokiem mniejszym od 2 · 10 −3 , którego nie można<br />
zwiększyć, gdyż wychodzi się poza obszar absolutnej stabilności - mimo że należałoby<br />
całkować dalej z krokiem 1000 razy większym. Algorytm usiłuje zwiększać krok (tak<br />
mu podpowiada szacowanie błędów), ale stajac ˛ się niestabilnym generuje zwiazan ˛ az ˛<br />
tym lawinę błędów - i musi skracać krokaż wejdzie w obszar absolutnej stabilności.<br />
Dla liniowego układu równań y 0 = Ay mówimy, że jest on żle uwarunkowany<br />
(”sztywny”, ang.stiff), jeśli iloraz modułów wartości własnych macierzy A, największegodonajmniejszego,jestduży<br />
(znacznie większy od jedności). W przypadku<br />
nieliniowego układu równań bierzemypoduwagę macierz jego przybliżenia liniowego<br />
(macierz jakobianowa)..<br />
˛
P. Tatjewski WYBRANE METODY NUMERYCZNE 33<br />
Dla układów źle uwarunkowanych należy stosować metody numeryczne o bardzo<br />
dużych, nieskończonych obszarach stabilności absolutnej. Nie sa˛<br />
takimi omawiane<br />
wcześniej metody predyktor-korektor Adamsa czy metody Runge-Kutty (obszary absolutnej<br />
stabilności metod R-K sategosamegorzędu ˛<br />
co metod Adamsa, zob. np.<br />
[6]).<br />
Przykład.<br />
Dla metody Eulera (metoda jawna) mamy:<br />
y n = y n−1 + h · f (x n−1 ,y n−1 ) ,<br />
dla równania<br />
y 0 = λy, (λ
34 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
6.3.1 Metody BDF (wstecznego różniczkowania)<br />
Metody BDF (Backward Differentiation Formulas, zob. [6]) jawne:<br />
y n =<br />
kX<br />
α j y n−j + h · β 1 f (x n−1 ,y n−1 ) (6.53)<br />
j=1<br />
Metody BDF niejawne:<br />
y n =<br />
kX<br />
α ∗ j y n−j + h · β ∗ 0f (x n ,y n ) (6.54)<br />
j=1<br />
Parametry metod BDF podano w tabelach 9 i 10.Ponieważ nieskończony obszar absolutnej<br />
stabilności posiadaja˛<br />
jedynie metody niejawne, to stosuje się jedynie strukturę<br />
predyktor - korektor. Wykonujemy przy tym nie jednaiterację ˛ korektora, ale tyle<br />
ile potrzeba aż do uzyskania zbieżności wg określonego kryterium stopu (rozwiazy-<br />
wanie równania nieliniowego metodaiteracjiprostej,możliwe ˛<br />
i polecane jest też zas-<br />
˛<br />
tosowanie efektywniejszego algorytmu Newtona).<br />
Kształt obszarów absolutnej stabilności dla metod BDF niejawnych pokazano na<br />
rysunku 6.6. Znane sa również metody niejawne typu Runge-Kutty, o nieskończonych<br />
obszarach absolutnej stabilnosci.<br />
Tabela 9. Parametry metod jawnych BDF<br />
c p+1 p k β 1 α 1 α 2 α 3 α 4 α 5<br />
− 1 2<br />
1 1 1 1<br />
− 1 3<br />
2 2 2 0 1<br />
− 1 4<br />
3 3 3 − 3 2<br />
3 − 1 2<br />
− 1 4 4 4 − 10<br />
1<br />
6 −2<br />
5 3 3<br />
− 1 6<br />
5 5 5 − 65<br />
12<br />
10 −5<br />
5<br />
3<br />
− 1 4<br />
− 1 7<br />
6 6 6 − 77<br />
10<br />
15 −10 5 − 3 2<br />
1<br />
5
P. Tatjewski WYBRANE METODY NUMERYCZNE 35<br />
Tabela 10. Parametry metod niejawnych BDF<br />
c p+1 p k β ∗ 0 α ∗ 1 α ∗ 2 α ∗ 3 α ∗ 4 α ∗ 5 α ∗ 6<br />
1<br />
1 1 1 1<br />
2<br />
2<br />
2<br />
2 2<br />
9 3<br />
4<br />
3<br />
− 1 3<br />
3<br />
22<br />
3 3<br />
6<br />
11<br />
18<br />
11<br />
− 9<br />
11<br />
2<br />
11<br />
12<br />
12<br />
4 4<br />
125 25<br />
48<br />
− 36<br />
25 25<br />
16<br />
25<br />
− 3 25<br />
10<br />
60<br />
5 5<br />
137 137<br />
300<br />
− 300<br />
137 137<br />
200<br />
137<br />
− 75<br />
137<br />
12<br />
137<br />
20<br />
60<br />
6 6<br />
343 147<br />
360<br />
− 450<br />
147 147<br />
400<br />
− 225<br />
147 147<br />
72<br />
147<br />
− 10<br />
147<br />
Rysunek 6.6: Kształt obszarów absolutnej stabilności metod BDF niejawnych<br />
Zadania.<br />
1. Zbadaj zbieżność orazokreśl rzad ˛ i stałabłędu ˛ metody<br />
y n = 9y n−1 − y n−3<br />
8<br />
gdzie f i = f (x i ,y i ).<br />
+3h f n +2f n−1 − f n−2<br />
,<br />
8
36 ROZDZIAŁ 6. RÓWNANIA RÓŻNICZKOWE ZWYCZAJNE<br />
2. Dany jest wielomian ρ(z) =−z 2 +1. Dobierz tak wielomian σ(z), abyuzyskać<br />
metodę jawn˛ adwukrokow˛ a stabilnamaksymalnegorzędu.<br />
˛<br />
3. Co można powiedzieć o absolutnej stabilności metod jawnych dwukrokowych<br />
maksymalnego rzędu ? (por. przykład w rozdz. 5.2.3.)<br />
4. Zbadaj stabilność metod jawnych BDF jedno-, dwu-, i trzykrokowej.<br />
5. Zbadaj, dla jakiego zakresu wartości kroku h stabilne będziezastosowaniemetody<br />
dwukrokowej jawnej Adamsa do zadania<br />
y 0 = −5y.
Bibliografia<br />
[1] B. Baron: Metody numeryczne w Turbo Pascalu. Wyd. Helion, Gliwice 1995.<br />
[2] M. Dryja, J.M Jankowscy: Przeglad ˛ metod i algorytmów numerycznych, cz. II.<br />
WNT, Warszawa 1988.<br />
[3] Z. Fortuna, B. Macukow, J. Wasowski: ˛ Metody numeryczne. WNT, Warszawa<br />
1993.<br />
[4] J.M Jankowscy: Przeglad ˛ metod i algorytmów numerycznych, cz. I. WNT,<br />
Warszawa 1988.<br />
[5] J. Krupka, R.Z. Morawski, L.J. Opalski: Metody numeryczne. Oficyna Wyd. PW,<br />
Warszawa 1997.<br />
[6] A. Krupowicz: Metody numeryczne zagadnień poczatkowych<br />
˛<br />
różniczkowych zwyczajnych. PWN, Warszawa 1986.<br />
równań<br />
[7] W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery: Numerical Recipes<br />
in C. Cambridge Univ. Press, Cambridge 1992 (second ed.).<br />
[8] J.Stoer,R.Bulirsch:Wstęp do analizy numerycznej. PWN, Warszawa 1987.<br />
[9] A. Zalewski, R. Cegieła: MATLAB - obliczenia numeryczne i ich zastosowania.<br />
Wyd. Nakom, Poznań 1996.<br />
37