10.03.2015 Views

Równania różniczkowe zwyczajne

Równania różniczkowe zwyczajne

Równania różniczkowe zwyczajne

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!