Documente Academic
Documente Profesional
Documente Cultură
Radu T. Trı̂mbiţaş
ii
Cuprins
3 Metode Runge-Kutta 33
3.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Criterii de eroare . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 O formulă de ordinul al treilea . . . . . . . . . . . . . . . . . . 36
3.4 Formule de ordinul al patrulea . . . . . . . . . . . . . . . . . . 39
3.5 Formule de ordinul al cincilea şi mai mare . . . . . . . . . . . . 44
3.6 Motivaţia pentru formule de ordin ı̂nalt . . . . . . . . . . . . . . 45
3.7 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.8 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
iii
iv CUPRINS
4 Controlul pasului 55
4.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2 Predicţia lungimii pasului . . . . . . . . . . . . . . . . . . . . . 56
4.3 Estimarea erorii . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4 Extrapolare locală . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.5 Estimarea erorii ı̂n metodele Runge-Kutta . . . . . . . . . . . . 64
4.6 Alte perechi Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 66
4.7 Aplicaţii ale includerii RK . . . . . . . . . . . . . . . . . . . . 69
4.8 Exemple de implementare . . . . . . . . . . . . . . . . . . . . 75
4.9 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5 Ieşiri dense 83
5.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2 Construcţia extensiilor continue . . . . . . . . . . . . . . . . . 84
5.3 Alegerea parametrilor liberi . . . . . . . . . . . . . . . . . . . . 88
5.4 Formule de ordin ı̂nalt . . . . . . . . . . . . . . . . . . . . . . 92
5.5 Aspecte de implementare . . . . . . . . . . . . . . . . . . . . . 95
5.6 Interpolare inversă . . . . . . . . . . . . . . . . . . . . . . . . 97
5.7 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Bibliografie 153
Indice 154
vi CUPRINS
Capitolul 1
1.1 Introducere
Primele tipuri de ecuaţii diferenţiale ordinare pe care le vom considera sunt
clasificate ca procese cu un singur pas. Cele mai cunoscute metode cu un pas
sunt cele bazate pe serii Taylor şi formulele Runge-Kutta. În acest capitol vor fi
introduse ambele tipuri de metode, ı̂mpreună cu concepte de aplicabilitate mai
largă. Ideea de calcul pas cu pas şi cea de reducere a ordinului este fundamentală
pentru analiza numerică a ecuaţiilor diferenţiale. Importanţa dezvoltării ı̂n serii
Taylor merge dincolo de aplicarea ei directă la metode numerice şi va deveni din
ce ı̂n ce mai clară, pe măsură ce subiectul va fi dezvoltat.
y = 2ex − x − 1.
1
2 Primele idei şi metode cu un pas
De notat că valori iniţiale diferite conduc la soluţii y(x) diferite. Astfel, aceeaşi
ecuţie diferenţială ca mai sus, dar cu condiţia y(0) = 0, are soluţia y = ex −x−1.
O soluţie numerică a unui sistem de ecuţii de ecuţii diferenţiale ordinare
de tip (1.1) constă dintr-o mulţime de valori {yn }, corespunzând unei mulţimi
discrete de valori ale lui x,
xn , n = 0, 1, 2, . . . , N.
Aceste valori y se obţin de obicei ı̂ntr-o manieră pas cu pas, adică y1 este urmat
de y2 , apoi de y3 ş.a.m.d. Evident, se intenţionează ca aceste valori să fie cât mai
apropiate de soluţia adevărată, adică
yn ' y(xn ),
cu xn+1 = xn + hn , n = 0, 1, 2, . . . , N − 1; x0 = a, xN = b, iar hn se
numeşte lungimea pasului. În practică, lungimea pasului este variabilă, dar,
pentru simplitate, vom considera de multe ori că este constantă.
y 0 = −2xy 2 . (1.2)
h2 00 hp
y(x + h) = y(x) + hy 0 (x) + y (x) + · · · + y p (x) + . . . , (1.3)
2! p!
unde y p (x) reprezintă derivata de ordinul p a lui y ı̂n raport cu x. Dacă se dă o
valoare iniţială y(x0 ) şi se poate obţine expresia derivatelor y 0 , y 00 , . . . ı̂n funcţie
1.3. Un prim exemplu 3
de x şi y, atunci acestea pot fi ı̂nlocuite ı̂n seria Taylor (1.3) pentru a calcula
y(x0 + h) pentru un h dat. De asemenea, dacă h este suficient de mic, seria
converge repede, fără a fi necesar să calculăm un număr mare de termeni, deci
nici derivate. Să luăm x0 = 0, y(0) = 1, h = 0.2 şi să presupunem că ter-
menul de ordinul 3, ce conţine pe h3 şi cei de ordin mai mare sunt neglijabili.
Prima derivată a lui y este specificată de ecuaţia diferenţială şi deci va mai trebui
determinat doar y 00 . Observând că y = y(x), diferenţierea ne conduce la
y 00 = −2y 2 − 4xyy 0 .
y 00 = 2y 2 (4x2 y − 1),
Valoarea lui y(0.4) se poate acum estima repetând procedura de mai sus cu punc-
tul iniţial (0.2, 0.96). Aceasta necesită reevaluarea celor două derivate după cum
urmează:
0.22
y(0.2 + 0.2) ' 0.96 + 0.2 · (−0.36864) + · (−1.56008)
2
= 0.8551 =: y2.
Soluţia acestei ecuaţii este diferită de cea a problemei originale (1.2). Aplicând
noua valoare soluţiei generale se obţine
care ne dă Y (0.4) = 0.8608. Prin urmare, eroarea la al doilea pas, obţinută prin
compararea soluţiei numerice cu această nouă soluţie exactă este un pic mai mică
-0.0057. Această eroare adevărată la un pas particular se numeşte eroare locală
a procesului numeric. La fiecare pas se poate defini o soluţie adevărată locală
şi deci o eroare locală. Comparaţia dintre soluţia numerică şi soluţia problemei
originale ne conduce la eroarea globală. Dacă, ı̂n cazul general, soluţia locală
adevărată un (x), numită şi soluţie de referinţă, satisface
en = yn − un−1 (xn )
εn = yn − y(xn ).
Aceste fenomene locale şi globale sunt ilustrate ı̂n figura 1.1, ı̂n care pe acelaşi
grafic apar şi soluţia exactă şi câteva soluţii locale reale ale problemei.
1.3. Un prim exemplu 5
Pentru h = 0.2, adăugarea termenilor de ordinul al treilea şi al patrulea din (1.3)
ne dă
Aceste rezultate sunt mult mai bune decât cele precedente, dar costul de calcul
este mult mai mare. Un dezavantaj major al acestei metode este necesitatea de a
6 Primele idei şi metode cu un pas
găsi derivatele de ordin ı̂nalt, care pot deveni repede foarte complicate, chiar şi
pentru funcţii mai simple, cum ar fi cea din exemplul (1.2). Programul M ATLAB
de mai jos implementeză metoda dezvoltării Taylor pentru ecuaţia scalară (1.2).
Modificând funcţia yd ea poate fi adaptată uşor la alte ecuaţii scalare.
function [t,w]=TaylorODE(f,a,b,y0,N)
%metoda dezvoltarii Taylor pentru ecuatii scalare
%apel [t,w]=TaylorODE(f,a,b,y0,N)
h=(b-a)/N;
x=a; y=y0; t=x; w=y;
hv=[1,h/2,hˆ2/6,hˆ3/24];
for i=1:N
der=yd(x,y);
y=y+h*hv*der;
x=x+h;
t=[t;x];
w=[w;y];
end
%---------------------
function dy=yd(x,y)
%calculeaza derivata
dy=zeros(4,1);
dy(1)=-2*x*yˆ2;
dy(2)=-2*y*(y+2*x*dy(1));
dy(3)=-4*(2*dy(1)*y+x*(dy(1)ˆ2+y*dy(2)));
dy(4)=-4*(3*(dy(1)ˆ2+y*dy(2))+x*(3*dy(1)*dy(2)+y*dy(3)));
sau
yn+1 = yn + hn Φ(xn , yn , hn ), (1.5)
unde
h 00 hp−1 (p)
Φ(x, y, h) = y 0 + y + ··· + y
2 p!
este forma trunchiată a funcţiei increment Taylor. În principiu această metodă
este foarte directă, dar dificultatea relativă de calcul al derivatelor a restrâns ı̂n
trecut aplicabilitatea şi popularitatea metodei serii lor Taylor. Totuşi, avântul
pachetelor de calcul simbolic a readus ı̂n centrul atenţiei metodele de acest tip.
Este instructiv să considerăm ı̂n acest stadiu şi alte aspecte ale diferenţierii
Taylor pentru sisteme de ecuaţii diferenţiale ordinare. Să considerăm cazul scalar
al unei singure ecuaţii y 0 = f (x, y(x)). Seria Taylor necesită derivate totale de
ordin superior ale lui y ı̂n raport cu x. Derivând şi ţinând cont că f = dy/dx,
obţinem
d
y 00 = f (x, y)
dx
∂f dx ∂f dy
= +
∂x dx ∂y dx
∂f ∂f
= +f ,
∂x ∂y
d
y 000 = (fx + f fy )
dx
= fxx + 2f fxy + f 2 fyy + fx fy + fy2 f.
Situaţia ı̂n cazul sistemelor de ecuaţii este mai complicată, dar se poate obţine o
oarecare simplificare considerând sisteme autonome
y 0 = f (y), y ∈ RM . (1.6)
i 0
y = if 1
y, 2 y, . . . , M y .
8 Primele idei şi metode cu un pas
= fij i f j f + fi i fj j f.
În general, derivatele totale de ordin superior pot fi exprimate sub forma
np
(p) (p)
X
yp = αi Fi . (1.10)
i=1
(p) (3)
Fi se numesc diferenţiale elementare şi ı̂n cazul p = 3, n3 = 2, αi = 1,
i = 1, 2. Diferenţialele elementare sunt
(3)
F1 = fij i f j f
(3)
F1 = fi i fj j f.
f1 = f (xn , yn )
10 Primele idei şi metode cu un pas
Stadiu x y f (x, y)
x0 y0 f1
1 0 1 0
x0 + 21 h y0 + 12 hf1 f2
2 0.1 1 -0.2
x0 + h y0 + h(2f2 − f1 ) f3
3 0.2 -0.92 -0.33856
1 1
f2 = f xn + h, yn + hf1
2 2
f3 = f (xn + h, yn + h(2f2 − f1 )) .
0.2
y1 = 1 + (0 + 4 · (−0.2) − 0.33856)
6
= 0.9620 ' y(0.2).
unde
f1 = f (xn , yn )
i−1
X
fi = f xn + ci hn , yn + hn aij fj
j=1
i = 2, 3, . . . , s.
function [t,w]=RK3ode(f,a,b,y0,N)
%metode Runge-Kutta de ordinul 3
%apel [t,w]=RK3ode(f,a,b,y0,N)
%f - functia din membrul drept
%a,b - intervalul
%y0 - valoarea de pornire
%N - numarul de puncte
h=(b-a)/N;
x=a;
y=y0(:);
t=x;
w=y;
for k=1:N
K1=h*feval(f,x,y);
K2=h*feval(f,x+1/2*h,y+1/2*K1);
K3=h*feval(f,x+h,y+2*K2-K1);
y=y+1/6*(K1+4*K2+K3);
x=x+h;
t=[t;x];
w=[w;y’];
end
cu 1 y(0) = 1, 2 y(0) = 0. Calculele pentru un pas se dau detaliat ı̂n tabela 1.3
iar rezultatul este
1
y1 1 0.2 0 −0.20 −0.36800
2y = + +4 +
1 0 6 −2 −1.92 −1.42195
1.7. Probleme 13
Stadiu x 1y 1y 1f 2f
1 0 1 0 0 -2
2 0.1 1 -0.2 -0.20 -1.92
3 0.2 0.92 -0.368 -0.36800 -1.42195
0.9611 y(0.2)
= ' 0 .
−0.3701 y (0.2)
se obţine sistemul
1y0 2y
2y = y0 3y
.. =
.
.
n−1 . .
0
n
y=y y
ny = y0 1 n
g x, y, . . . , y
1.7 Probleme
Problema 1.7.1. Dându-se ecuţia diferenţială
1
y 0 = y 3 − y, y(0) = ,
2
14 Primele idei şi metode cu un pas
utilizaţi o serie Taylor cu termeni până la ordinul lui h3 pentru a estima y(0.1).
Calculând y (4) (0) estimaţi eroarea rezultatului şi comparaţi-o cu eroarea adevă-
rată, ştiind că soluţia exactă este
1
y(x) = √ .
1 + 3e2x
Problema 1.7.2. Utilizaţi metoda seriilor Taylor pentru a estima y şi y 0 ı̂n x =
0.1, 0.2 când y satisface ecuaţia de ordinul al doilea
1
y 00 = − , y(0) = 1, y 0 (0) = 0.
y2
d2 θ
= −ω 2 sin θ.
dt2
.
Presupunând ca ω = 1, θ(0) = 0, θ(0) = 1, calculaţi un singur pas de dimen-
siune h = 0.2 pentru a estima soluţia şi derivata ı̂n t = 0.2. Modificaţi pro-
gramul din §1.3 pentru a calcula soluţia numerică a problemei pendulului pentru
t ∈ [0, 10], utilizând dimensiunea pasului h = 0.2. Estimaţi perioada pendulului.
Problema 1.7.4. Utilizaţi metoda Runge-Kutta de ordinul al doilea ı̂n două stadii
h
yn+1 = yn + (f1 + f2 ),
2
f1 = f (xn , yn ),
f2 = f (xn + h, yn + hf1 )
pentru a estima y(0.1) şi y(0.2) cu h = 0.1, pentru problema cu valori iniţiale
y 0 = x + y, y(0) = 1.
Problema 1.7.6. Utilizaţi programul din §1.5 pentru a rezolva ecuaţia diferenţi-
ală
y 0 = (1 − y/20)y/4, y(0) = 1
pentru x ∈ [0, 20] cu lungimea pasului h = 0.2
2.1 Introducere
Pentru o ı̂nţelegere completă a oricărei tehnici numerice este essenţial să
se considere sursele de erori şi cum sunt ele propagate pe parcursul calculelor.
Acest lucru este important ı̂n particular pentru rezolvarea numerică a ecuaţiilor
diferenţiale, proces care necesită o abordare pas cu pas. Inevitabil, eroarea la
orice pas va depinde de erorile la paşii anterior. În unele cazuri, proprietăţile
ecuaţiilor şi algoritmilor numerici vor fi astfel ı̂ncât să nu apară nici o amplificare
a erorii; mai frecvent erorrea va creşte pe măsură ce creşte numărul de paşi, deşi
nu neapărat monoton.
La rezolvarea numerică a ecuaţiilor diferenţiale sunt două surse de erori:
A: datorită trunchierii seriilor, numite erori matematice;
B: datorită preciziei finite a calculatorului, numite erori de rotunjire.
Dezvoltarea metodelor numerice este mai frecvent legată de [A] decât de [B],
deoarece precizia aritmetică sau numărul de cifre semnificative furnizate de o
operaţie, este ı̂nafara controlului matematicianului. Deoarece eroarea de rotun-
jire ı̂n orice calcul mai lung va depinde direct de numărul de operaţii aritme-
tice efectuate, ea poate fi minimizată reducând acest număr. Această reducere
se poate realiza frecvent reducând eroarea matematică a unui proces numeric.
Această legătură ı̂ntre cele două tipuri de erori nu este recunoscută ı̂ntotdeauna.
Desigur, practicianul trebuie să evite pierderea de cifre semnificative care poate
apare ca rezultat al unei programări neglijente.
O metodă de succes pentru ecuaţii diferenţială va permite calculul soluţiilor
la precizia dorită, din punct de vedere matematic. În practică, precizia va fi legată
de limitările preciziei maşinii. Erorile de rotunjire vor avea rolul lor.
17
18 Consideraţii asupra erorilor
2.2 Definiţii
Să considerăm din nou problema cu valori iniţiale:
{yn |n = 0, 1, 2, . . . , N },
corespunzând valorilor soluţiei exacte {y(xn )}. Pentru simplitatea notaţiilor şi
claritate, lungimea h a pasului se va presupune constantă, deşi extensia la un pas
variabil mai general se realizează uşor. Soluţia exactă a problemei se va nota cu
y = y(x). Vom introduce mai ı̂ntâi terminologia uzuală.
Eroarea globală a soluţiei numerice se defineşte prin
εn = yn − y(xn ), n = 0, 1, . . . , N, (2.3)
Astfel, ı̂ntr-un proces convergent, eroarea globală scade odată cu lungimea pasu-
lui. Din punct de vedere practic, aceasta implică faptul că eroarea globală se va
reduce pe măsură ce lungimea pasului se reduce.
Un alt concept important este acela de consistenţă. Metoda numerică (2.2)
este consistentă cu ecuaţia diferenţială (2.1) dacă
Aşa cum se va vedea mai târziu, aceasta este o condiţie necesară pentru ca proce-
sul numeric să fie convergent. Pentru metoda seriilor Taylor de ordinul p, funcţia
increment este
p
X hi−1 (i)
Φ= y ,
i!
i=1
şi astfel
Φ(x, y, 0) = y 0 = f (x, y),
2.3. Eroarea locală de trunchiere pentru metoda seriilor Taylor 19
Deşi eroarea globală sau acumulată este de primă importanţă pentru măsura-
rea calităţii soluţiei, o cantitate mai uşor de apreciat este eroareacare apare la un
singur pas al procesului numeric. Eroarea locală (LE) la pasul n+1 se defineşte
ca
en+1 = yn+1 − u(xn+1 ), (2.5)
unde u(x) este soluţia locală exactă (de referinţă) ce satisface
u0 = f (x, u), u(xn ) = yn .
Aceasta este eroarea asociată cu un singur pas şi este o cantitate care joacă un rol
important ı̂n calculul practic al soluţiilor.
În scopuri analitice este convenabil să introducem un al treilea tip deeroare,
numită eroare locală de trunchiere (LTE). Presupunem că metoda numerică
(Taylor sau Runge-Kutta) are o formulă increment (2.2) care se poate rescrie sub
forma
0 = yn + hΦ(xn , yn , h) − yn+1 .
Această ecuaţie nu este satisfăcută ı̂nlocuind yn cu valoarea soluţiei exacte a
ecuaţiei diferenţiale y(xn ), iar diferenţa este chiar eroarea locală de trunchiere
tn+1 = y(xn ) + hΦ(xn , y(xn ), h) − y(xn+1 ). (2.6)
Astfel, eroarea locală de trunchiere este cantitatea cu care soluţia exactă eşuează
ı̂n a satiface formula numerică. Aşa cum va fi clar din figura 1.1, la primul pas
cele trei erori a căror definiţie s-a dat aici vor avea valori identice. Pentru valori
mari ale lui n eroarea globală va fi mult mai mare decât erorile locale, dar de
obicei eroarea locală şi eroarea locală de trunchiere vor avea ordine de mărime
apropiate. Relaţia dintre aceste cantităti va fi examinată mai tărziu.
conducând la
h 00 hp−1 (p)
∆(xn , y(xn ), h) = y 0 (xn ) + y (xn ) + · · · + y (xn )
2 p!
hp
+ y (p+1) (xn + ηh), η ∈ (0, 1),
(p + 1)!
şi deci LTE se reduce la ultimul termen al acestui polinom. Valoarea η nu este
ı̂n general cunoscută. În consecinţă, există un număr real pozitiv A, independent
de dimensiunea pasului h,
ktn+1 k ≤ Ahp+1 (2.9)
şi pentru o metodă de ordinul p se obişnuieşte să se scrie
tn+1 = O(hp+1 ).
Pentru orice metodă de tipul (1.3) eroarea locală de trunchiere se poate exprima
sub forma
X∞
tn+1 = hi ϕi−1 (xn , y(xn )), (2.10)
i=p+1
unde ϕi se numesc funcţii de eroare. Utilizând (2.8), obţinem că metoda seriilor
Taylor are funcţiile de eroare
yi+1
ϕi = − .
(i + 1)!
Funcţia de eroare principală este ϕp şi aceasta va avea influenţa dominantă asu-
pra erorii locale de trunchiere dacă h este suficient de mic.
2.4. Eroarea locală de trunchiere pentru metodele Runge-Kutta 21
1 2 2
+ (c h fxx + 2a21 hc2 hf fxy + a221 h2 f 2 fyy ) + O(h3 )}
2 2
= (b1 + b2 )f + b2 {h(c2 fx + a21 f fy )
h2 2
+ (c fxx + 2a21 c2 f fxy + a221 f 2 fyy ) + O(h3 )}.
2 2
Pentru a simplifica formula (2.7) este esenţial să identificăm diferenţialele ele-
mentare ı̂n expresiile anterioare. În acest proces de un real ajutor este să alegem
a21 = c2 , ceea ce ne dă
(1) (2) 1 (3)
Φ = (b1 + b2 )F1 + b2 c2 F1 + b2 c22 h2 F1 + O(h3 ).
2
Înlocuind ı̂n (2.7) se obţine o expresie a erorii locale de trunchiere ı̂n termeni de
diferenţiale elementare şi parametrii RK b1 , b2 şi c2 :
tn+1 = h(Φ − ∆)
(1) 1 2 (2)
= h[(b1 + b2 ) − + h b2 c2 −
1]F1 F1
2 (2.12)
1 1 (3) 1 (3)
+ h3 b2 c2 − F1 − F2 + O(h4 ).
2 2 6 6
Acum diferenţialele elementare sunt dependente de problema de rezolvat şi astfel
singurii parametrii care influenţează comportarea generală a procesului RK ı̂n
(2.12) sunt b1 , b2 şi c2 . Urmând experienţa de la serii Taylor, parametrii RK vor
fi aleşi astfel ca să maximizeze ordinul erorii locale de trunchiere (2.12). Pentru
a anula primele două puteri ale lui h trebuie satisfăcut sistemul neliniar
b 1 + b2 = 1
1 (2.13)
b2 c2 = .
2
Atunci eroarea locală de trunchiere se reduce la
3 1 2 1 (3) 1 (3)
tn+1 = h b2 c − F1 − F2 + O(h4 ). (2.14)
2 2 6 6
Un polinom Taylor de gradul 2 are eroarea locală de trunchiere
h3 (3) (3)
tn+1 = − F1 + F2 + O(h4 )
6
şi formula RK ı̂n două stadii ai cărei parametrii satisface ecuaţiile (2.13) are
aceeaşi comportare asimptotică şi ordinul doi.
2.4. Eroarea locală de trunchiere pentru metodele Runge-Kutta 23
Semnificaţia acestei dezvoltări este aceea că furnizează o bază pentru ale-
gerea parametrilor Runge-Kutta. În cazul ordinului 2 există trei parametrii care
trebuie să satisfacă condiţiile (2.13). Nu există soluţie unică şi de aceea unul
dintre parametrii trebuie ales ı̂n mod independent. O alegere evidentă, fără altă
justificare decât simplitatea este de a lua c2 = 1, obţinându-se
h
yn+1 = yn + (f1 + f2 ),
2
f1 = f (xn , yn ), (2.15)
f2 = f (xn + h, yn + hf1 ).
yn+1 = yn + hf2 ,
f1 = f (xn , yn ),
(2.16)
1 1
f2 = f xn + h, yn + hf1 .
2 2
(i)
unde βj sunt funcţii de parametrii aij , bi , ci şi se mai presupune că este sa-
tisfăcută condiţia
i−1
X
ci = aij , i = 2, 3, . . . , s (2.18)
j=1
numită condiţia sumei liniilor. Utilizând ecuaţiile (2.7) şi (1.10) cu (2.17), eroa-
rea locală de trunchiere pentru orice metodă RK poate fi scrisă sub forma
∞ ni (i) !
X X
(i) α j (i)
tn+1 = hi βj − Fj
i!
i=1 j=1
(2.19)
∞ X ni
(i) (i)
X
= hi τj Fj
i=1 j=1
unde
(i) (i) (i)
τj = βj − αj /i!, i = 1, 2, . . . ; j = 1, 2, . . . , ni
24 Consideraţii asupra erorilor
(1) P
1. τ1 = i bi − 1
(2)
= i bi ci − 12
P
2. τ1
(3)
= 12 i bi c2i − 16
P
3. τ1
(3) P 1
4. τ1 = ij bi aij cj − 6
(1)
τ1 = b1 + b2 − 1
(2) 1
τ1 = b2 c2 −
2
(3) 1 2 1 (2.20)
τ1 = b2 c2 −
2 6
(3) 1
τ2 = − ,
6
şi alegând parametrii RK pentru a elimina primii doi coeficienţi din aceste erori
se obţine o metodă de ordinul doi. Pentru o formulă cu două stadii, τ23 este o
constantă şi, ı̂n general, nu este posibil să găsim parametrii pentru o formulă cu
două stadii pentru a obţine o precizie de ordinul 3. Totuşi, creşterea numărului
de stadii la trei furnizează suficienţi parametrii RK pentru a construi o formulă
de ordinul trei.
Din (2.19) rezultă că o formulă RK are ordinul cel puţin p (tn+1 = O(hp+1 ))
dacă este satisfăcută ecuaţia de condiţionare:
(i) i = 1, 2, . . . p,
τj = 0, (2.21)
j = 1, 2, . . . ni .
Valoarea lui ni creşte exponenţial odată cu ordinul, astfel că numărul de ecuaţii
care trebuie satisfăcute creşte rapid când ordinul creşte. Aceasta implică un
număr mare de stadii s pentru a asigura gradele de libertate necesare pentru a
atinge un ordin ı̂nalt. Formulele generale pentru coeficienţii erorii până la or-
(3)
dinul trei sunt date ı̂n tabela 2.1. De notat că τ2 nu este constant ı̂n cazul
general. Coeficienţii erorii din această tabelă sunt valabil când formulele RK
sunt aplicate sistemelor generale de ecuaţii şi nu numai ı̂n cazul scalar care a fost
subiectul analizei precedente. De asemenea, nu este necesar ca un proces RK să
2.4. Eroarea locală de trunchiere pentru metodele Runge-Kutta 25
poate ı̂nlocui ecuaţia (2.18). În fine, deoarece multe formule RK sunt de tip
explicit (1.12), ı̂n acest caz vom impune aij = 0, j ≥ i, aşa că
i−1
X
fi = f xn + ci h, yn + h aij fj
j=1
Pe lângă avantajele de calcul ale metodelor explicite este evident că numărul de
termeni care constribuie la mulţi dintre coeficienţii erorii se reduce considerabil
faţă de cazul general. Pentru o metodă cu patru stadii formula coeficientul 8
din tabela 2.2, fiind o sumă triplă, conţine 43 termeni. Totşi, impunând condiţia
explicită i > j > k > 1 suma se reduce la un singur termen
1
b4 a43 a32 c2 − .
24
26 Consideraţii asupra erorilor
(4) 1X 3 1
5. τ1 = bi ci −
6 24
(4)
Xi 1
6. τ2 = bi cj aij cj −
8
ij
(4) 1 X 1
7. τ3 = bi aij c2i −
2 24
ij
(4)
X 1
8. τ4 = bi aij ajk ck −
24
ijk
(5) 1 X 1
9. τ1 = bi c4i −
24 120
i
(5) 1X 2 1
10. τ2 = bi ci aij cj −
2 20
ij
(5) 1 X 1
11. τ3 = bi aij cj aik ck −
2 40
ijk
(5) 1X 1
12. τ4 = bi ci aij c2j −
2 30
ij
(5) 1 X 1
13. τ5 = bi aij c3j −
6 120
ij
(5)
X 1
14. τ6 = bi ci aij ajk ck −
30
ijk
(5)
X 1
15. τ7 = bi aij cj ajk ck −
40
ijk
(5) 1 X 1
16. τ8 = bi aij ajk c2k −
2 120
ijk
(5)
X 1
17. τ9 = bi aij ajk akm cm −
120
ijkm
ci aij bi
0 b1
c2 a21 b2
c3 a31 a32 b3
.. .. .. .. ..
. . . . .
cs as1 as2 ... ass−1 bs
ci aij bi
1
0 6
1 1 2
2 2 3
1
1 −1 2 6
Totuşi, tabelele 2.1 şi 2.2 sunt valabile pentru formule implicite care vor fi con-
siderate ı̂ntr-un capitol ulterior.
În acest moment este convenabil să introducem tabela Butcher modificată,
ilustrată de tabela 2.3, pentru afişarea coeficienţilor unui process Runge-Kutta
general. Convenţia este să omitem elementele de pe diagonală şi cele de deasupra
diagonalei matricei cu elementele aij atunci când acestea sunt zero, deoarece ı̂n
acest caz formula RK este explicită. Aceasta ne dă un mod compact şi concis de
a da formule RK cu mai multe stadii, iar formula cu trei stadii (1.11) introdusă ı̂n
capitolul 1 este dată ı̂n această formă ı̂n tabela 2.4. Această notaţie va fi utilizată
extensiv ı̂n capitolele următoare.
dată de
εn+1 = yn+1 − y(xn+1 )
şi ţinând cont de ecuaţiile (2.2) şi (2.6) se obţine
peste domeniul ce conţine punctele soluţiei exacte şi ale celei numerice, inegali-
tatea (2.23) devine
|εn+1 | ≤ |ε|(1 + hL) + M. (2.24)
Aplicând această inegalitate cu n = 0, 1, 2, . . . , este simplu să obţinem o mar-
gine a erorii globale pentru n general. Inegalitatea (2.24) ne dă
(1 + hL)n − 1
|εn | ≤ |ε0 |(1 + hL)n + M
hl
M M
= (1 + hL)n |ε0 | + − .
hL hL
Ordinul erorii globale erorii globale este cu 1 mai mic decât ordinul erorii locale
de trunchiere şi astfel o metodă cu un pas de forma (2.2) care este consistentă şi
de ordinul p va fi convergentă dacă p ≥ 1.
şi utilizând (2.7), diferenţa dintre cele două tipuri de eroare locală este
Dezvoltând cu formula lui Taylor pentru două variabile ı̂n jurul lui (xn , y(xn ) se
obţine
ε2n
en+1 − tn+1 = h εn (Φy − ∆y ) + (Φyy − ∆yy ) + . . . .
2
Deoarece εn ∼ O(hp ) şi |Φ − ∆| < Ahp , rezultă că
indicând faptul că diferenţa dintre două eroari de ordinul p este cu p ordine mai
mare decât eroarea locală ı̂nsăşi. Pe măsură ce h se micşorează, diferenţa dintre
cele două erori va scădea mai repede decât ambele erori locale. În consecinţă
putem privi estimarea erorii locale a unui proces de ordinul p ca fiind o estimare
a erorii locale de trunchiere. Deoarece eroarea locală de trunchiere nu implică
soluţia exactă globală, este mult mai uşor să o estimăm ı̂n practică decât LTE.
O astfel de estimare a erorii este esenţială pentru rezolvarea numerică eficientă a
ecuaţiilor diferenţiale.
2.7 Probleme
Problema 2.7.1. Arătaţi că pentru ca o metodă cu s-stadii să fie consistentă cu
o ecuaţie diferenţială este
Xs
bi = 1.
i=1
Problema 2.7.2. Calculaţi cinci paşi ai metodei lui Euler aplicată ecuaţiei
y 0 = y − 2y 2 , y(0) = 1, h = 0.1.
Utilizaţi soluţia exactă şi soluţia de referinţă pentru a calcula eroarea locală şi
globală la fiecare pas, ştiind că soluţia generală a ecuţiei diferenţiale este y =
1/(2 + ce−x ).
Problema 2.7.4. Scrieţi ı̂n formă dezvoltată cele 8 ecuaţii de condiţie pentru o
formulă Runge-Kutta explicită de ordinul 4 cu 4 stadii. Verificaţi că ecuaţiile
sunt satisfăcute de formula dată mai jos
ci aij bi
1
0 6
1 1 1
2 2 3
1 1 1
2 0 2 3
1
1 0 0 1 6
2.7. Probleme 31
y 0 = xy 2 , y(0) = 2,
utilizaţi formula RK4 de mai sus pentru a estima y(0.2) cu h = 0.2. Determinaţi
soluţia exactă şi utilizaţi-o pentru a calcula eroarea estimaţiei dumneavoastră.
Problema 2.7.5. Utilizaţi formula RK4 din problema precedentă, cu lungime
pasului h = 0.2 pentru a estima y(0.2) şi y 0 (0.2) care satisfac ecuaţia de ordinul
al doilea
y 00 = −1/y 2 , y(0) = 1, y 0 (0) = 0.
(Se va trata ca un sistem de ecuaţii de ordinul I).
Problema 2.7.6. Dacă y 0 = f (x, y) = f1 , cu
f2 = f (x + c2 h, y + ha21 f1 ),
f3 = f (x + c3 h, y + h(a31 f1 + a32 f2 )),
0 ≤ (1 + w)m ≤ emw .
cu lungimea pasului h = 0.25 şi x ∈ [0, 5]. Utilizând soluţia generală a ecuaţiei
diferenţiale, calculaţi eroarea locală e, bazându-vă pe soluţia exactă, calculaţi
eroarea locală de trunchiere t şi comparaţi-o cu eroarea locală la fiecare pas.
Aplicând la fiecare pas formula incrementală
Metode Runge-Kutta
3.1 Introducere
Metodele Runge-Kutta au devinit de mulţi ani populare printre practicieni.
Dezvoltate iniţial de Runge la sfârşitul secolului al XIX-lea şi generalizate de
Kutta la ı̂nceputul secolului al XX-lea, aceste metode sunt foarte convenabil de
implementat, comparate cu schema polinomială Taylor, care necesită construirea
şi evaluarea derivatelor de ordin superior. Acest neajuns al metodei Taylor este
foarte serios la tratarea sistemelor de ecuaţii diferenţiale, dar odată cu creşterea
popularităţii software-ului simbolic se pare că abordarea bazată pe serii se va
bucura de atenţie ı̂n viitor.
Dezvoltarea modernă a metodelor Runge-Kutta s-a produs ı̂ncepând cu 1960,
ı̂n principal ca rezultat al progreselor datorate lui J. C. Butcher ı̂n dezvoltarea şi
simplificarea coeficienţilor erorii RK. Importanţa lucrărilor lui Butcher ı̂n acest
domeniu nu poate fi accentuată suficient. Contribuţiile sale au pregătit drumul
pentru dezvoltarea proceselor eficiente de ordin ı̂nalt de care software-ul modern
de rezolvare a ecuaţiilor diferenţiale depinde. Totuşi, disponibilitatea calculatoa-
relor puternice este ea ı̂nsăşi o motivaţie pentru dezvoltarea de metode care să
conducă la o precizie chiar mai bună.
Unele procese Runge-Kutta mai simple au fost deja introduse ı̂n capitolele
precedente, iar ı̂n capitolul 2 s-a prezentat baza pentru construirea unor astfel de
formule. O observaţie importantă a acestui capitol este aceea că, pentru un număr
dat de stadii, formula RK nu este unică. Aceasta ı̂nseamnă că există parametrii
liberi care trebuie aleşi. Este esenţial să adoptăm o abordare sistematică a acestei
alegeri şi să introducem şi să justificăm criterii pentru construirea de noi formule.
Una dintre problemele cu care se confruntă orice om de ştiinţă sau inginer la
rezolvarea unei probleme cu valori iniţiale este alegerea celei mai bune formule
33
34 Metode Runge-Kutta
pentru acest scop.Având ı̂n vedere alternativele disponibile şi varietatea de pro-
bleme de rezolvat, această alegere nu este ı̂ntotdeauna directă. Deşi acest capitol
nu va da cele mai ,,bune” formule RK, va da detalii asupra celor mai proaste
procese numerice de rezolvare a ecuaţiilor diferenţiale!
Construirea de metode numerice trebuie ı̂nsoţită de teste practice. Testele
se vor aplica adesea problemelor cu soluţii cunoscute. Aceasta permite calculul
unor estimaţii adecvate ale erorii, necesare la compararea diferitelor procese nu-
merice. ??? Se va ı̂ncerca să se dea un program ı̂n M ATLAB aplicabil oricărui
sistem de ecuaţii diferenţiale, conceput astfel ca să implementeze orice proces
Runge-Kutta explicit, facilitate care deşi este ı̂ntâlnită rareori ı̂n programele pu-
blicate, se poate realiza uşor, fără pierderi semnificative ale eficienţei de calcul.
2 3
a doua condiţie din (2.13) ne conduce la c2 = 3 şi astfel b2 = 4 şi b1 = 41 . De
(3)
notat că, pentru o ecuaţie diferenţială ı̂n care F2
= 0, formula cu două stadii
va avea ordinul 3. De fapt, această situaţie apare când f (x, y) = f (y); deoarece
y nu afectează derivatele o astfel de problemă este una de cuadratură.
Această formulă particulară RK cu două stadii, având c2 = 21 , este conside-
rată de obicei ca fiind optimală ı̂n raport cu eroarea de trunchiere. Desigur, este
posibil să construim probleme pentru care anumite formule RK de ordinul 2 cu
două stadii dau precizie mai bună. Totuşi, calculele practice pentru o clasă largă
de probleme susţin alegerea de mai sus a parametrului liber.
Dacă sunt prezente mai mult de două stadii ordinul poate fi crescut. Deoarece
numărul de coeficienţi de eroare creşte de asemenea va creşte şi complexitatea
funcţiei principale de eroare. Pentru o metodă de ordinul p aceasta se scrie ca
np +1
(p+1) (p+1)
X
ϕp = τj Fj , (3.1)
j=1
şi o trimitere la tabela 2.2 ne arată că n4 = 4 şi n5 = 9. Pentru ordine mai mari
numărul de coeficienţi ai erorii creşte rapid odată cu ordinul, ı̂n timp ce numărul
de grade de libertate depinde de numărul de stadii. În consecinţă nu este adecvat
să ı̂ncercăm să optimizăm o formulă RK prin alegerea parametrilor liberi pentru
a elimina coeficienţi particulari de eroare.
Într-o lucrare de referinţa din 1980 Dormand şi Prince [7] au propus ca, pen-
tru a atinge un ordin particular de precizie, cea mai bună strategie pentru scopuri
practice este să alegem parametrii liberi RK astfel ı̂ncât să minimizăm norma
erorii v
unp +1
(p+1) 2
uX
(p+1)
(p+1)
A =
τ
=t τj . (3.2)
2
j=1
Va fi clar că acest lucru este consistent cu o formulă optimală cu două stadii.
Minimizarea nu trebuie luată ca o condiţie strictă perfectă, deoarece se aplică
unui singur termen al unei serii infinite. Acest termen va domina seria pentru
h suficient de mic, dar pentru lungimi practice ale pasului s-ar putea să nu se
ı̂ntâmple aşa când coeficienţii de eroare sunt strict minimizaţi.
În anumite cazuri de importanţă practică, o minimizare strictă conform e-
cuaţiei (3.2) poate avea drept consecinţă ca un termen secundar al seriei pentru
eroarea locală de trunchiere să devină dominant pentru o lungime de pas tipică.
Evident aceasta va invalida argumentele de mai sus. Drmand şi Prince au propus
un număr de criterii pentru a fi utilizate la construcţia formulelor RK. Obţinerea
unei funcţii principale de eroare mici este probabil facilitatea cheie, dar şi altele
sunt legate de aspecte parctice de calcul care vor fi ı̂ntâlnite ı̂n text.
36 Metode Runge-Kutta
(i)
τj = 0, i = 1, 2, 3; j = 1, 2, . . . ni ,
ci aij bi
0 b1
c2 a21 b2
c3 a31 a32 b3
Utilizând tabela 2.1 şi observând că aij = 0, j ≥ i, cele patru ecuaţii de condiţie
se pot exprima sub forma
b1 + b2 + b3 = 1 (3.3)
1
b2 c2 + b3 c3 = (3.4)
2
1
b2 c22 + b3 c23 = (3.5)
3
1
b3 a32 c2 = . (3.6)
6
Acest sistem are şase necunoscute şi sunt 4 grade de libertate. Este convenabil să
alegem ca parametrii liberi pe c2 şi c3 şi să rezolvăm ecuaţia ı̂n funcţie de aceştia.
Luând (3.4)×c2 −(3.5) se obţine
1 1
b3 c3 (c2 − c3 ) = c2 − ,
2 3
care dă
3c3 − 2
b3 = .
6c3 (c2 − c3 )
La fel
3c3 − 1
b2 = ,
6c2 (c3 − c2 )
şi ı̂mpreună cu (3.6) ne conduce la
c3 (c2 − c3
a32 = .
c2 (3c2 − 2)
3.3. O formulă de ordinul al treilea 37
Din ecuaţia (3.3), b1 = 1−b2 −b3 , şi din condiţia sumei liniilor (2.18) ne conduce
la a21 = c2 şi a31 = c3 − a32 . Această soluţie presupune că
2
c2 , c3 6= 0, c2 6= , c2 6= c3 .
3
Sunt posibile şi alte forme ale soluţiilor, incluzând cazul singular cu c2 = c3 .
Pentru a alege parametrii liberi c2 , c3 , trebuie considerat termenul princi-
pal al erorii locale de trunchiere. Utilizând ecuaţia (3.1) şi tabela 2.2, termenul
principal este
4
(4) (4)
X
ϕ3 = τ j Fj ,
j=1
unde
(4) 1 1
τ1 = (b2 c32 + b3 c33 ) −
6 24
(4) 1
τ2 = b3 c3 a32 c2 −
8
(4) 1 2 1
τ3 = b3 a32 c2 −
2 24
(4) 1
τ4 = − .
24
Înlocuid acum b2 , b3 şi a3 2 ı̂n expresiile de mai sus obţinem coeficienţii de eroare
ı̂n funcţie de parametrii liberi c2 şi c3 . În final
Figura 3.1: Grafic de tip contur al normei erorii principale A(4) pentru o metodă
cu trei stadii RK3
ci aij bi ci aij bi
2 1
0 9 0 6
1 1 1
(3.7) 1 1 2
(3.8)
2 2 3 2 2 3
3 3 4 1
4 0 4 9 1 -1 2 6
Formulele (3.7) şi (3.8) au normele erorii principale A(4) = 0.042 şi respectiv
0.059 şi se pare că (3.7) este cea mai bună dintre cele două. De fapt, aceasta
este foarte aproape de optimul absolut pentru acest model minimul lui ϕ3 apare
pentru c2 = 0.49650, c3 = 0.75175, fiind cu aproximativ 1% mai mică decât
valoarea din (3.7), care va fi numită RK3M. În figura 3.1 se dă un grafic de
tip contur al variaţiei lui A(4) ı̂n funcţie de cei doi parametrii liberi. De notat
că formulele (3.7) şi (3.8) care sunt fracţii cu o singură zecimală. Astfel, pare
imposibil să găsim formule cu un aspect mai simplu. Pentru a obţine minimul
absolut fracţiile 21 , 43 trebuie ı̂nlocuite cu 2000
993 3007
, 4000 , care corespund schimbărilor
ı̂n valorile lui b, dând o formulă mai urâtă decât (3.7). Astfel de consideraţii
estetice nu vor afecta un program pe calculator, dar orice ı̂mbunătăţire a eficienţei
câştigată prin utilizarea optimului va fi neglijabilă deoarece comportarea erorii
nu este dependent sensibilă la valorile lui c2 şi c3 .
3.4. Formule de ordinul al patrulea 39
b 1 + b 2 + b3 + b 4 = 1 (E1)
1
b2 c2 + b3 c3 + b4 c4 = 2 (E2)
1
b2 c22 + b3 c23 + b4 c24 = 3 (E3)
1
b3 a32 c2 + b4 (a42 c2 + a43 c3 ) = 6 (E4)
1
b2 c32 + b3 c33 + b4 c34 = 4 (E5)
1
b3 c3 a32 c2 + b4 c4 (a42 c2 + a43 c3 ) = 8 (E6)
1
b3 a32 c22 + b4 (a42 c22 + a43 c23 ) = 12 (E7)
1
b4 a43 a32 c2 = 24 (E8)
Rezolvarea directă a acestor ecuaţii este imediată dar o abordare mai puternică
se bazează pe relaţiile de simplificare introduse de Butcher ı̂n 1963,
s
X
bi aij = bj (1 − cj ), j = 2, 3, 4 (3.10)
i=1
(3)
X 1
τ2 = bj (1 − cj )cj −
6
j
(2) 1 (3) 1 1
= τ1 + − 2 τ1 + −
2 6 6
40 Metode Runge-Kutta
(2) (3)
= τ1 − 2τ1 .
(4) (4)
La fel, τ3 şi τ4 se pot exprima ı̂n funcţie de coeficienţii anteriori ai erorii. Este
uşor de verificat că
(4) (3) (4)
τ3 = τ1 − 3τ1
(4) (2) (3) (4)
τ4 = τ1 − 2τ1 − τ2 .
b4 (1 − c4 ) = 0 ⇒ c4 = 1,
(1 − c2 )(2c2 − 1)(1 − c3 )
a43 = .
c3 (c2 − c3 )(6c2 c3 − 4(c3 + c2 ) + 3)
c3 (c2 − c3 )
a32 = ,
2c2 (2c2 − 1)
3.4. Formule de ordinul al patrulea 41
Alţi parametrii rezultă din E1 şi din condiţia sumei liniilor (2.18), obţinându-se
o familie de formule cu trei parametrii subiect al condiţiilor asupra lui c2 şi c3
listată mai sus. Această soluţie presupune că
1
c2 6= 0, 1, c3 6= 0, 1 c2 6= c3 , c2 6= .
2
Există şi alte posibiltăţi şi o formulă bine-cunoscută se bazează pe cazul singular
c2 = c3 şi va fi subiectul unei probleme ı̂n ultima secţiune a acestui capitol.
Utilizând tabela Butcher modificată, un membru (c2 = 13 , c3 = 23 ) al acestei
familii are forma
ci aij bi
1
0 8
1 1 1 (3.11)
3 3 8
2
3 − 13 1 3
8
1
1 1 -1 1 8
(5) 1X 1
τ5 = bj (1 − cj )c3j −
6 120
j
(4) (5)
= τ1 − 4τ1
(5)
= −4τ1 ,
(4)
deoarece τ1 = 0 pentru orice proces de ordinul al patrulea. În plus, este uşor
de arătat că
(5) (5) (5) (5) (5) (5)
τ6 = −τ9 = 1/120, τ7 − 2τ2 , τ8 = −τ4 .
Figura 3.2: Grafic contur al normei erorii principale A(5) pentru o RK4 cu 4
stadii
În funcţie de parametrii liberi c2 şi c3 , coeficienţii relevanţi ai erorii se pot scrie
sub forma
(5) (10c2 − 5)c3 − 5c2 + 3
τ1 =
1440
(5) 3 − 5c3
τ2 =
240
(5) 10c23 (3c2 − 2) + 2c22 (3 − 7c3 ) + 3c3 (9 − 14c2 ) + 3(5c2 − 3)
τ3 =
480(2c2 − 1)[6c2 c3 − 4(c2 + c3 ) + 3)]
(5) 2 − 5c2
τ4 = .
240
Graficul de tip contur din figura 3.2 ne arată comportarea funcţiei A(5) ı̂n ve-
5 13
cinătatea minimului,care este foarte apropiat de c2 = 14 , c3 = 22 . Totuşi funcţia
are gradienţi foarte mici ı̂n vecinătatea minimului şi o formulă foarete apropiată
de cea optimală (RK44M) este dată ı̂n tabela 3.1. Deoarece doi coeficienţi ai ero-
rii sunt constanţi nu este posibil să obţinem ı̂mbunătăţiri substanţiale comparativ
cu formula (3.11). Norma erorii pentru cele două formule este
A(5) (RK44M) = 0.0123, A(5) (3.11) = 0.0127,
şi deci performanţele celor două formule nu vor diferi substanţial.
Adăugând un al cincilea stadiu (η5 = 15) se adaugă 5 parametrii RK su-
plimentari şi deci o mai mare posibilitate de a reduce mărimea lui A(5) . Deza-
vantajul este creşterea complexităţii şi un cost mai mare al calculelor pe pas. Să
3.4. Formule de ordinul al patrulea 43
ci aij bi
11
0 72
2 2 25
5 5 72
3 3 3 25
5 − 20 4 72
19
1 44 − 15
44
10
11
11
72
(4)
Înlocuind (3.12) ı̂n coeficientul τ2 se obţine
5
(4)
X 1 2 1
τ2 = bi ci c −
2 i 8
i=3
(4)
= 3τ1 ⇔ b2 = 0.
Deşi s-ar părea că cei trei coeficienţi independenţi ai erorii pot fi eliminaţi prin
combinaţii potrivite ai celor trei parametrii liberi, nu este posibil ı̂n acest caz
să se obţină o formulă de ordinul al cincilea. Se poate arăta (Hairer, Nørsett şi
Wanner, 1993, [12]) că nu există nici o formulă RK cu 5 stadii de ordinul 5. În
44 Metode Runge-Kutta
ci aij bi
13
0 96
1 1
5 5 0
2 2 25
5 0 5 48
4 6
5 5 − 12
5 2 25
96
−17
1 8 5 − 25 5
8
1
12
Ordinul p 2 3 4 5 6 7 8 9 10
Xp
ni 2 4 8 17 37 85 200 486 1205
i=1
Butcher [1]
s
X
bi aij = bj (1 − cj ), j = 2, 3, . . . , s (3.13)
i=1
Aceste realţii reduc numărul total de condiţii ce apar ı̂n cazul ordinelor ı̂nalte.
Considerăm obţinerea unui proces de ordinul 6 ı̂n care apar 36 de ecuţii . Pentru
ηs > 37, ecuaţia (3.9) ne dă s ≥ 9. Cu reducerea de condiţii datorate relaţiilor
Butcher, numărul minim de ecuaţii necesare pentru o formulă de ordinul al 6-lea
este 7. Reducerea pentru ordinul 8 este şi mai drastică. O formulă RK de ordinul
8 poate fi obţinută cu numai 11 stadii. Trebuie admis că, pentru procese de ordin
foarte mare, condiţiile (3.13) şi (3.14) sunt suplimentate cu relaţii suplimentare
de simplificare. Aceasta nu sugerează ı̂n nici un caz că o construcţie a unei astfel
de formule ar fi simplă!
Presupunând că integrarea se face cu pas constant pe [a,b], lungimea pasului este
h = (b − a)/N şi astfel
log ε = B − p log N,
B = log C + p log(b − a).
Această relaţie este ilustrată pentru două formule cu ordin diferit p şi q, ı̂n Figura
3.3.
Dacă relaţia liniară este validă, atunci există o valoare a lui N de mai sus
pentru care formulele de ordin ı̂nalt conduc la o eroare mai mică şi sub care
46 Metode Runge-Kutta
procesul de ordin mic este mai precis. În diagramă (figura (3.3) valoarea critică
a lui n apare ı̂n log ε = −4. Aceasta implică faptul că o formulă de ordinul q
este de preferat când se caută o precizie mai mare.
Cu metode Runge-Kutta volumul de efort pe pas este proporţional cu nu-
mărul de stadii s (evaluări de funcţii) pe pas. Deoarece numărul total de stadii
pentru integrare este F = N s se ajunge la o relaţie a erorii costului (error-cost
relation)
log ε = D − p log F,
D = B + p log s,
care este similară cu ultima ecuaţie. Din aceasta, se trage concluzia că, ı̂n compa-
ratı̂e cu formulele RK de diferite ordine, metoda de ordin mai mare este cea mai
eficientă când lungimea pasului este suficient de mică. Desigur, problemele cu
cerinţe de eroare moderate pot fi rezolvate mai bine cu formule de ordin moderat.
Aceste argumente au neglijat efectul erorilor de de rotunjire, care va depinde de
preczia aritmeticii calculatorului. Propagarea erorilor de rotunjire nu este chiar
aşa de uşor de cuantificat ca şi precizia matematică. Totuşi se poate presupune ca
va fi proporţional cu numărul de paşi şi pentru N suficient de mare, va domina
soluţia. Precizia aritmetică va defini o limită inferioară a erorii realizabile.
3.7 Exemple
Secţiunile precedente din acest capitol au fost consacrate obţinerii unor for-
mule Runge-Kutta de ordin ı̂nalt. Vom verifica acum prin calcul direct pro-
3.7. Exemple 47
[a,b,s]=feval(BT);
c=sum(a’);
h=(tspan(end)-tspan(1))/N; %lungime pas
xc=tspan(1); yc=alpha(:);
x=xc; y=yc’;
K=zeros(length(alpha),s);
for k=1:N %iteratia RK
K(:,1)=feval(f,xc,yc);
for i=2:s
K(:,i)=feval(f,xc+c(i)*h,yc+h*(K(:,1:i-1)*...
a(i,1:i-1)’));
end
yc=yc+h*(K*b);
xc=xc+h; %pregatesc iteratia urmatoare
x=[x;xc]; y=[y;yc’];
end
if nargout==3
nfev=s*N;
end
cu condiţiile iniţiale
susţin aceeaşi concluzie. Deşi curbele de eroare pentru ordinele 3 şi 4 se in-
tersectează, aşa cum a sugerat figura 3.3, trebuie notat că precizia pentru care
formula de ordin mic este mai economică este chiar mică. Din nou acesta este un
rezultat tipic. Utilizarea formulelor de ordin mic nu este probabil să fie eficientă
dacă se cere precizie şi singura justificare de utilizare a formulelor de ordinul 3
este obţinerea unei soluţii grosiere pe un interval mic al variabilei independente.
În practică, formulele RK4 ar putea fi considerate de ordin mic.
Comentariile de mai sus ar putea surprinde acei cititori care sunt adepţi ai re-
zolvitorilor ,,simpli”. În aceste zile când se când se dispune de microcalculatoare
puternice, de ce nu evităm complicaţiile implementării unor algoritmi sofisticaţi
ı̂n favoarea efectuării unui număr mare de paşi simpli, să zicem ai metodei lui
Euler? Înainte de toate se ştie că orice proces RK consistent este convergent şi
calculul unui milion de paşi nu durează foarte mult. Pentru a răspunde la această
problemă să rezolvăm o problemă simplă de test
cu metoda lui Euler. Rezultatele apar ı̂n tabela 3.4. Înjumătăţirea pasului are
efectul predictibil de ı̂njumătăţire a erorii globale. Totuşi dacă numărul de paşi
50 Metode Runge-Kutta
creşte foarte mult, eroarea de rotunjire poate depăşi eroarea metodei, chiar şi ı̂n
dublă precizie.
Deoarece formulele de ordin ı̂nalt necesită mai puţine operaţii ele sunt mai
puţin afectate de erorile de rotunjire. Rezultatul aplicării metodei RK45M e-
cuaţiei (3.15) sunt arătate ı̂n tabelul 3.5. Întâi, trebuie accentuat că formula de
ordinul 4 dă rezultate mai precise ı̂n numai 20 de paşi decât ı̂n metoda lui Euler cu
25000 de paşi. Implicaţiile rezultatelor de mai sus sunt clare: este puţin probabil
ca metodele cu ordin foarte mic (p < 4) să dea rezultate foarte precise, indiferent
de efortul de calcul şi ele trebuie pe cât posibil evitate.
3.8. Probleme 51
3.8 Probleme
Problema 3.8.1. Găsiţi soluţia numerică ı̂n x = 0.4 pentru h = 0.2 şi h = 0.4 a
ecuaţiei
y0 = 1 − y2, y(0) = 0,
cu integratori (a) RK2, (b) RK3 (c) RK4. Calculaţi ı̂n fiecare caz eroarea globală
ε utilizând soluţia exactă
e2x − 1
y(x) = 2x
e +1
şi confirmaţi faptul că este consistentă cu predicţia că ε = O(hp ), pentru o for-
mulă de ordin p. Consideraţi de asemenea eroarea locală la primul pas ı̂n fiecare
caz.
Problema 3.8.2. Arătaţi că numărul de parametrii RK independenţi ı̂ntr-o for-
mulă cu s stadii este ηs = s(s + 1)/2.
Problema 3.8.3. Construiţi o metodă RK3 cu trei stadii cu c2 = c3 .
Obţineţi parametrii RK pentru formula generală dedusă ı̂n §3.4 pentru cazul
c2 = 5/14, c3 = 13/22.
Problema 3.8.4. Aplicaţi relaţiile Butcher (3.13) coeficienţilor de eroare de or-
(5)
dinul 5 pentru a arătă că, ı̂n aceste condiţii, τi , i = 5, 7, 8, 9 depind de alţi
coeficienţi. Aplicaţi al doilea set de condiţii de simplificare (3.14) altor coefi-
cienţi convenabili de ordinul al 5-lea. În particular arătaţi că
s
(5) (5) 1 X
τ6 = τ4 − c22 bi ci ai,2 .
2
i=1
ci aij bi
1
0 6
1 1 1 (3.16)
2 2 3
1 1 1
2 0 2 3
1
1 0 0 1 6
aparţine acestei clase. Găsiţi coeficienţii erorii principale a acestei formule şi
comparaţi norma erorii sale cu norma altor metode de ordinul 4 din text.
52 Metode Runge-Kutta
Problema 3.8.6. Cele trei tabele de mai jos ilustrează numărul de evaluăr de
funcţii F = N s şi eroarea globală corespunzătoare ε la sfârşitul aplicării a trei
metode RK pentru aceeaşi ecuaţie diferenţială. Estimaţi ordinul metodei RK din
fiecare tabelă.
F log10 ε F log10 ε F log10 ε
2221 -2.31 3801 -4.93 4533 -7.22
2833 -3.44 4689 -6.04 5632 -7.72
4039 -4.43 6801 -7.17 6018 -8.45
6385 -5.44 9953 -8.27 7648 -9.96
10105 -6.48 14593 -9.36 10108 -10.65
Problema 3.8.7. Obţineţi formule pentru o familie de procese RK4 ı̂n 5 stadii
conform
P5 schemei descrise ı̂n §3.4. Pentru a simplifica soluţia impuneţi condiţia
i=3 bi ci ai,2 = 0 şi arătaţi că aceasta face coeficienţii erorii independenţi de
c2 . Deduceţi de aici sau altfel, că formula cu 5 stadii nu poate fi de ordinul al
cincilea. Găsiţi o formulă cu norma erorii mai mică decât RK45M.
(a) y 0 = 41 y 1 − 20 1
y , x ∈ [0, 20], y(0) = 1, cu soluţia exactă y(x) =
20/ 1 + 19e−x/4 .
Aplicaţi formule de ordinul al treilea şi al patrulea fiecărei probleme ı̂n intervalul
specificat, pentru lungimi ale pasului din ce ı̂n ce mai mici ı̂ncepând cu h = 1.
Includeţi procesul din problema 3.8.5 ı̂n testele dumneavoastră. Tabelaţi eroarea
globală maximă, peste toţi paşii şi variabilele şi costul de calcul ı̂n timpi CPU şi
evaluări de funcţii.
Problema 3.8.9. Determinaţi cea mai mică eroare globală posibilă ı̂n x = 10
când metoda lui Euler se aplică ecuaţiei
y 0 = y cos x, y(0) = 1
pentru h = 0.1 şi x ∈ [0, 2π]. Desenaţi graficele lui 2 y ı̂n funcţie de 1 y şi
respectiv 3 y şi 4 y ı̂n funcţie de x (orbita va fi o elipsă cu excentricitatea 0.5).
54 Metode Runge-Kutta
Capitolul 4
Controlul pasului
4.1 Introducere
În capitolul precedent am examinat unele proprietăti ale metodelor Runge-
Kutta aplicate pentru paşi constanţi. De asemenea, valoarea lungimii pasului
a fost aplicată ı̂ntr-o manieră arbitrară, deşi variaţia sa ilustrează proprietăţile
legate de ordin ale diverselor scheme.
Utilizarea aritmeticii de precizie cu lungimi mici ale pasului conduce la
soluţii precise pentru problemele simple abordate. Pentru multe probleme prac-
tice, pasul constant nu este recomandat, deoarece derivatele pot varia foarte mult
ı̂n mărime. Dacă lungimea pasului este constantă, este foarte probabil ca proce-
sele RK sau de alt tip să furnizeze erori locale care să varieze de la pas la pas
conform variabilităţii funcţiei de eroare. Intuiţia ne spune ca o astfel de caracte-
ristică nu este de dorit. O propunere mai atractivă ar fi o soluţie ale cărei erori
locale să varieze puţin sau eventual proporţional cu lungimea pasului. Din expre-
sia matematică a erorii locale de trunchiere, se poate vedea că aceste proprietăţi
implică variaţii ale dimensiunii pasului.
Pentru orice metodă, relaţia ı̂ntre eroarea locală şi dimensiunea pasului este
bine cunoscută şi cele mai cunoscute scheme de predicţie a lungimii pasului fac
uz de ea. În loc să fixăm lungimea pasului, se face o ı̂ncercare de a delimita eroa-
rea locală (de trunchiere) şi această delimitare este utilizată pentru a determina
dimensiunea pasului. Ideal, ar fi de preferat o margine a erorii globale, dar, ı̂n
practică, eroarea locală este mult mai uşor de estimat. Rezultatele practice con-
firmă faptul că controlul erorii locale conduce la controlul erorii globale. Acest
capitol este consacrat schemelor de estimare a erorii şi controlului lungimii pa-
sului.
O altă restricţie care afectează dimensiunea pasului este o anumită frecvenţă
55
56 Controlul pasului
unde δn+1 este o estimare a erorii locale en+1 . Se poate utiliza orice normă,
dar de obicei se preferă norma maximului. În acest caz raportul a două funcţii
principale de eroare se alege astfel ca
1
θ p+1 = 0.9.
Valoarea 0.9 este un factor de siguranţă tipic şi este efectivă ı̂n multe aplicaţii.
Nu toţi autorii fac aceeaşi alegere, dar valoarea precisă a lui θ serveşte doar
pentru modificarea toleranţei efective. Termenii parametru al strategiei şi factor
de reducere optimal se aplică ı̂n acelaşi context. Desigur, nevoia unui astfel de
parametru derivă din natura non-asimptotică a procesului numeric pentru valori
mari ale lui hn decurgând din toleranţe largi. Aceasta este adevărat ı̂n particular
când se aleg procese de ordin ı̂nalt (p mare).
Procesul de integrare continuă cu pasul n + 1 de lungime dată de eqrefec5.3
numai dacă kδn+1 k ≤ T . Dacă kδn+1 k > T , eroarea locală este prea mare
pentru a fi acceptată şi pasul trebuie respins. Din fericire, aceeaşi formulă (4.3)
este utilă pentru a estima lungimea redusă a pasului pentru aplicare repetată, care
lungime trebuie să fie mai mică decât hn . Pentru valori mari ale lui kδn+1 k/T se
poate presupune că pasul este prea mare pentru a justifica comportarea asimpto-
tică şi atunci se reduce lungimea ı̂ntr-o manieră arbitrară, probabil cu un factor
egal cu 2 sau chiar cu un ordin de mărime.
Au fost concepute şi scheme mai sofisticate, bazate pe estimări ale erorii
pentru doi sau mai mulţi paşi succesivi. Acestea au fost incluse ı̂n unele pachete
de rezolvare a ecuaţiilor diferenţiale, dar metodele mai simple descrise mai sus
sunt foarte robuste şi cu eficienţă rezonabilă, ı̂n particular dacă se pun restricţii
asupra factorului de amplificare al pasului. Vom da mai târziu un exemplu de
acest tip.
h3n 000
δn+1 = y ,
6 n
care va servi ca estimator al erorii. Derivatele de ordin superior sunt
3 3 51
y00 = − , y000 = , y(0)000 = ,
8 32 128
aşa că soluţia de ordinul al doilea este
3 3 1
y1 = 0.5 − · (0.2) + · (0.2)3 = 0.426875,
8 32 2
cu eroarea locală principală
51 1
δ1 = · (0.2)3 = 0.531 × 10−3 .
128 6
Deoarece |δ1 | < T , pasul este acceptabil şi vom folosi (4.3) pentru a calcula
lungimea h1 a pasului următor. Aceasta ne dă
şi ı̂nlocuind ı̂n seria Taylor extrapolată de ordinul al treilea obţinem rezultatul
yb2 = 0.354099. Eroarea estimată pentru rezultatul de ordinul al doilea este
δ2 = 0.0004422, care este mai mică decât toleranţa şi deci acceptabilă. Înlocuid
eroarea estimată ı̂n formula (4.3) se obţine următoarea lungime de pas, (h2 =
0.262590) ş.a.m.d. Este important să se compare erorile celor două estimaţii ale
lui y(0.422284). Acestea sunt
Figura 4.1: Comparaţie ı̂ntre soluţia exactă şi cele două moduri de rezolvare
numerică bazate pe serii Taylor
Ea diferă de problema anterioară numai prin condiţia iniţială. Soluţia exactă este
p
y(x) = 1/ 1 + 3e2(x−5) .
Ca mai ı̂nainte, seriile Taylor de ordinul 2/3 se aplică ı̂n fiecare din cele două
moduri. Figura 4.1 ilustrează cele două soluţii exacte şi soluţia numerică, pentru
T = 10−3 şi h0 = 1. Superioritatea extrapolării locale este vizibilă clar.
Caracteristic pentru problema de test este că ea necesită creşterea şi des-
creşterea lungimii pasului pe intervalul dat. De asemenea, apar şi respingeri de
pas. În cazul extrapolării avem 25 de paşi cu succes şi 8 respingeri, iar ı̂n cazul
rezolvării fără extrapolare 25 şi 7. Cele două secvenţe de lungimi de pas sunt
foarte asemănătoare şi ele apar ı̂n figura 4.2. Costurile de calcul sunt aproape
identice. Programul M ATLAB utilizat la generarea celor două figuri se dă la
sfârşitul secţiunii.
Trebuie accentuat că ı̂n strategia de extrapolare locală nu se estimează eroa-
rea locală a formulei utilizate pentru actualizarea soluţiei. Totuşi, este posibil
ca eroarea locală adevărată să fie mai mică decât toleranţa cu care se lucrează.
62 Controlul pasului
Dacă acest lucru nu este adevărat, s-ar putea să apara necazuri pentru operaţiile
neextrapolate aplicate aceleiaşi ecuaţii.
Fiecare din cele două moduri de operare poate fi exprimat cu ajutorul a două
formule de ordine diferite. Pentru extrapolarea locală perecea de formule poate
fi scrisă sub forma cu increment
ybn+1 = ybn + hn Φ
b (xn , ybn , hn ) ,
(4.5)
yn+1 = yn + hn Φ (xn , yn , hn ) ,
şi pentru concordanţă asimptotică cerinţa este en+1 ebn+1 . Cu alte cuvinte,
termenul de eroare principală trebuie să fie dominant pentru a justifica formula
(4.3) de predicţie a pasului. Această condiţie va avea loc dacă lungimea pasului
este suficient de mică, dar, când se dă o toleranţă mare, predicţiile imprecise pot
cauza multe respingeri de pas.
4.4. Extrapolare locală 63
function [x,y,h]=TaylorVarStep(f,a,b,y0,tol,h0,n,locext)
% Rezolvarea EDO - metoda seriilor Taylor cu pas variabil
% apel [x,y,h]=TaylorVarStep(f,a,b,y0,tol,h0,n)
% f - membrul drept
% a,b - intervalul
% y0 - valoarea de pornire
% tol - toleranta
% h0 - pas initial
% n - ordinul de derivare
% locext - boolean, extrapolare locala
% x,y - solutia
% h - secventa de pasi
x=a; y=y0; yc=y; xc=x; h=h0; hc=h;
reject=0;
while xc<b
yd=Derivs(f,xc,yc,n);
w=yc+hc*(yd(1)+1/2*hc*yd(2));
delta=hcˆ3*yd(3)/6;
h1=0.9*hc*(tol/abs(delta))ˆ(1/n)
if (abs(delta)<tol) %actualizare
xc=xc+hc;
if (locext) %extrapolare locala
yc=w+delta;
else
yc=w; %fara extrapolare
end %if
x=[x;xc]; y=[y;yc]; h=[h;hc];
else %respingere
reject=reject+1;
end %if
hc=h1; %pas nou
end %while
fprintf(’%d pasi respinsi\n’,reject)
%------------
function yd=Derivs(f,x,y,n)
yd(1)=feval(f,x,y);
ff=3*y.ˆ2-1;
yd(2)=ff.*yd(1);
yd(3)=6*y.*yd(1).ˆ2+ff.*yd(2);
%------------
function z=mdtaylor(x,y)
z=y.ˆ3-y;
64 Controlul pasului
ci aij bbi bi
1 1
0 6 2
1 1 2
2 2 3 0
1 1
1 -1 2 6 2
b1 + b2 + b3 = 1,
1
b2 c2 + b3 c3 = ,
2
care au un parametru liber când valorile lui c2 şi c3 sunt determinate. Pentru o
formulă simplă, se ia b2 = 0 şi se obţine b1 = b3 = 21 . Perechea RK3(2) rezul-
tată este dată sub forma unei tabele Butcher modificate ı̂n tabela 4.1. Pentru a
figura perechea inclusă, se adaugă o coloană suplimentară ce conţine coeficienţii
b ai formulei de ordin mai mic. În această abordare, procesul de control al pa-
sului se poate realiza la un cost foarte mic. Să aplicăm RK3(2) aceleiaşi ecuaţii
diferenţiale utilizate pentru a ilustra estimarea erorii şi controlul pasului ı̂n me-
4.5. Estimarea erorii ı̂n metodele Runge-Kutta 65
ca, pentru anumite probleme, diferenţa ı̂ntre ordinele perechilor să nu poată fi
menţinută. Aceasta ar putea invalida formula (4.3) pentru controlul pasului. În
general, perechea inclusă de formule RK când se utilizează extrapolarea locala
ar putea fi exprimată sub forma
s
X
ybn+1 = ybn + hn bbi fi ,
i=1
s
X
yn+1 = ybn + hn bi fi , (4.7)
i=1
i−1
X
fi = f xn + ci hn , ybn + hn aij fj , i = 1, 2, . . . , s.
j=1
ci aij bbi bi
1 1 5
0 8 8 + 4 b5
1 1 3 3 3
3 3 8 8 − 4 b5
2
3 − 31 1 3
8
3
8 − 3
4 b5
1 1 3
1 1 -1 1 8 8 − 4 b5
1 3 3 1
1 8 8 8 8 0 b5
4
!
X
= f xn + hn , ybn + hn bbi fi
i=1
4
X
= f xn + c5 hn , ybn + hn a5j fj ,
j=1
iar perechea inclusă RK4(3), având pe b5 ca parametru liber, este definită ı̂n ta-
bela 4.2 Valorile lui b5 trebuie alese astfel ca să furnizeze un ordin de mărime
acceptabil. Utilizând un astfel de proces primul pas va necesita 5 stadii, dar
următorii paşi vor necesita numai patru, care este minimul pentru o metodă de
ordinul 4. Ca urmare a respingerii unui pas, se irosesc patru stadii de calcul, com-
parativ cu numai trei stadii pentru o formulă non-FSAL cu patru stadii. Exemplul
dat aici nu este recomandat pentru uz general, deoarece formula de ordinul al trei-
lea are un set incomplet de coeficienţi ai erorii principale. Este uşor de verificat
(4)
că pentru această formulă τ1 = 0, ı̂nsemnând că pentru anumite probleme are
ordinul 4. Deoarece pentru controlul pasului este important ca perechea inclusă
să aiba ordine diferite, perechea din tabela 4.2 nu este de ı̂ncredere. Pentru o
metodă RK4 cu cinci stadii ca cea din tabela 3.2 construirea unui proces de ordin
68 Controlul pasului
ci aij bi
b bi
13 23
0 96 192
1 1
5 5 0 0
2 2 25 55
5 0 5 48 96
4 6
5 5 − 12
5 2 25
96
35
192
1 − 17
8 5 − 52 5
8
1
12
1
8
cj aij bi
b bi
35 5179
0 384 57600
1 1
5 5 0 0
3 3 9 500 7571
10 40 40 1113 16695
4 44 56 32 125 393
5 45 − 15 9 192 640
8 19372
9 6561 − 25360
2187
64448
6561 − 212
729
2187
− 6784 92097
− 339200
9017
1 3168 − 355
33
46732
5247
49
176
5103
− 18656 11
84
187
2100
35 500 125
1 384 0 1113 192 − 2187
6784
11
84 0 1
40
Figura 4.4: Erorile globale pentru problema orbitei e = 0.5, x ∈ [0, 20]
ı̂n cazul pasului variabil decât ı̂n cazul paşilor constanţi, dar nu este asă; se poate
arăta că inegalitatea (2.24)
|εn+1 | ≤ |εn |(1 + hL) + M, |tn+1 | ≤ M = Ahp+1 ,
este ı̂ncă valabilă dacă h = maxn (hn ) este cea mai mare lungime de pas. Astfel,
74 Controlul pasului
Figura 4.6: Variaţia erorii globale ı̂n funcţie de cost ı̂n problema orbitei, e = 0.5
|εn | ≤ Bhp ,
RK4(3)5M RK5(4)7FM
log T Nf Nr kεk log T Nf Nr kεk
-3 371 15 0.035852 -4 409 17 0.021658
-4 615 21 0.0020356 -5 589 24 0.0011022
-5 922 4 8.6117e-005 -6 823 26 7.4143e-005
-6 1620 1 1.1675e-005 -7 1183 26 1.1848e-005
-7 2875 1 1.5143e-006 -8 1609 1 1.1344e-006
-8 5110 1 1.6899e-007 -9 2545 1 1.3861e-007
-9 9085 1 1.7844e-008 -10 4033 1 1.3645e-008
-10 16154 2 1.8449e-009 -11 6391 1 1.2934e-009
%y - ordinates
%stat - statistics
statflag=(nargout==3);
[a,b,bcap,c,s,oop,fsal]=feval(BT); %tabela Butcher
if statflag %statistici
stat=struct(’ns’,0,’nrej’,0,’nfunc’,0,’sh’,[]);
end
%initializari
sf=0.6;
x=tspan(1); xend=tspan(end);
y=y0(:);
ttol=tol*sf;
h=hs;
xs=x; ys=y’;
if statflag, stat.sh=h; end
f(:,1)=feval(Fcn,x,y);
if statflag, stat.nfunc=1; end
done=0;
while ˜done %loop over steps
for i=2:s
f(:,i)=feval(Fcn,x+c(i)*h,y+h*f(:,1:i-1)*...
(a(i,1:i-1)’));
end
if statflag, stat.nfunc=stat.nfunc+s-1; end
delta=h*max(abs(f*(bcap-b))); %local error
alpha=(delta/ttol)ˆoop; %step ratio
if delta<tol %accpts step
y=y+h*f*b;
x=x+h;
if statflag, stat.ns=stat.ns+1; end
if done, return; end
if fsal
f(:,1)=f(:,s);
else
f(:,1)=feval(Fcn,x,y);
if statflag, stat.nfunc=stat.nfunc+1; end
end
h=h/max(alpha,0.1); %update step
if x+h > xend
h=xend-x;
done=1;
end
else
if statflag, stat.nrej=stat.nrej+1; end
4.8. Exemple de implementare 77
statflag=(nargout==3);
[a,b,bcap,c,s,oop,fsal]=feval(BT); %tabela Butcher
if statflag %statistici
stat=struct(’ns’,0,’nrej’,0,’nfunc’,0,’sh’,[]);
end
%initializari
done=0; sf=0.6; ttol=tol*sf;
h=hs; y=y0(:);
x=tspan(1); xend=tspan(end);
xs=x; ys=y’;
f=zeros(length(y0),s);
f(:,1)=feval(Fcn,x,y); %prima evaluare
if statflag
stat.nfunc=stat.nfunc+1;
end
while ˜done %forever
for i=2:s
f(:,i)=feval(Fcn,x+c(i)*h,y+h*...
(f(:,1:i-1)*a(i,1:i-1)’));
end
if statflag
stat.nfunc=stat.nfunc+s-1;
78 Controlul pasului
end
delta=h*max(abs(f*(b-bcap))); %eroarea locala
alpha=(delta/ttol)ˆoop; %raportul pasilor
if delta < tol %pas acceptat
y=y+h*(f*bcap); %actualizare solutie
%y=y+h*(f*b); %actualizare solutie
x=x+h;
if statflag
stat.ns=stat.ns+1;
stat.sh=[stat.sh;h];
end
xs=[xs;x]; ys=[ys;y’]; %iesire
if done
return
end
if fsal
f(:,1)=f(:,s); %reutilizare
else
f(:,1)=feval(Fcn,x,y);
if statflag
stat.nfunc=stat.nfunc+1;
end
end
h=h/max(alpha,0.1); %predictie pas
if x+h>xend %capatul
h=xend-x;
done=1;
end
else
if statflag
stat.nrej=stat.nrej+1;
end
h=h/min(alpha,10);
if done
done=0;
end
end
end
Figurile şi tabelele din secţiunea 4.7 au fost generate utilizând aceste funcţii
M ATLAB. În fine, dăm fişierele .M pentru obţinerea soluţiei exact, care rezolvă
ecuaţia lui Kepler cu ajutorul metodei lui Newton.
function [y,E]=exactsol(x,e,er)
%solutia exacta a ecuatiei orbitei
4.9. Probleme 79
%x - punctele
%e -execentricitatea
for k=1:length(x)
E(k)=kepler(x(k),e,x(k),er,100);
end
E=E(:);
rr=sqrt(1-eˆ2);
y(:,1)=cos(E)-e;
y(:,2)=rr*sin(E);
y(:,3)=sin(E)./(e*cos(E)-1);
y(:,4)=rr*cos(E)./(1-e*cos(E))
function z=Kepler(x,e,x0,er,nmax)
E=zeros(nmax+1,1);
E(1)=x0;
for k=1:nmax
E(k+1)=E(k)-(E(k)-e*sin(E(k))-x)/(1-e*cos(E(k)));
if abs(E(k)-E(k+1))<er
z=E(k+1);
return
end
end
error(’prea multe iteratii’)
4.9 Probleme
Problema 4.9.1. Utilizaţi includerea RK3(2) dată ı̂n tabela 4.1 pentru a calcula
doi paşi ai soluţiei pentru
y 0 = y 3 − y, y(0) = 0.5,
utilizând un pas de pornire h = 0.1 şi o toleranţă absolută T = 10−4 .
Problema 4.9.2. Scrieţi coeficientul erorii principale pentru o formulă arbitrară
de ordinul al doilea cu trei stadii. Presupunând că formula este inclusă ı̂n formula
de ordinul 3 (3.8) rezolvaţi ecuaţiile relevante de condiţie pentru procesul dum-
neavoastră de ordinul al doilea ı̂n funcţie de b2 şi simplificaţi astfel coeficienţii de
eroare. Consideraţi efectul alegerii lui b2 asupra procedurii de control al pasului.
Utilizaţi ecuaţia diferenţială din problema precedentă pentru a ilustra situaţia.
Problema 4.9.3. Să se considere construcţia unei formule de ordinul al treilea
pentru includere ı̂ntr-un proces RK de ordinul al patrulea cu patru stadii. Arătaţi
că expresiile parametrului a32 ı̂n formula de ordinul al treilea cu trei stadii şi for-
mula de ordinul al patrulea cu patru stadii sunt incompatibile. Să se reconsidere
problema când când se adaugă un stadiu FSAL la formula RK44M (3.1).
80 Controlul pasului
Problema 4.9.4. Arătaţi că toţi coeficienţii erorii de ordin mic ı̂n formulele
RK4(3)5M şi DORPRI5 sunt nenului.
Problema 4.9.5. Arătaţi că inegalitatea pentru eroarea globală
Problema 4.9.8. Căpitanul Kirk1 şi echipajul său de pe nava spaţială Enterprise
au eşuat fără energie pe orbita din jurul unei planetei de tip Pământ Capella
III, la o altitudine de 127 de km. Frânarea atmosferică cauzează scăderea or-
bitei, şi dacă nava atinge straturile dense ale atmosferei, frânarea excesivă şi
ı̂ncălzirea datorată frecării va cauza daune ireparabile sistemului de ı̂ntreţinere a
vieţii. Ofiţerul ştiinţific, Mr Spock, estimează că reparaţiile temporare la motoa-
rele de impuls vor necesita 29 de minute cu condţia ca ele să fie terminate ı̂nainte
ca frânarea să crească la 5g (1g = 9.81ms−1 ). Deoarece Mr Spoc este un geniu
matematic, el a decis să simuleze degradarea orbitei prin rezolvarea numerică
a ecuaţiilor de mişcare cu perechea de metode incluse DORPRI5. Ecuaţiile de
mişcare ale navei, ı̂n condiţiile frânării atmosferice, sunt date de
dv GM sin γ
= 2
− cρv 2
dt r
dγ GM cos γ
= −v
dt rv r
dz
= −v sin γ
dt
dθ v cos γ
= ,
dt r
unde
θ este longitudinea;
Problema 4.9.9. Cometa Halley şi-a atins ultima dată periheliul (apropierea ma-
ximă de soare la 9 februarie 1986. Poziţia şi componentele vitezei ı̂n acel mo-
ment erau
d2 x µx
= − ,
dt2 r3
d2 y µy
= − 3,
dt2 r
d2 z µz
= − 3,
dt2 r
p
unde r = x2 + y 2 + z 2 , µ = 4π 2 , iar perturbaţiile planetare au fost negli-
jate. Rezolvaţi aceste ecuaţii numeric pentru a determina aproximativ momentul
următorului periheliu.
Capitolul 5
Ieşiri dense
5.1 Introducere
83
84 Ieşiri dense
unde notaţiile sunt cele uzuale. În acest capitol se presupune că forma este cea
imbricată şi, deşi formula (5.1) se ia a fi una dintre perechi, nu s-a pus deasupra
căciula pentru simplificare. Totuşi se presupune că toate formulele vor fi utili-
zate ı̂n modul extrapolare locală. Considerăm o nouă formulă bazată pe aceeaşi
valoare iniţială
s∗
X
∗ ∗
yn+1 = yn + h b∗i fi∗ ,
i=1
cu o lungime a pasului h∗= σh, σ ∈ [0, 1]. Aceasta furnizează o soluţie nume-
∗
rică ı̂n x = xn + σh. Ca de obicei, se definesc evaluările de funcţie prin
i−1
X
fi∗ = f xn + c∗i h, yn + h∗ a∗ij fj∗ , i = 1, 2, . . . , s.
j=1
care ne asigură că fi∗ ≡ fi . În consecinţă, noile soluţii presupun aceleaşi evaluări
de funcţii ca ı̂n formula (5.1) şi poate fi scrisă sub forma
s ∗
X
∗
yn+1 = yn+σ + σh b∗i fi . (5.2)
i=1
Presupunând că valoarea lui yn+1 a fost calculată cu formula (5.1), valorile lui
fi vor fi disponibile pentru utilizare ı̂n (5.2). Dacă s∗ ≤ s, nu va fi necesară
nici o nouă evaluare de funcţie; totuşi, exceptând cazurile metodelor de ordin
foarte mic, vor fi necesare stadii noi. Soluţiile ecuaţiilor adecvate de condiţie
vor conduce la ponderi b∗i = b∗i (σ), care depind de parametrul de interpolare
σ şi deci trebuie recalculate pentru fiecare nou punct de ieşire x∗ . Pentru cele
mai multe probleme, acest cost este mic comparativ cu evaluările de funcţii. De
asemenea b∗i sunt valabile pentru toate componentele sistemului de rezolvat.
Să ilustrăm construcţia unei formule cu ieşiri dense considerând o extensie a
bine cunoscutului proces optimal RK2 dat ı̂n tabela 5.1. Este natural să impunem
5.2. Construcţia extensiilor continue 85
ci aij bi
1
0 4
2 2 3
3 3 4
b∗1 + b∗2 = 1
1
b∗2 c∗2 = ,
2
şi punând c∗2 = c2 /σ, pentru a ne asigura evaluări de funcţii comune cu cele din
tabela 5.4, a două ecuaţie devine
1
b∗2 c2 = σ.
2
2
Înlocuind valoarea obţinută c2 = 3 din tabela 5.4 se obţin soluţiile
3 3
b∗2 = σ, b∗1 = 1 − σ.
4 4
Formula RK, completată cu extensia continuă este dată ı̂n tabela 5.2. Pentru a
calcula o soluţie intermediară, valoarea adcevată a lui σ se ı̂nlocuieşte ı̂n coloana
din dreapta. Asfel, pentru un punct situat la ,,mijloc” x∗ = xn + 21 h, valoarea
corespunzătoare este σ = 12 , se obţine formula de ordinul al doilea
1 5 3
yn+ 1 = yn + h f1 + f2 ,
2 2 8 8
unde f1 şi f2 au fost deja calculate ı̂n cadrul pasului normal. În tabela 5.3 se dă
un exemplu numeric ı̂n care se calculează soluţia ı̂n patru puncte. Toate utilizează
aceleaşi perechi de valori f .
Pentru procese de ordin ı̂nalt câştigul extensiilor continue va fi mai mare.
Totuşi, deducerea acestor formule este mai dificilă deoarece ecuaţiile de condiţie
86 Ieşiri dense
1 + 34 σ f1 + 34 σf2
yn+σ = yn + σh
x σ yn+σ y(x)
0.15 1 0.8815 0.8777
1
0.075 2 0.9329 0.9326
1
0.05 3 0.9535 0.9535
2
0.10 3 0.9140 0.9131
cresc mult mai rapid decât numărul de stadii implicate. Deoarece aij sunt deja
determinaţi, numai b∗i sunt disponibili pentru a satisface ecuaţiile de condiţie.
Acesata sugerează că vor fi necesare cel puţin patru stadii pentru a obţine o ex-
tensie continuă de ordinul al treilea. De fapt, construcţia unei formule cu ieşiri
dense necesită stadii suplimentare pentru a furniza parametrii necesari. Pentru
a demonstra această caracteristică vom folosi o formulă de ordinul al treilea,
RK3M, dată ı̂n tabela (3.7) şi repetată aici:
ci aij bi
2
0 9
1 1 1
2 2 3
3 3 4
4 0 4 9
şi astfel numărul minim de stadii trebuie să fie s∗ = 4. Cele mai convenabile
alegeri pentru parametrii celui de-al patrulea stadiu sunt
c4 = 1, a4j = bj , j = 1, 2, 3,
b∗i = bi , i = 1, . . . , 4.
Aceeaşi proprietate se observă şi pentru formula de ordinul al doilea dată ı̂n
tabela 5.1. Diferenţiind formula de ordinul al treilea ı̂n raport cu x se obţine
0 8 5 2 8
yn+σ = 1 − σ + σ f1 + 2σ(1 − σ)f2 + σ(1 − σ)f3 + σ(3σ − 2)f4 ,
3 3 3
88 Ieşiri dense
şi astfel
0
yn+0 = f1 = f (xn , yn )
0
yn+1 = f4 = f (xn+1 , yn+1 ).
Astfel derivata soluţiei cu ieşiri dense este continuă. Această proprietate este
una necesară pentru modelul FSAL ales mai sus, dar ı̂n alte cazuri, când soluţia
ecuaţiei de condiţie nu este unică, nu este nevoie să fie verificată. Pentru un
model non-FSAL proprietatea C 1 nu poate fi obţinută ı̂n general. Costul su-
plimentar al unei formule FSAL comparativ cu al uneia non-FSAL este foarte
mic: este necesară doar o singură evaluare suplimentară de funcţie care apare la
primul pas. Totuşi, respingerle de pas vor implica costuri suplimentare când se
utilizează un stadiu suplimentar ı̂n estimarea erorii ca ı̂n DORPRI5.
Condiţiile generale care trebuie satisfăcute de b∗i (σ) astfel ca interpolantul
dens (5.2) să fie de clasă C 1 sunt
b̂i , i ≤ s;
b∗i = (5.3)
0, s < i ≤ s∗
şi
0, i 6= sF ;
d∗i = (5.4)
1, i = sF
unde
d
d∗i (σ) = (σb∗i (σ)) ,
dσ
iar i = sF indică stadiul FSAL al perechii RK ce presupune extrapolare locală.
1 3
b∗1 = 1 − σ + b∗3 , b∗2 = σ − b∗3 . (5.5)
2 2
Această soluţie nu poate realiza continuitatea C 1 , dar alegerea b∗3 = 94 σ a pa-
rametrului liber ne va asigura că interpolantul este de clasă C 0 . Dacă se adugă
stadiul FSAL ar fi posibil să se asigure continuitatea primei derivate, dar atunci
n-ar fi nici un motiv să evităm satisfacerea unei condiţii suplimentare de ordin şi
să creştem astfel ordinul la 3.
Alegerea b∗3 = 94 σ ne conduce la o soluţie continuă globală, dar s-ar putea
să nu dea o funcţie de eroare principală mică pentru σ ∈ [0, 1]. Reamintind
construcţia formulei Runge-Kutta discrete din capitolul 3 s-a găsit că este van-
tajos să se aleagă parametrii liberi astfel ca să se minimizeze coeficienţii erorii
principale. Pentru o extensie continuă eroarea locală de trunchiere se poate ex-
prima ca
∞
X
tn+σ = (σh)i ϕ∗i−1 (xn , y(xn ), σ). (5.6)
i=p∗ +1
unde τjp este un coeficient al erorii bazat pe ponderile b∗i . O formulă optimală va
minimiza norma erorii
∗
A(p) (σ) = σ p kτ (p) k2 . (5.8)
Pentru formula densă de ordinul al doilea (5.5) norma erorii este
r
(3)∗ 2 (3)∗ 2
A(3) (σ) = σ 3 τ1 + τ2 .
90 Ieşiri dense
Aici este implicat doar un singur parametru b∗3 şi astfel, urmându-l pe Shampine[18],
coeficienţii erorii pot fi scrişi sub forma
(3)∗
τj = ξj (σ) + ρj (σ)b∗3 , j = 1, 2,
şi norma erorii va fi minimizată dacă
3
X 2
X
b∗3 = − ζj ρj / ρ2j .
j=1 j=1
Figura 5.1: Componentele erorii globale pentru x ∈ [1.5, 2.5] ı̂n problema
gravitaţională a celor două corpuri cu e = 0.2, utilizând trei procese cu ieşiri
dense.
norma erorii principale pentru metoda RK discretă. Ştiind că extensia continuă
este construită pentru a evita necesitatea unor paşi suplimentari ı̂n formula dis-
cretă, ne vom aştepta ı̂n cel mai bun caz ca
∗ +1)
A(p (σ) = σ p+1 A(p+1) , 0 < σ < 1, (5.10)
se realizează de parametrii chiar similari celor care conduc la cea mai apropiată
relaţie de ecuaţia (5.10) de mai sus.
92 Ieşiri dense
Figura 5.2: Variaţia normei erorii A(4) pentru formula densă din tabela 5.4
Spre doesebire de cazul când aveam ordinul trei, există mai mulţi parametrii
decât condiţii şi de aceea este necesar să se utilizeze un criteriu adecvat, cum ar fi
minimizarea integralei (5.11), pentru a-i alege. Formula densă dată ı̂n tabela 5.5
este o aproximare bună a celei optimale pentru RK4(3)5M. La fel ca ı̂n cazurile
discrete uzuale, s-au selectat valori raţionale simple care le aproximează pe cele
optimale. Proprietăţile de continuitate ale soluţiei obţinute prin interpolare sunt
identice cu cele ale formulei dense de ordinul al treilea pentru RK3M. De fapt,
formula din tabela 5.5 are cu un stadiu mai mult decât minimul necesar pentru o
metodă RK4 continuă. la construcţia perechii de ordinul al patrulea RK4(3)5M,
s-au utilizat ipotezele simplificatoare (3.13), (3.14), dar ı̂n plus se poate aplica
condiţia suplimentară
i−1
X 1
aij c2j = c3i , i = 3, . . . , s. (5.13)
3
j=1
(4)
Aceasta are efectul eliminării ce depinde de coeficientul de eroare τ3 (tabela
2.2) şi deoarece este independentă de bi o vom aplica la deducerea formulei
de interpolare. Cu numai şase stadii şi b∗2 , cele 5 ecuaţii rămase pentru b∗2 vor
determina o soluţie unică pentru interpolantul dens. Un exemplu bazat pe acest
model este prezentat de Dormand şi alţii [5].
S-au dedus mai multe extensii continue pentru formula DORPRI5 dată ı̂n
tabela 4.4. Extensia de ordinul al cincilea dată de Calvo şi alţii ı̂n 1990 [3]
este de departe superioară formulelor cum sunt cele prezentate de Dormand şi
Prince [8]. Totuşi sunt necesare două evaluări suplimentare de funcţii şi astfel
acei paşi pentru care sunt necesare ieşiri dense sunt mai costisitori. Construcţia
extensiilor de ordinul al cincilea este mult mai complicată decât cea a celor de
94 Ieşiri dense
unde un+σi , o estimare a lui y(xn+σi ), se obţine dintr-un interpolant dens de or-
dinul al patrulea care se presupune că este disponibil. Cele şase condiţii specifică
un polinom de grad 5 care se determină uşor. Dacă polinomul se alege să fie de
forma
X5
P (x) = αj σ j , σ = (x − xn )/h,
j=0
Pentru continuitatea C 1 este necesar să fie satisfăcute condiţiile (5.3), (5.4) şi
deci este convenabil să luăm
b∗7 = σ(σ − 1)(ασ + β), α + β = 1. (5.16)
Rezolvând ecuaţiile relevante de condiţie se obţin b∗i ı̂n funcţie de α se poate
arăta că α = 5/2 conduce la o formulă cu ordinul local patru pentru care H5
din (5.15) este ı̂n apropierea unui minim. Această extensie continuă este dată
ı̂n coloana din stânga tabelului 5.6. Cele două valori ale interpolantului, un+σi ,
i = 1, 2 din ecuaţia (5.14) se poate obţine din
7
X
un+σi = yn + σi h b∗j (σi )fj ,
j=1
şi, ı̂n notaţiile Runge-Kutta, cele două evaluări suplimentare de funcţii ce conduc
la o extensie continuă care local are ordinul 5 sunt
X 7
f7+i = f xn + c7+i h, yn + h a7+i,j fj , i = 1, 2
j=1
unde
c7+i = σi , a7+i,j = σi b∗j (σi ).
Se pot alege orice pentru σ1 , σ2 dar valorile optimale pentru c8 , c9 vor minimiza
Z 1
H6 = A(6) (σ)d σ.
0
1 1
Perechea c8 = 5,c9 = este aproape optimală şi are avatajul de a da un pa-
2
rametru relativ simplu. Cei nouă b̂∗ din formula densă de ordinul al cincilea se
dau ı̂n coloana din dreapta a tabelei 5.6. Aceeaşi metodă poate fi aplicată sı̂ unor
formule de ordin mai mare, deşi numărul de puncte interioare ce conduc la stadii
suplimentare ar putea fi mai mare. În timp ce această tehnică are succes pen-
tru DORPRI5, conducând la o extensie continuă simplă aproape optimală cu cel
mai mic număr de stadii suplimentare, aplicarea ei la ordine mai mari conduce
la extensii continue ce necesită mai multe stadii decât minimul absolut.
Ştiind că soluţia dorită este conţinută ı̂ntr-un pas Runge-Kutta chiar finalizat,
valoare x se poate determina cu metoda Newton-Raphson. În această aplicaţie
este mai convenabil să exprimăm interpolantul ı̂n formă polinomială ı̂n loc de
98 Ieşiri dense
Presupunând că
b∗i = di0 + σdi1 + · · · + σ r dir ,
avem
s
X
A0 = y n , Aj = h di,j−1 fi , j = 1, . . . , r + 1. (5.17)
i=1
Vom utiliza acum metoda Newton-Raphson pentru a rezolva P (σ) = Y ı̂n cazul
scalar. Pentru a găsi o aproximare iniţială, este uşor să calculăm la fiecare pas
∆n = yn+1 − Y,
şi presupunem că soluţia este conţinută când ∆n ∆n−1 < 0. Această tehnică
nu ne garantează determinarea tuturor soluţiilor, dar condiţia verică existenţa
soluţiei ı̂n cadrul dat. O primă aproximare a valorii lui σ este
Y − yn
σ0 = ,
yn+1 − yn
iar iteraţia Newton se exprimă sub forma
P (σk ) − Y
σk+1 = σk − , k = 0, 1, . . .
P 0 (σk )
Aceasta necesită evaluări de derivate, dar deoarece funcţia este polinomială P şi
P 0 pot fi obţinute prin diviziune sintetică. Pentru o problemă nescalară, procesul
de mai sus poate fi aplicat pentru soluţia bazată pe orice valoare a componentei.
Având determinat parametrul de interpolare σ, toate componentele soluţiei pot fi
găsite ı̂n mod normal.
5.7 Probleme
Problema 5.7.1. Obţineţi o formulă cu ieşiri dense cu ordinul local 2 pentru
formula de ordinul al treilea (3.8). Alegeţi parametrul liber pentru a minimiza
coeficienţii adecvaţi ai erorii locale. Verificaţi continuitatea formulei obţinute.
5.7. Probleme 99
Problema 5.7.2. Adăugaţi un stadiu FSAL formulei din problema de mai sus
şi obţineţi astfel o formulă cu ieşiri dense de ordinul al treilea. Utilizaţi această
formulă pentru a calcula y(0.04), y(0.08) pentru problema cu valori iniţiale
y 0 = y 3 − y, y(0) = 0.5
ci aij b̂i
1
0 6
1 1
3 3 0
1 1 1
3 6 6 0
1 1 3 2
2 8 0 8 3
1
1 2 0 − 23 2 1
6
Problema 5.7.5. Utilizaţi polinomul pentru ieşiri dense bazate pe RK4(3)5M din
tabela 4.3 pentru a calcula mai precis momentul impactului la prăbuşirea navei
Enterprise, ale cărei ecuaţii se dau ı̂n problema refprob5.8. Metoda Newton-
Raphson se va utiliza pentru a determina valoarea corespunzătoare altitudinii
zero.
Problema 5.7.6. Impuneţi condiţiile simplificatoare ale lui Butcher (3.13), (3.14),
(5.13) asupra coeficienţilor din eroarea RK de ordinul 4. Deci aceasta arată că
ecuaţiile de condiţie pentru o formulă de ordinul al patrulea cu s stadii se reduce
la
s
X 1
bi cki = , k = 0, 1, 2, 3
k+1
i=1
6.1 Introducere
În capitolele precedente, am considrat construcţia formulelor Runge-Kutta
cu referinţă numai la proprietăţile asimptotice ale erorii lor. Pentru multe pro-
bleme practice aceste proprietăţi nu asigură o metodă convenabilă şi eficientă de
rezolvare. Astfel de probleme conţin sisteme de ecuţii cu soluţii ce conţin com-
ponente a căror rate de modificare diferă substanţial. În multe cazuri proprietatea
de stabilitate guvernează procesele numerice.
Pentru a ilustra acest tip de problemă, considerăm o ecuaţie liniară de ordinul
al doilea ce modelează o mişcare simplă armonică, aşa cum ar putea fi descrisă
de un resort ı̂n vibraţie a cărui mişcare este frânată de o forţă proporţională cu vi-
teza. Presupunem că y este deplasamentul unei unităţi de masă ataşată la capătul
resortului, c este constanta de amortizare şi k este constanta de rigiditate (stiff-
ness) a resortului. Atunci ecuaţia de mişcare a masei este
y 00 + cy 0 + ky = 0, (6.1)
unde accentele indică derivarea ı̂n raport cu timpul x. Soluţia generală a acestei
ecuaţii este
y(x) = Aeα1 x + Beα2 x ,
unde
1 p
α1 , α2 = −c ± c2 − 4k .
2
Dacă c2 > 4k, resortul se numeşte puternic amortizat şi ambii exponenţi (α1 , α2 )
sunt negativi. De exemplu, când c = 26/5, k = 1 şi valorile iniţiale sunt y(0) =
y 0 (0) = 1, ecuaţia (6.1) are soluţia
1 −x/5
y(x) = 5e − e−5x .
4
101
102 Stabilitate şi stiffness
Această expresie constă din două componente, numite de obicei termen tranzi-
toriu rapid şi lent. Termenul tranzitoriu rapid este cel care descreşte mai repede
şi, ı̂n acest caz, termenul mai rapid (e−5x ) este neglijabil exceptând valorile mici
ale lui x. Figura 6.1 ne arată soluţia pentru x ∈ [0, 2] ı̂mpreună cu componenta
lentă. Componenta lentă ı̂n sine furnizează o aproximantă bună pentru soluţia
completă când x > 1.
cu valorile iniţiale 1 y = 1, 2 y = 1.
În acest capitol va fi investigat conceptul de stabilitate ı̂n raport cu metodele
RK. Se va introduce proprietatea de rigiditate (stiffness) ı̂n legătură cu sistemele
de ecuaţii diferenţiale. Se vor considera metode RK speciale pentru aplicaţii la
astfel de sisteme.
6.2. Stabilitate absolută 103
f1 = λyn
f2 = λ(yn + c2 hf1 )
= λ(yn + c2 hλyn ),
yn+1 = yn [1 + (b1 + b2 )r + b2 c2 r2 ],
1
yn+1 = P (r)yn , P (r) = 1 + r + r2 , (6.4)
2
O metodă care satisface inegalitate (6.5) se numeşte absolut stabilă. Din (6.4),
condiţia de stabilitate absolută pentru o metodă arbitrară cu două stadii RK2 se
poate scrie
1 + r + 1 r 2 < 1
2
sau
1
−1 < 1 + r + r2 < 1. (6.6)
2
Inegalitatea din stânga este echivalentă cu
1
0 < 2 + r + r2 ,
2
care, completând pătratele, ne conduce la
1 3
0 < (r + 1)2 + ,
2 2
care este adevărată pentru orice r real. Partea dreaptă al inegalităţii (6.6) este
echivalentă cu
1
r(r + 2) < 0,
2
care este adevărată când −2 < r < 0. Deci condiţia de stabilitate absolută pentru
o metodă arbitrară cu două stadii se paote scrie
Astfel, orice metodă cu două stadii RK2 aplicată ecuaţiei (6.3) va produce un şir
cu valorile absolute descrescătoare când r este mărginită aşa cum s-a arătat aici
şi dacă λ este specificat, condiţia ne conduce la o margine a mărimii h a pasului.
De exemplu, pentru λ = 1 stabilitatea absolută impune condiţia h < 2.
Tratamentul precedent al stabilităţii absolute se bazează pe o problemă test
scalară care este mult mai simplă decât una care de obicei necesită un tratament
numeric. Extensia analizei stabilităţii la sisteme neliniare de ecuaţii diferenţiale
continuă cu considerarea unui sistem liniar de dimensiune m,
y 0 = Ay, y(xn ) = yn ,
Astfel, orice valoare proprie a matricei A trebuie să satisfacă condiţia de stabili-
tate (6.7) obţinută din ecuaţia test scalară.
Deoarece valorile proprii ale matricei A sunt ı̂n general complexe, inega-
litatea (6.8) defineşte o regiune din planul complex aşa cum se arată ı̂n figura
6.2. De fapt, regiunea ı̂n care se asigură stabilitatea absolută este simetrică faţă
de axareală, se obişnuieşte să se reprezinte numai semiplanul cu axa imaginară
pozitivă.
106 Stabilitate şi stiffness
Trebuie accentuat că se cere ca o metodă să fie absolut stabilă numai pentru
probleme cu soluţii care au componente ce descresc. Pentru λ > 0 soluţia va
creşte şı̂ figura indică faptul că RK2 ne va da ı̂n acest caz valori crescătoare.
Un alt lucru care trebuie evidenţiat este acela că stabilitatea unei metode
numerice nu ı̂nseamnă neapărat precizia ridicată. Stabilitatea absolută ne asigură
că soluţia numerică va fi mărginită, dar ea poate diferi foarte mult de soluţia
adevărată. Aceasta se poate arăta aplicând formula RK2 ecuaţie y 0 = −y, y(0) =
1 cu pasul h = 1. Stabilitatea absolută necesită h < 2 şi astfel soluţia numerică
va descreşte. În ultimă instanţă, atât soluţia RK cât şi cea adevărată vor converge
către zero, dar valorile tranzienţilor vor diferi vizibil.
X X X X
P (r) = 1 + r bi + r 2 bi ci + r3 bi aij cj + r4 ba aij ajk ck
i i ij ijk
X
s
+ ··· + r bi aij ajk ..avw cw
ijk...vw
s
X
=1+ Wi ri , (6.9)
i=1
Studiul stabilităţii neliniare este mult mai dificil decât cel al stabilităţii pentru
sisteme liniare. Pentru sisteme neliniare ı̂n forma autonomă y 0 = f (y), y ∈ RM ,
108 Stabilitate şi stiffness
rolul matricei A de mai sus este jucat de matricea jacobian J a lui f , unde
1
f1 1 f2 . . . 1 fM
2 f1 2 f2 . . . 2 fM
J = . .. .
.. ..
.. . . .
Mf Mf ... Mf
1 2 M
Deoarece J este variabilă, cerinţele de stabilitate vor varia peste domeniul soluţiilor
ecuaţiei diferenţiale. Această variaţie este demonstrată prin referirea la o pro-
blemă scalară neliniară
1 1
y0 = − 2 (1 + x3 ), y(1) = 1, (6.10)
y x
care are soluţia exactă y(x) = 1/x. Scriind această ecuaţie ı̂n forma autonomă
cu M = 2, este uşor să se obţină jacobianul, care are cea mai mare valoare
proprie
λ(x) = −1/y 2 = −x2 .
Astfel, soluţia exactă descreşte monoton pe măsură ce raza spectrală a lui J
creşte.Pentru o formulă RK cu o ccondiţie de stabilitate absolută
este clar că mărimea maximă a pasului ce asigură descreşterea soluţie scade când
x creşte. Pentru a ilustra aceasta, figura 6.5 arată variaţia lungimii pasului când
metoda ode23, x ∈ [1, 10], toleranţa T = 10−2 este aplicată ecuaţiei (6.10).
Figura indică o reducere a pasului prea mare pentru această problemă.
6.4 Stiffness
Dacă valorile proprii ale lui J diferă mult, sistemul de ecuaţii diferenţiale se
numeşte stiff (rigid?). Un astfel de sistem pune probleme dificile unui integrator
clasic şi s-a depus un mare efort pentru a dezvolta metode speciale care să lucreze
eficient cu stiffness. Urmează o definiţie a noţiunii de stiffness.
Dacă valorile proprii ale lui J sunt λ1 , λ2 , . . . , λM sistemul se numeşte stiff
dacă
1. <(λk ) < 0, k = 1, 2, . . . , M ;
Figura 6.5: Variaţia lungimii pasului ı̂n [1,10] pentru ecuaţia (6.10)
Raportul
max |<(λ(k)|
S=
min |<(λ(k)|
se numeşte raport de stiffness (stiffness ratio) a sistemului de ecuaţii. Pentru
ecuaţia (6.2) el este 25. Pentru valori mari ale lui S cerinţele de stabilitate ale
membrilor mulţimii valorilor proprii diferă substanţial. Dacă aceeaşi marime de
pas s-ar aplica tuturor acestora ar trebui să fie guvernată de valoarea proprie cu
cea mai mare parte reală negativă şi deci trebuie să fie mult mai mică decât ar fi
cazul pentru membrii mici ai mulţimii. Aceasta implică costuri computaţionale
mari şi astfel căutarea unor metode cu regiuni mari de stabilitate este motivată.
De notat că prezenţa valorilor proprii negative mari nu indică neapărat derivate
mari pentru care se aşteaptă dimensiuni asimptotic mari ale pasului.
Să considerăm un sistem liniar simplu care ilustrează problemele generate de
stiffness. Ecuaţia
1 0 1
y 1 994 −1998 y
2y0 = 2y (6.11)
5 2997 −5999
Valorile proprii ale matricei A din acest exemplu sunt -1 şi -1000 şi deci S =
1000. Termenul tranzient rapid (e−1000x ) este neglijabil, exceptând valori foarte
mici ale lui x şi, dacă se calculează soluţia cu o precizie modestă, să zicem
7 zecimale, din expresia analitică rezultă că nu va fi nevoie să evaluăm acest
termen pentru x > 0.02. Soluţia este ilustrată ı̂n figura 6.6. Fiecare componentă
tinde către zero. Conform analizei de stabilitate, marimea pasului h trebuie să
asigure stabilitatea printr-o metodă cu două stadii RK2 trebuie să satisfacă 0 <
1000h < 2. Astfel pe intervalul x ∈ [0, 2] sunt necesari 1000 de paşi, iar pentru
o metodă RK4 mult mai stabilă numărul de paşi se va reduce doar cu 30%. O
astfel de integrare va fi mai costisitoare deoarece fiecare pas de ordinul 4 necesită
de două ori mai multe evaluări de funcţie ca RK2. Dacă componenta tranzient
rapid lipseşte, acelaşi interval ar putea fi acoperit cu o toleranţa rezonabilă ı̂n
câteva zeci de paşi.
Din nefericire, un proces numeric nu poate ignora efectul tranzienţilor rapizi
nici chiar când aceştia sunt neglijabili. Faptul că există derivate mari numai când
x < 0.01 nu ı̂nseamnă neapărat că mărima pasului va creşte când x > 0.01.
Rezolvând ecuaţia pe intervalul [1, 1.6] cu pasul constant h = 0.1 cu o metodă
RK2 explicită (2.15) se obţin rezultatele din tabela 6.1.
Deoarece h este mult mai mare decât limita de stabilitate pentru problemă
soluţia numerică va produce valori care cresc repede ı̂n modul. Ecuaţia
nimax. În loc să considere coeficienţii erorii ı̂n procesele RK, van der Houven
Figura 6.7: Polinoame de stabilitate maximă pentru metoda RK1 cu 2 şi 3 stadii
şi RK2 cu trei stadii
a impus restricţii asupra polinoamului de stabilitate dat ı̂n ecuaţia (6.9), al cărui
grad coincide cu numărul de stadii.
Pentru o metodă RK cu două stadii, polinomul de stabilitate obţinut aplicând
formula unei ecuaţii de test y 0 = λy are forma
P (r) = 1 + (b1 + b2 )r + b2 c2 r2 ,
Polinomul Cebı̂şev de grad n are n+1 valori extreme alternative ±1, x ∈ [−1, 1]
. Pentru a ı̂ndeplini cerinţele de stabilitate polinomul Cebı̂şev este translatat
luând
r
x=1+ ,
α
atunci
x ∈ [−1, 1] ⇒ r ∈ [−2α, 0].
Relaţia de recurenţa pentru polinoamele de stabilitate Cebı̂şev are forma
r
Pj+1 (r) = 2 1 + Pj (r) − Pj−1 (r), j = 1, 2, 3, . . .
α
şi primele trei polinoame sunt
r
P1 (x) = 1 +
α
r r 2
P2 (x) = 1 + 4 +2
α α
r
r 2 r 3
P3 (x) = 1 + 9 + 12 +4 .
α α α
Pentru a fi polinoame de stabilitate pentru formule RK consistente, polinoamele
de grad m trebuie să aibă α = m2 ,obţinându-se astfel o limită de stabiltate
negativă L = 2m2 . Pentru un proces cu două stadii , se selectează P2 cu α = 4
care ne conduce la
1
P (r) = 1 + r + r2 , (6.12)
8
cu |P (r)| ≤ 1, r ∈ [−8, 0], aşa cum se arată ı̂n figura 6.7. Obţinerea acestui
rezultat, când sunt implicate numai două stadii, este simplă chiar şi fără transfor-
mare Cebı̂şev.
În acest moment trebuie precizat că cerinţa de stabiltate absolută poate fi
slăbită şi inegalitatea strictă din (6.5) să devină nestrictă. În acest caz avem de-a
face cu stabilitatea slabă şi procesul se numeşte slab stabil.
Pentru a obţine coeficienţii formulei RK cu două stadii şi stabilitate optimală
luăm b2 c2 = 18 . Selectând b2 = 1 se obţine c2 = 81 , b1 = 0. Această formulă
RK1 cu două stadii este de două ori mai costisitoare pe pas decât metoda lui Eu-
ler, dar va permite un poas de paru or mai mare când este guvernată de stabilitate.
Extinderea tehnicii Cebı̂şev la un număr arbitrar de stadii este evidentă.
De asemenea tehnica poate fi extinsă la formule de ordin superior [19]. De
exemplu o formulă RK2 cu trei stadii are polinomul de stabilitate
1 1
P (r) = 1 + r + r2 + β3 r3 , β3 6= . (6.13)
2 6
114 Stabilitate şi stiffness
ci aij bi
0 0
1 1
27 27 0 0
4 4
27 0 27 1
ci aij bi
0 0
1 1
8 8 0 0
1 1
2 0 2 1
Din nefericire (6.13) nu este un polinom Cebı̂şev, dar un β3 optimal şi coeficienţi
adecvaţi de grad mai mare, când sunt permise mai multe stadii se pot calcula cu
algoritmul lui Remez, aplicabil problemelor minimax cu restricţii. De fapt, va-
1
loarea optimală este β3 = 16 , iar polinomul (6.13) cu acest coeficient este repre-
zentat ı̂n figura 6.7. În această figură se dă şi polinomul de stabilitate maximală
bazat pe P3 (x),
4 4 3
P (r) = 1 + r + r2 + r , (6.14)
27 729
pentru o formulă RK1 cu trei stadii.
Pentru a obţine parametrii pentru o formulă cu trei stadii, din ecuaţia (6.9) se
observă că
b1 + b2 + b3 = 1
4
b2 c2 + b3 c3 = (6.15)
27
4
b3 a32 c2 = .
729
Oricare trei dintre aceşti parametri poate fi specificat si, pentru simplitate, alegem
a31 = b1 = b2 = 0, obţinându-se soluţia din tabela 6.2. Cu o limită de stabilitate
de -18 această formulă permite o lungime a pasului de trei ori mai mare decât
metoda lui Euler clasică (RK1) la un cost doar de trei ori mai mare. Formula de
ordinul al doilea de stabilitate maxi,ală şi cu acelaşi cost computaţional este dată
ı̂n tabela 6.3.
Pentru aplicaţii practice ale formulelor maximal stabile este posibil să com-
binăm perechi imbricate, aşa cum recomandă ı̂n capitolul 4. În acest caz, totuşi
6.6. Probleme 115
ci aij b̂i bi
19
0 0 243
1 1 608
8 8 0 729
1 1 64
2 0 2 1 729
ambele formule ale perechii trebuie alese ţinând cont şi de proprietăţile de sta-
bilitate şi de ordinul algebric. Acest lucru este necesar deoarece dacă diferenţa
dintre cele două soluţii trebuie să fie mărginită, marimea pasului trebuie să fie
guvernată de cea mai mică dintre cele două limite de stabilitate. Să considerăm
o formulă de ordinul I ce utilizează aceleaşi evaluări de funcţie ca formula RK2
din tabela 6.3. Parametrii trebuie să satisfacă ecuaţiile (6.15) pentru a da o li-
mită negativă de stabilitate de -18. În acest caz valorile lui c2 , c3 şi a32 sunt
cele date ı̂n tabela 6.3 şi astfel prin rezolvarea celor trei ecuaţii se pot obţine
cele trei valori bi . Perechea rezultată apare ı̂n tabela 6.4. Această formulă poate
fi obţinută ı̂n acelaşi mod ca orice altă pereche de formule conţinute. Formula
de reducere optimală (4.3) va fi furnizată efectiv cu condiţia ca limita de stabi-
litate pentru RK2 să nu fie depăşită. Dacă apare o respingere de pas datorită
instabilităţii arbitrare, este probabil ca eroarea estimată să fie extrem de mare. În
consecinţă este important să concepem o formulă de predicţie a mărimii pasu-
lui care limitează factorul de reducere; altfel procesul poate fi foarte ineficient
datorită alegerii unor paşi nenecesar de mici ce alternează cu respingerile de pas.
Aplicarea formulelor de ordin mic cum ar fi cele prezentate mai sus nu este
recomandată pentru probleme generale din motivele discutate ı̂n capitolul 3.
Totuşiexistă anumite tipuri de probleme, evident cele ı̂n care stabilitatea absolută
este importantă, ı̂n care ele pot fi utile. Un astfel de exemplu este tehnica dis-
cretizării aplicată ecuaţiilor diferenţiale parabolice. O proprietate caracteristică a
acestor sisteme este prezenţa valorilor mici ale derivatei care conduce la dimen-
siuni ale pasului guvernate de stabilitate. Răcirea lentă ı̂n modelarea conducţiei
termice furnizează astfel de sisteme.
6.6 Probleme
Problema 6.6.1. Găsiţi regiunea de stabilitate pentru metoda lui Euler
yn+1 = yn + hf (xn , yn ).
Desenaţi o figură simplă care să ilustreze această regiune din planul complex.
116 Stabilitate şi stiffness
y 0 = −y 2 , y(1) = 1.
Utilizaţi o pereche imbricată pentru agăsi soluţia din [1,10] cu o toleranţă locală
T = 0.001. Comparaţi rezultatul cu soluţia analitică.
Problema 6.6.8. Obţineţi matricea jacobiană pentru ecuaţı̂a (6.10). Deci gasiţi
valorile proprii. Aplicaţi perechea de metode imbricate RK2(1)3S acestei ecuaţii
şi comparaţi secvenţa de mărimi de paşi cu cea din figura 6.5 produsă de perechea
RK3(2). Concepeţi o modificare a procedurii de control al pasului din figura ??
care să ı̂mbunătăţească eficienţa metodei.
Problema 6.6.9. Utilizaţi polinomul Cebı̂şev de grad 4 pentru a construi o formlă
de ordinul ı̂ntâi cu patru stadii cu o limită reală de stabilitate [−32, 0] . Determinaţi
regiunea de stabilitate din planul complex pentru formula dumneavoastră.
6.6. Probleme 117
(De notat că polinomul de stabilitate ce apare ı̂n cazurile explicite se ı̂nlocuieşte
ı̂n acest caz cu o funcţie raţională.)
118 Stabilitate şi stiffness
Capitolul 7
Metode multipas
7.1 Introducere
Metodele Taylor şi Runge-Kutta descrise ı̂n capitolele precedente sunt exe4mple
de scheme cu un singur pas, deoarece fiecare nou pas este definit cu ajutorul
punctului precedent. Nici o lta valoare de la alţi paşi nu se utilizează, deşi ar
putea fi deja calculaţi mii de paşi. Intuiţia ne sugerează că am putea considera
posibilitatea de a utiliza rezultatele precedente, care pot evidenţia proprietăţi im-
portante ale sistemului diferenţial, ı̂n loc să le ignorăm. Tehnicile cu mai mulţi
paşi, care se bazează pe cunoaşterea secvenţei de valori precedente, au fost dez-
voltate pentru a realiza această posibilitate.
Acest capitol va servi ca introducere la procesele cu mai mulţi paşi. Anu-
mite formule simple se vor construi din dezvoltarea Taylor a erorii, ı̂n principiu
aceeşi metodă ca ı̂n cazul metodelor Runge-Kutta. Spre deosebire de procesele
RK, care până acum au fost explicite, este normal să aplicăm scheme multipas
implicite la probleme generale. Aceasta conduce la ideea metodelor predictor-
corector, care constituie cea mai importantă realizare din această clasă de me-
tode. Vor fi descrise mai multe variaţiuni pe tema predictor-corector (P-C) şi se
vor introduce unele aspecte computaţionale ale metodelor.
119
120 Metode multipas
o formulă cu mai mulţi paşi liniară pentru aproximarea lui y(xn + h) are forma
p
X p
X
0
yn+1 = ai yn−i + h bi yn−i (7.2)
i=0 i=−1
unde
yn−i ' y(xn − ih),
0
yn−i = f (xn − ih, yn−i ),
i = −1, 0, 1, . . . , p.
Parametrii ai , bi şi p se aleg pentru a satisface criterii adecvate legate de ordin
şi/sau stabilitate, ı̂ntr-o manieră similară cu cea de la metodele RK.
Dacă p ≥ 1, atunci formula (7.2) poate fi aplicată numai dacă secvenţa
{yn−i }, i = 1, 2, . . . , p a fost deja calculată. Astfel un proces multipas nu
este cu autopornire; el necesită la iniţializare p valori de pornire fără a socoti
valoarea iniţială. O tehnică evidentă pentru generarea valorilor de pornire este
utilizarea unei metode Runge-Kutta sau Taylor. Totuşi, odată ce procesul (7.2)
a fost pornit, paşii următoripot fi calculaţi cu aceeaşi formulă multipas. Pentru
implementarea unei formule cu mai mulţi paşi, parametrul b−1 este important.
Dacă b−1 = 0 formula cu mai mulţi paşi se numeşte explicită şi implemen-
tarea ei este simplă, iar ı̂n caz contrar membrul drept al formulei (7.2) conţine
0
yn+1 = f (xn+1 , yn+1 ) şi formula se numeşte implicită.
În cazul implicit este nevoie de o metodă iterativă pentru a rezolva sistemul
neliniar care dă pe yn+1 . Acest lucru pare să fie un dezavantaj sever, dar ı̂n
practică nu este aşa, cum se va vedea mai târziu.
O procedură de calcul potrivită pentru utilizarea lui (7.2), presupunând că
valoarea iniţială este (x0 , y0 ) şi p = 2, este
1. Se calculează y1 , y2 utilizând (de exemplu) o metodă Runge-Kutta.
2. Se utilizează y0 , y1 , y2 ı̂n (7.2) pentru a calcula y3 .
3. Utilizează y1 , y2 , y3 ı̂n (7.2) pentru a calcula y4 .
4. Calculează un nou pas ş.a.m.d.
Este necesar să se reţină doar trei puncte ale soluţiei pe parcursul calculelor.
Valorile de pornire trebuie să fie echidistante, deoarece (7.2) se bazează pe o
lungime constantă a pasului. Este posibil să se schimbe lungimea pasului sau
să se construiască formule care permit pas de lungime variabilă, dar ı̂n acest
capitol ne vom limita la construirea unor formule simple şi la implementarea lor
ı̂n modul predictor-corector cu pas constant.
7.3. Alegerea parametrilor 121
se obţine
p
X 1 2 000 1 3 00
tn+1 = ai Y − ihY + (ih) Y − (ih) Y + · · ·
2 6
i=1
p
X
0 00 1 2 000 1 3 (4)
+h bi Y − ihY + (ih) Y − (ih) Y + · · ·
2 6
i=−1
1 1
− Y + hY 0 + h2 Y 00 + h3 Y 000 + · · · .
2 6
p p
!
4 (4) 1 X 3 1 X 4 1
+h Y − i bi + i ai −
6 24 24
i=−1 i=0
+ ···
Astfel, eroarea locală de trunchiere se poate scrie sub forma (vezi şi (2.10)),
∞
X
tn+1 = hi ϕi−1 (xn )
i=0
ϕk = 0, k = −1, 0, 1, . . . , q − 1 (7.5)
are 5 parametrii şi este implicită. Utilizând (7.4) se obţin patru ecuaţii de tip
(7.5) pentru q = 3 care, atunci când sunt satisfăcute ne conduc la o formulă de
ordinul al treilea. Aceste ecuaţii sunt
a0 + a1 = 1
b−1 + b0 + b1 − a1 = 1
2b−1 − 2b1 + a1 = 1
3b−1 + 3b1 − a1 = 1.
7.4. O metodă implicită de ordinul al treilea 123
Deoarece avem 5 parametrii şi numai 4 ecuaţii nu avem soluţie unică. Un para-
metru se alege liber. Luând a1 = 0, soluţia este
5 1 2
a0 = 1, b−1 = , b1 = − , b0 = ,
12 12 3
iar formula implicită este deci
1 0
yn+1 = yn + h(5yn+1 + 8yn0 − yn−1
0
). (7.6)
12
Pentru moment nu se va da nici o justificare a alegerii. Înlocuind parametrii ı̂n
coeficientul de eroare (7.4) cu q = 4 se ajunge la termenul pricipal al erorii locale
de trunchiere pentru formula (7.6)
1 4 (4)
h 4 ϕ3 = h y (xn ).
24
Deoarece (7.6) este implicită, dacă f (x, y) nu este liniară ı̂n y, valoarea lui yn+1
trebuie obţinută printr-o metodă iterativă. Presupunând că valorile de pornire
sunt deja cunoscute, formula (7.6) se poate scrie sub forma
5
yn+1 = hf (xn+1 , yn+1 ) + cn , (7.7)
12
unde
1
cn = yn + h(8yn0 − y 0 n − 1
12
depinde numai de aceste valori de pornire. În cazul scalar rezolvarea ecuaţiei
(7.7) prin aproximaţii succesive este cea mai simplă opţiune. Un proces iterativ
zk+1 = g(zk ), k = 0, 1, 2, . . .
va converge către o rădăcină a ecuaţiei z = g(x) dacă |g 0 (z)| < 1 ı̂n vecinătatea
rădăcinii. Pentru ecuaţia (7.7), această condiţie devine
5 ∂f
h < 1,
12 ∂y
sau −1
∂f
h < 2.4 . (7.8)
∂y
Aici caracteristica importantă este că inegalitatea (7.8) garantează că iteraţia va
converge cu condiţia ca lungimea pasului să fie suficient de mică. Pentru a re-
duce numărul de iteraţii se poate utiliza metoda Newton-Raphson. În acest caz
convergenţa va depinde numai de aproximaţia de pornire pentru yn+1 .
124 Metode multipas
Dacă f nu este scalară ecuaţia (7.7) reprezintă un sistem neliniar care poate
fi abordată ı̂n aceeaşi manieră, deşi o ieraţie Newton va necesita evaluarea jaco-
bianului lui f .
Pentru a ilustra o posibilitate de implementare a formulei cu mai mulţi paşi
(7.7) vom realiza un pas din rezolvarea ecuaţiei
1
y 0 = y 3 − y, y(0) = ,
2
pentru h = 0.1. În acest caz soluţia analitică y(0.1) = 0.463032 se utilizează
pentru a furniza o valoare de pornire şi apoi formula multipas pentru a estima
y(0.2). Mai realist, se va utiliza o metodă numerică pentru a estima valoarea de
pornire. Utilizând formula (7.7) se obţine
3
0.5(yn+1 − yn+1 )
yn+1 = 0.441906 + ,
12
care se rezolvă prin iteraţie simplă. În tabela 7.1 iteratele sunt notate prin z0 , z1 ,
. . . , iar prima aproximaţie se ia arbitrar 0.43. Deoarece lungimea pasului este
mult mai mică decât valoarea prezisă de (7.8), convergenţa este rapidă. De notat
că convergenţa este mai degrabă către soluţia ecuaţiei neliniare deduse decât
către soluţia exactă a ecuaţiei diferenţiale, care este y(0.2) = 0.427355, corectă
până la 6 cifre semnificative. În acest exemplu aproximaţia iniţială a fost ghicită;
o metodă sistematică de a o găsi ar fi un avantaj. Din acest motiv vom condidera
ı̂n continuare o procedură multipas explicită.
k xk yk yk0
n−1 0 0.5 -0.375
n 0.1 0.463032 -0.363759
0.2 z0 = 0.43
z1 = 0.427302
z2 = 0.427353
n+1 0.2 0.427352 -0.349305
k xk yk yk0
n−1 0 0.5 -0.375
n 0.1 0.463032 -0.363759
n+1 0.2 0.427368 -0.349312
a0 + a1 = 1
b0 + b1 − a1 = 1
−2b1 + a1 = 1
3b1 − a1 = 1.
k xk yk yk0
n−1 0 0.5 -0.375
n 0.1 0.463032 -0.363759
0.2 z0 = 0.427368 -0.349312
z1 = 0.427351
n+1 0.2 0.427352 -0.349305
şi Pn+1 − Cn+1 = ePn+1 − eC n+1 . Acum, pentru o metodă de ordinul q, erorile
locale se pot scrie sub forma
AP
ePn+1 ' (Pn+1 − Cn+1 ) (7.10)
AP − AC
128 Metode multipas
AC
eC
n+1 ' (Pn+1 − Cn+1 ). (7.11)
AP − AC
Pentru exemplul de ordinul al treilea din ultima secţiune AP = − 61 , AC = 1
24 şi
deci
1 4
eC
n+1 ' − (Pn+1 − Cn+1 ), ePn+1 ' (Pn+1 − Cn+1 ).
5 5
Utilizând valorile din tabela 7.3, diferenţa dintre predictor şi corector este
Pn+1 − Cn+1 = 0.000016;
astfel cele doua estimări ale erorii sunt eC P
n+1 ≈ −0.000003, en+1 ≈ 0.000013,
care coincid cu eroarea reală până la 6 zecimale.
Procesul de adăugare a unei estimări a erorii sau modificator se mai numeşte
şi instrumet Milne, dar pentru a fi consistenţi cu terminologia anterioară, este
mai bine să-l denumim extrapolare locală. În unele cazuri este util să extrapolăm
de asemenea predicţia, pentru care se poate obţine ı̂n acelaşi mod o estimare a
erorii. Totuşi modificatorul pentru predictor depinde de valoarea corectată, care
nu este disponibilă ı̂n stadiul intermediar de evaluare. Un mod mai simplu de
compensare este de a lua
Pn+1 − Cn+1 ≈ Pn − C − n, n ≥ 1.
O schemă PECE modificată se dă ı̂n tabela 7.5 Aceasta are efectul de a extinde
numărul de valori de pornire deoarece punctul (xn−1 , yn−1 ) contribuie la Pn şi
Cn . Există implicaţii de stabilitate legate de această caracteristică şi ele vor fi
considerate mai târziu. Extrapolarea predictorului nu are nici o valaore la dacă
corectorul este iterat, dar extrapolarea corectorului este frecvent practicată.
Pentru a ilustra efectul diferitelor variante predictor-corector s-au aplicat trei
scheme ecuaţiei logistice
y 0 = y(2 − y), y(0) = 1, h = 0.2. (7.12)
7.8. Implementarea metodelor predictor-corector 129
Soluţia exactă a acestei probleme este y(x) = 2/(1 + e−2x ) şi a fost utilizată
pentru a calcula erorile globale. Pasul de pornire utilizează metoda de ordinul 4
RK45M dată ı̂n tabela 3.2, iar tabela 7.6 arată valorile obţinute la primii 5 paşi
ı̂n cele trei cazuri. Rezultatele au fost obţinute utilizând programul MATLAB
descris ı̂n secţiunea următoare. Este calr că, ı̂n acest caz, ambele extrapolări
conduc la o ı̂bunătăţire a soluţiei numerice.
function [t,W]=PredCor(F,tspan,alfa,N,met,RKm)
%PREDCOR - metoda predictor corector cu pas constant
%apel [t,w]=PredCor(f,tspan,alfa,N,met,RKm)
%F - functia
%tspan - intervalul
%alfa - valoare initiala
%N - numar puncte
%met - metoda predictor corector
%RKm - metoda Runge-Kutta pentru obtinerea valorilor de pornire
if nargin<6
RKm=@RK4tab;
end;
if nargin<5, met=@ABM4; end;
h=(tspan(end)-tspan(1))/N; t0=tspan(1);
%initializare parametrii
neqs=length(alfa);
[p,a,b,ac,bc,pmod,cmod]=feval(met);
f=zeros(length(alfa),p+2);
y=zeros(neqs,p+1); %y(:,1)=alfa(:);
pmc=0;
%metoda Runge Kutta
[t,W]=Runge_Kutta(F,[t0,t0+p*h],alfa,p,RKm);
130 Metode multipas
y=W’;
x=tspan(1);
f(:,1)=feval(F,x,y(:,1));
for i=1:p
f(:,i+1)=feval(F,x+h,y(:,i+1));
x=x+h;
end
7.9 Probleme
Problema 7.9.1. Găsiţi eroarea locală pentru metodele multipas de mai jos fo-
losind dezvoltarea Taylor.
0
(a) yn+1 = yn + 21 h(yn+1 + yn0 );
(a) y 0 = 3x
y − 2xy, y(0) = 2, x ∈ [0, 3];
În fiecare caz alegeţi o lungime de pas adecvată considerând estimarea erorii
pentru corector.
8.1 Introducere
Construcţia formulelor cu mai mulţi paşi din formule Taylor este mai simplă
decât a formulelor RK. Inevitabil, această metodă este mai legată de ordinul
algebric decât de alte aspecte, cum ar fi stabilitatea absolută. Numărul de valori
de pornire determină ordinul maxim al procesului. Acesta este 2p + 1 pentru o
formulă explicită şi 2p+2 pentru una implicită. Astfel de formule sunt unice şi, şi
pe baza criteriilor dezvoltate ı̂n capitolul 3 pentru metode RK par să fie optimale.
Din nefericire, importanţa comportării asimptotice este mai mică decât ı̂n cazul
metodelor cu un pas. Aceasta impune o reducere a ordinului maxim astfel ca să
poată fi evidenţiate alte proprietăţi. Probabil că situaţia nu este radical diferită
de utilizarea mai multor stadii decât minimul necesar pentru atingerea unui ordin
dat la formule RK.
O metodă particulară convenabilă de generare a formulelor ı̂nrudite de di-
verse ordine se bazează pe cuadraturi. Familiile dezvoltate astfel au ı̂n comun
mai multe caracteristici utile care fac implementarea lor pe calculator chiar atrac-
tivă. În particular, coeficianţii lor apar ı̂ntr-un mod iterativ, astfel că schimbarea
ordinului implică doar adăugarea sau eliminarea unui termen. Altă caracteristică
depinde de relaţia procesului cu mai mulţi paşi cu interpolantul polinomial. Mo-
dificarea pasului este la fel de importantă pentru formule cu mai mulţi paşi ca şi
pentru cele cu un pas. Urmând o modificare de pas trebuie considerat un interpo-
lant pentru a furniza noi valori de pornire. Formulele bazate pe interpolanţi sunt
mai potrivite acestui scop decât alte formule multipas.
În acest capitol vom considera deducerea sistematică şi de asemenea im-
133
134 Metode multipas obţinute prin cuadraturi
plemnentarea proceselor Adams. Acestea sunt chiar mai vechi decât procesele
Runge-Kutta, datând de la mijlocul secolului al XIX-lea. J. C. Adams este cel
care a prezis existenţa planetei Neptun ı̂n 1845. Formulele lui Adams au rămas
populare până ı̂n zilele noastre.
xk = xk−1 + h, k = 1, 2, . . . .
se obţine formula
Z xn+1
y(xn+1 ) = y(xn ) + f (x, y(x))d x. (8.2)
xn
Deoarece integrandul din (8.2) este exprimat ı̂n general ı̂n funcţie de x şi y, inte-
grala nu poate fi evaluată direct. Vom aproxima f (x, y(x)) printr-un polinom de
interpolare, pe baza valorilor cunoscute (xk , y(xk )). Integrarea interpolantului
ne conduce la o formulă de cuadratură.
Se poate construi un polinom Vp de grad p care să satisfacă
astfel ı̂ncât
unde Ep este termenul rest al erorii de interpolare. Astfel, din formula (8.2), se
obţine
Z xn+1 Z xn+1
y(xn+1 ) = y(xn ) + Vp (x)d x + Ep (x)d x, (8.3)
xn xn
8.3. Formulele Adams-Bashforth 135
Este simplu să se scrie interpolantul Lagrange vp şi, variind p, din ecuaţia (8.4)
se poate deduce o clasă de formule cu mai mulţi paşi. Deşi formulele Adams
se bazează efectiv pe această relaţie, se pot construi şi alte familii prin schimba-
rea limitei de integrare. Prin extinderea punctelor de interpolare se pot contrui şi
formule implicite. Formulele de cuadratură ca cele de mai sus, care nu conţin ca-
petele intervalului de integrare printre noduri se numesc formule deschise. Cele
folosite la procesele implicite se numesc ı̂nchise.
xn−p fn−p
∇fn−p
xn−p+1 fn−p+1 ∇2 fn−p+2
∇fn−p+2 ∇3 fn−p+3
... ... ...
... ...
... ... ...
∇fn−2 ∇3 fn−1
xn−2 fn−2 ∇2 fn−2
∇fn−1 ∇3 fn−1
xn−1 fn−1 ∇2 fn
∇fn
xn fn
k 1 2 3 4 5 6
1 5 3 251 95 19087
γk 2 12 8 720 288 60480
Integrarea ne dă
x
G(x) = − ,
(1 − x) ln(1 − x)
sau
ln(1 − x) 1
− G(x) =
x 1−x
care, prin dezvoltare ne dă
1 1 2
γ0 + γ1 x + γ2 x2 + · · · = 1 + x + x2 + · · · .
1 + x + x + ···
2 3
Comparând coeficienţii din ambii membri se obţine
γ0 = 1
1
γ1 + γ0 = 1
2
1 1
γ2 + γ1 + γ0 = 1 (8.8)
2 3
... = 1
1 1
γp + γp−1 + · · · + γ0 = 1
2 p+1
In tabela 8.2 se dau primii şase coeficienţi. Utilizând ecuaţia (8.6), se poate
vedea că eroarea locală de trunchiere a formulei Adams-Bashforth are termenul
de eroare principală
and β0 = pi=0 γi .
P
Cazul p = 2 dă
1
yn+1 = yn + h (23fn − 16fn−1 + 5fn−2 ) , (8.10)
12
care are termenul principal al erorii locale de trunchiere
3
− h4 y (4) (xn ).
8
Evident, aceasta poate fi utilizată ca predictor ı̂mpreună cu corectorul dat de
formula (7.6), dar este nevoie de de două valori de pornire ı̂n locul uneia singure
necesare pentru (7.9), care are acelaşi ordin de precizie.
O caracteristică atractivă a formulelor Adams-Bashforth este uşurinţa cu care
ele pot fi generate. Schema de integrare utilizată aici este chiar mai directă decât
dezvoltarea Taylor considerată mai devreme, coeficienţii sunt obţinuţi direct din
integrale definite de polinoame, sau, mai convenabil, din formulele de recurenţă
(8.8).
k 1 2 3 4 5 6
γk∗ − 21 1
− 12 1
− 24 19
− 720 3
− 160 863
− 60480
yn+1 = yn + h(γ0∗ fn+1 + γ1∗ ∇fn+1 + γ2∗ ∇2 fn+1 + · · · + γp∗ ∇p fn+1 ), (8.12)
unde
0
s+k−1
Z
γ0∗ = 1, γk∗ = d s, k = 1, . . . , p,
−1 k
şi eroarea locală de trunchiere are termenul principal
∗
tn+1 = −hp+2 γp+1 y (p+2) (xn ).
Este posibil să se obţină o relaţie de recurenţă similară lui (8.8) pentru γk∗ , dar
aceasta se poate evita utilizând rezultatul
care este identică cu formula (7.6) dedusă ı̂n capitolul precedent. O caracteristică
notabilă a familiei de formule imlicite Adams-Moulton este aceea că, pentru un
ordin particular, termenul principal al erorii locale de trunchiere este mai mic
decât cel al formulei explicite corespunzătoare.Aşa cum se va vedea mai târziu,
familia implicită are proprietăţi de stabilitate mai bune.
Proprietăţile bune de stabilitate fac perechile Adams predictor-corector cele
mai utilizate formule din clasa lor. Unele implentări specifică corector care să
aibă ordinul cu unu mai mare decât predictorul, făcându-se astfel uz de aceleaşi
valori de ornire. Această schemă are avantaje computaţionale faţă de altele
descrise anterior. Considerăm predictorul Adams-Bashforth (8.7) şi corectorul
Adams-Moulton (8.12) cu p = 2. Diferenţa dintre valorile predictor şi corector
se poate scrie sub forma
Cn+1 − Pn+1 = h[fn+1 + γ1∗ ∇fn+1 + γ2∗ ∇2 fn+1 − (fn + γ1 ∇fn + γ2 ∇2 fn )].
Utilizând relaţia (8.13), formula de mai sus devine mai simplă:
Cn+1 − Pn+1 = h(∇fn+1 + (γ1 − γ0 )∇fn+1 − γ1 ∇fn
(γ2 − γ1 )∇2 fn+1 − γ2 ∇2 fn )
= hγ2 ∇3 fn+1 .
Astfel, in termeni de diferenţe regresive, corectorul necesită un termen suplimen-
tar când diferenţa ,,predictată” trebuie evaluată.
Alternativ cele două formule pot avea acelaşi ordin cu modificatorul utilizat
pentru a estima eroarea şi de asemenea a ı̂mbunătăţi soluţia. Utilizând formulele
(7.10) şi (7.11), valorile extrapolate pentru perechile predictor-corector Adams-
Bashforth-Moulton cu acelaşi ordin sunt
∗
γp+1
γp+1
P− (P − C) şi C − (P − C).
γp γp
Înlocuind r = 0 ı̂n (8.14) se obţine formula Adams (8.2)Multe alte cazuri sunt
de interes pur academic, dar familia explicită Nyström cu r = 1 este demnă de
8.6. Metode cu pas variabil 141
laut ı̂n considerare. Relaţiile lor implicite sunt corectorii Milne-Simpson. Forma
lor generală este
p−1
X
P : yn+1 = yn−1 + h ηk ∇k fn , (8.15)
k=0
p−1
X
C : yn+1 = yn−1 + h ηk∗ ∇k fn+1 , (8.16)
k=0
unde
1
s+k−1
Z
η0 = 2, ηk = d s, k = 1, . . . , p,
−1 k
pentru formula explicită de ordinul k, cu o expresie similară pentru coeficienţii
ı̂mpliciţi. Înlocuind p = 3 (sau p = 4) ı̂n ecuaţia (8.16) se obţine formula de
cuadratură a lui Simpson
1
yn+1 = yn−1 + h(fn+1 + 4fn + fn−1 ). (8.17)
4
Se poate obţine uşor o realţie ı̂ntre coeficienţii ηk şi cei din formulele Adams
(γk ).
kδn+1 k ∈ [T /2p+1 , T ],
şi ı̂njumătăţirea lungimii pasului, ı̂n timp ce valori mai mici vor cauza dublarea
lungimii pasului urmator. Metoda lui Krogh este foarte directă şi ı̂şi propune să
ı̂nlocuiască diferenţele regresive bazate pe dimensiunea h a pasului
(∇fn , ∇2 fn , . . . , ∇p−1 fn ),
cu un nou set
(∇H fn , ∇2H fn , . . . , ∇p−1
H fn ),
pentru dublarea lungimii pasului. Evident această tehnică va fi cea mai directă
când formulele Adams au fost prezentate mai degrabă ı̂n termeni de diferenţe
regresive ı̂n loc de valori ale funcţiei. Totuşi conversia ı̂n şi din forma cu diferenţe
se realizeazăuşor când formula multipas se exprimă ca ı̂n (8.10).
Presupunem că polinomul v(x) interpolează valorile disponibile ale lui f
pentru o metodă Adams de ordinul p; atunci
∇k fn , k < p;
k
∇ v(xn ) =
0, k ≥ p.
Considerăm ı̂ntâi procesul de dublare a pasului, care va presupune că v(x) este
de grad p − 1. Diferenţa regresivă ,,dublată” se defineşte prin
Acest proces poate fi extins până la ordinul dorit, ţinând cont că toate diferenţele
peste ordinul p − 1 vor fi zero. Astfel, pentru o metodă de ordinul 4 relaţiile vor
fi
∇2D ≡ 4∇2 − 4∇3 , ∇3D ≡ 8∇3 .
∇ ≡ 2∇H − ∇2h
∇2 ≡ 4∇2H − 4∇3H
∇3 ≡ 8∇3H .
Ecuaţiile care rezultă de aici sunt uşor de rezolvat pentru a obţine diferenţele
ı̂njumătăţite.
Această metodă este utilizată la schimbarea lungimii pasului din funcţia Adams,
dată ı̂n secţiunea următoare.
Multe programe moderne bazate pe metode multipas tind să lucreze cu for-
mule cu coeficienţi variabili ı̂n loc de interpolări explicite aşa cum s-au dat ı̂n
detaliu aici. Aceste formule cu mai mulţi paşi se bazează pe diferenţe divizate ı̂n
loc de diferenţe finite. Astfel de scheme vor fi tratate ı̂ntr-un capitol următor.
8.8 Probleme
Problema 8.8.1. Dându-se ecuaţia diferenţială şi valorile de pornire
Problema 8.8.5. Arătaţi că relaţia din problema precedentă conduce la proprie-
tatea
p−1
X
(γk∗ ∇k fn+1 − γk ∇k fn ) = γp−1 ∇p fn+1 .
k=0
Problema 8.8.6. Perechea Adams P-C de ordinul p oate fi scrisă ı̂n forma cu
diferenţe divizate ca:
p−1
X
Pn+1 = yn + γk ∇k fn ,
k=0
p−1
X
Cn+1 = yn + h γk∗ ∇k fn+1 ,
k=0
ηk = γk + γk∗ , k ≥ 0,
ηk − ηk−1 = ηk∗
y 0 = y 3 − y, y(0) = 0.5,
Problema 8.8.11. Ecuaţiile mişcării unei sonde spaţiale ce se mişcă ı̂n sistemul
Pământ-Lună sunt
E(x + M ) M (x − E)
ẍ = 2ẏ + x − −
r13 r23
Ey M y
ÿ = −2ẋ + y − 3 − 3 ,
r1 r2
unde
p p
r1 = (x + M )2 + y 2 , r2 = (x − E)2 + y 2
8.8. Probleme 147
1
M= , E = 1 − M,
82.45
cu condiţiile iniţiale
9.1 Introducere
Subiectul stabilităţii metodelor multipas este mult mai complicat decât cel
corespunzător metodelor Runge-Kutta. Pentru metodele RK consistenţa lor ga-
rantează convergenţa, dar acest lucru nu se ı̂ntâmplă ı̂n cazul metodelor multipas,
ı̂n care erorile de rotunjire la un pas oarecare al calculelor trebuie amortizate de
erorile din paşii următori. În consecinţă ar putea să nu fie posibil să ı̂mbunătăţim
precizia unei soluţii numerice selectând un pas mai mic.
Deoarece formula incrementului RK se reduce la o ecuaţie cu diferenţe de
ordinul I când se rezolvă ecuaţia test scalară y 0 = λy, proprietăţile de stabilitate
absolută sunt uşor de determinat. Se poate determina o lungime de pas care sa
ne asigure că soluţia numerică, yn , satisface
lim yn = 0,
n→∞
149
150 Stabilitatea metodelor cu mai mulţi paşi
cu două lungimi de pas h = 0.02 şi 0.01. Rezultatele sunt prezentate ı̂n tabela
9.1. Singura valoare de pornire ı̂n acest caz s-a obţinut dintr-un calcul ı̂n dublă
precizie a lui ex , cu o precizie de 15 cifre semnificative corecte. Deoarece y 0 > 0,
această problemă nu necesită o formulă absolut stabilă. Cu cel mai mare dintre
paşi soluţia ı̂ncepe rapid să se comporte prost, iar semnele erorii alternează. O
examinare mai atentă va arată că erorile in paşi succivi vor diferi cu un factor
de -5. La ı̂njumătăţirea pasului ne vom aştepta să reducem eroarea, cu ub factor
de aproximativ 8, deoarece se stie că formula are ordinul algebric 3. Rezultatele
nu confirmă aceasta. de fapt, pe acelaşi interval de integrare, creşterea erori
cu h = 0.01 este catastrofală. Înjumătăţirea pasului are efect opus celui dorit.Se
observă acelaşi factor ı̂ntre erorile succesive. Reamintim de asemenea s-a ilustrat
rezolvarea cu formula predictor-corector (7.9) ı̂n tabela 7.6. Rezultatele nu dau
nici o indicaţie asupra comportării evidenţiate ı̂n tabela 9.1.
Pentru a ı̂nţelege eroarea oscilantă rapid crescătoare, este necesar să consi-
derăm ecuaţia cu diferenţe ce rezultă din aplicarea predictorului Hermite ecuatiei
y 0 = y. Această ecuaţie este de ordinul al doilea, fiind
Rădăcinile ei sunt
p
θ0 , θ1 = 2h − 2 ± 9 − 6h + 4h2 (9.3)
şi deci soluţia ecuaţiei cu diferenţe , ce dă soluţia numerică la fiecare pas se poate
scrie sub forma
yn = C0 θ0n + C1 θ1n ,
ubde C0 şi C1 se determină din valorile de pornire y0 şi y1 . Aplicând acum
teorema binomului rădăcinilor caracteristice (9.3) obţinem
θ0 = eh + O(h4 ), θ1 = −5 + O(h).
h = 0.02 h = 0.01
xn yn − y(xn ) yn − y(xn )
0.00 0 0
0.01 0
0.02 0 −1.6801e − 009
0.03 4.9561e − 009
0.04 −2.7097e − 008 −2.9774e − 008
0.05 1.4105e − 007
0.06 7.8577e − 008 −7.0979e − 007
0.07 3.5171e − 006
0.08 −4.7279e − 007 −1.7493e − 005
0.09 8.6924e − 005
0.10 2.2206e − 006 −4.3203e − 004
0.11 2.1472e − 003
0.12 −1.1117e − 005 −1.0672e − 002
0.13 5.3039e − 002
0.14 5.4741e − 005 −2.6361e − 001
0.15 1.3101e + 000
0.16 −2.7064e − 004 −6.5115e + 000
0.17 3.2362e + 001
0.18 1.3368e − 003 −1.6084e + 002
0.19 7.9940e + 002
0.20 −6.6043e − 003 −3.9730e + 003
[3] M. Calvo, J. L. Montijano, L. Randez, A 5th order interpolant for the Dor-
mand & Prince RK method, J. Comput. Appl. Math. 29 (1990), 91–100.
[10] E. Fehlberg, Classical fifth, sixth, seventh and eight order Runge-Kutta for-
mulas with step-size control, Tech. Report 287, NASA, 1968.
153
154 BIBLIOGRAFIE
[14] F. T. Krogh, Algorithms for changing the step size, SIAM J. Numer. Anal.
10 (1973), 949–965.
[17] P. J. Prince, Runge-Kutta processes and global error estimation, Ph.D. the-
sis, C.N.A.A., 1979.
[19] P. J. van der Houven, Explicit Runge-Kutta formulas with increased stabi-
lity boundary, Numer. Math 20 (1972), 149–164.
[20] J. H. Verner, Explicit Runge-Kutta methods with estimates of the local trun-
cation error, SIAM J. Numer. Anal. 27 (1978), 772–790.