10.03.2015 Views

Równania różniczkowe zwyczajne

Równania różniczkowe zwyczajne

Równania różniczkowe zwyczajne

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!