EDO
EDO
PENTRU
ECUAȚII DIFERENȚIALE ORDINARE
NOTE DE CURS - versiunea 1.0, august 2014
Alexandru I. Nicolin
3
Cuprins
Cuvânt liminar 9
1 Introducere 11
1.1 Limbaje de programare și sisteme de calcul . . . . . . . . . . . . . . . . . 12
1.2 Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Metode multipas 17
2.1 Metode Adams-Bashforth . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Metode Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Implementări software disponibile . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Exerciții . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 Metode unipas 27
3.1 Metoda Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Metode Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Metode Runge-Kutta explicite . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Metode Runge-Kutta implicite . . . . . . . . . . . . . . . . . . . . 33
3.2.3 Metode Runge-Kutta împerecheate. Controlul erorii . . . . . . . . 38
3.3 Implementări software disponibile . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Exerciții și probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5 Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5
Listă de tabele
7
Cuvânt liminar
9
Cuvânt liminar
Univ. Dr. Virgil BĂRAN, șeful departamantului de Fizică teoretică, Matematici, Op-
tică, Spectroscopie, Plasmă, Laseri, pentru oportunitatea de a preda studenților înscriși
în programul masteral Fizică teoretică și computațională prezentele capitole de metode
numerice.
Orice comentariu cu privire la prezentele note de curs pot fi trimise autorului pe adresa
[Link]@[Link].
Alexandru Nicolin,
Măgurele, august, 2014
10
1 Introducere
Ideea de bază a acestui curs este că pentru o ecuație diferențială de tipul
există două tipuri distincte de metode numerice cu ajutorul cărora obținem aproximația
numerică a soluției ecuației precedente. Pentru o discretizare a lui x de tipul x0 , x1 =
x0 + h, x2 = x1 + h = x0 + 2h, x3 = x2 + h = x1 + 2h = x0 + 3h, etc., ambele tipuri
de metode numerice determină valorile lui y pentru precedentele valori ale lui x, anume
y (x1 ) = y1 , y (x2 ) = y2 , y (x3 ) = y3 , etc., însă diferă calitativ prin tipul polinomului care
interpolează funcția y. Astfel, cunoscută fiind valoarea funcției y de la punctul inițial x0
până la un punct oarecare xn și fiind necesară aflarea funcției în punctul xn+1 , ecuația
(1.1) se rescrie de obicei sub forma
ˆ xn+1
yn+1 = yn + dxf (x, y(x)) , (1.2)
xn
determinarea lui yn+1 depinzând acum de calculul integralei din partea dreaptă a ecua-
ției.
Primele metode folosite pentru calculul numeric al acestei integrale porneau de la
construirea unui polinom de interpolare F (x), ce coincide cu f atât în xn , cât și într-un
număr de puncte anterioare lui xn , anume xn−1 , xn−2 , etc., valoarea aproximativă a lui
yn+1 fiind dată de
ˆ xn+1
yn+1 ≈ yn + dxF (x; xn , xn−1 , xn−2 ...)
xn
= yn + h (βn fn + βn−1 fn−1 + βn−2 fn−2 ....) , (1.3)
unde βn , βn−1 , βn−2 , etc., sunt coeficienți numerici a căror valoare depinde de ordinul
polinomului de interpolare. Deoarece polinomul de interpolare folosit în calcul integralei
este determinat folosind informații cu privire la soluția ecuației în puncte precedente lui
xn aceste metode sunt denumite în mod curent metode multi-pas sau metode cu memo-
rie. Aceste metode apar în a doua jumătate a secolului al XIX-lea, fiind introduse într-o
carte celebră scrisă de Francis Bashforth și John Couch Adams asupra acțiunii capilare
(Bashforth și Adams (1883)) și sunt apoi rafinate de Forest Ray Moulton, un important
astronom american, în a cărui carte New methods in exterior ballistics (Moulton (1926))
sunt cuprinse o serie de noi metode numerice de determinare a traiectoriei proiectile-
lor, dezvoltate de autor în perioada Primului Război Mondial pentru Armata Statelor
11
1 Introducere
Unite ale Americii1 . Particularitatea acestor metode numerice este aceea că polinomul
de interpolare F este determinat folosind și punctul xn+1 , nu doar punctul xn și cele
precedente, valoarea aproximativă a lui yn+1 fiind
12
1.1 Limbaje de programare și sisteme de calcul
13
1 Introducere
1.2 Bibliografie
1. Bashforth, F., Adams, J. C., An attempt to test the theories of capillary action by
comparing the theoretical and measured forms of drops of fluids, with an explanation
of the method of integration employed in constructing the tables which give the
theoretical forms of such drops, Cambridge at the University Press (1883)
2. Moulton, F. R., New methods in exterior ballistics, Chicago University Press (1926)
3. Goldstine, H. H, A history of numerical analysis from the 16th through the 19th
century, Springer-Verlag (1977)
2
Recomandăm cititorilor interesați remarcabilul volum scris de D. R. Hartree asupra Calculating instru-
ments and machines în care descrie începuturile mașinilor digitale (calculatoarelor) și implementările
hardware ale câtorva metode numerice (astăzi) elementare.
14
1.2 Bibliografie
15
2 Metode multipas
THE NUMERICAL SOLUTION OF DIFFERENTIAL EQUATIONS
177. Theory of the Method The best method of integrating
differential equations numerically is one devised by J. C. Adams; it is
applicable to equations of any order, but for simplicity we shall
describe its application to equations of the first order. [...]
178. Bibliographical Note Of the other methods which have
been proposed for integrating differential equations, the best known is
that of Runge, Math. Ann. 46 (1895), p. 167, improved and
extended by Kutta, Zeits. f. Math. u. Phys. 46 (1901), p. 435.
(The calculus of observations. A treatise on numerical mathematics,
E. T. Whittaker și G. Robinson, 50 Old Bailey, London (1924))
x − xn x − xn−1
F (x) = fn−1 + fn . (2.1)
xn−1 − xn xn − xn−1
Cu el putem determina imediat soluția aproximativă a ecuației diferențiale în punctul
xn+1 , calculând o integrală extrem de simplă, i.e.,
ˆ xn+1
yn+1 ≈ yn + dxF (x),
xn
ˆ xn+1 ( )
x − xn x − xn−1
= yn + dx fn−1 + fn ,
xn xn−1 − xn xn − xn−1
( )
3 1
= yn + h fn − fn−1 . (2.2)
2 2
Pentru a spori acuratețea rezultatului anterior, putem crește ordinul polinomului de in-
terpolare (în calculul precedent, doar o dreaptă), prin adăugarea punctului (xn−2 , fn−2 ).
Noul polinom de interpolare (acum de ordinul doi) este dat de
17
2 Metode multipas
x − xn x − xn−1 x − xn x − xn−2
F (x) = fn−2 + fn−1
xn−2 − xn xn−2 − xn−1 xn−1 − xn xn−1 − xn−2
x − xn−2 x − xn−1
+ fn , (2.3)
xn − xn−2 xn − xn−1
iar noua soluție aproximativă este dată de
ˆ xn+1
yn+1 ≈ yn + dxF (x),
xn
ˆ xn+1 [
1 1
= yn + 2 dx (x − xn ) (x − xn−1 ) − (x − xn ) (x − xn−2 )
h xn 2
]
1
+ (x − xn−2 ) (x − xn−1 ) ,
2
( )
23 16 5
= yn + h fn − fn−1 + fn−2 (2.4)
12 12 12
Soluția aproximativă obținută mai sus poate fi determinată mai simplu, fără a aproxima
f (x), scriind yn+1 ca o combinație liniară de fn , fn−1 și fn−2 , și dezvoltând în serie în
jurul lui xn , anume
β1 + β2 + β3 = 1, (2.8)
1
−β2 − 2β3 = , (2.9)
2
β2 1
+2β3 = , (2.10)
2 6
a cărui soluție este dată de
23 16 5
β1 = , β2 = − , β3 = , (2.11)
12 12 12
așadar tocmai formula (2.4). Metode similare de determinare a coeficienților sunt folosite
și pentru metodele unipas de tip Runge-Kutta de ordin scăzut. Metoda nu funcționează
18
însă pentru metode (fie ele uni- sau multipas) de ordin înalt căci ecuațiile care rezultă
necesită condiții suplimentare pentru determinarea unică a coeficienților β.
Calculul polinomului de interpolare al lui f este relativ ușor atunci când sunt două
sau trei puncte, însă devine din ce în ce mai complicat odată cu creșterea numărului de
puncte. O soluție simplă și ingenioasă de calcul se bazează pe diferențele divizate din
tabelul de mai jos.
xn fn
fn − fn−1
xn−1 fn−1
h
fn−1 − fn−2 fn − 2fn−1 + fn−2
xn−2 fn−2
h 2h2
fn−2 − fn−3 fn−1 − 2fn−2 + fn−3 fn − 3fn−1 + 3fn−2 − fn−3
xn−3 fn−3
h 2h2 6h3
F0 (x) = fn , (2.12)
fn − fn−1
F1 (x) = fn + (x − xn ), (2.13)
h
fn − fn−1
F2 (x) = fn + (x − xn )
h
fn − 2fn−1 + fn−2
+ (x − xn ) (x − xn−1 ), (2.14)
2h2
fn − fn−1 fn − 2fn−1 + fn−2
F3 (x) = fn + (x − xn ) + (x − xn ) (x − xn−1 )
h 2h2
fn − 3fn−1 + 3fn−2 − fn−3
+ (x − xn ) (x − xn−1 ) (x − xn−2 ). (2.15)
6h3
19
2 Metode multipas
ˆ xn+1
dxF0 (x) = hfn , (2.16)
ˆxnxn+1
1
dxF1 (x) = hfn + (fn − fn−1 ) ,
xn 2
( )
3 1
= h fn − fn−1 , (2.17)
2 2
ˆ xn+1 ( )
3 1 5
dxF2 (x) = h fn − fn−1 + (fn − 2fn−1 + fn−2 ) ,
xn 2 2 12
( )
23 16 5
= h fn − fn−1 + fn−2 , (2.18)
12 12 12
ˆ xn+1 ( )
23 16 5 3
dxF3 (x) = h fn − fn−1 + fn−2 + (fn − 3fn−1 + 3fn−2 − fn−3 ) ,
xn 12 12 12 8
( )
55 59 37 9
= h fn − fn−1 + fn−2 − fn−3 . (2.19)
24 24 24 24
ˆ xn+1
dxf (x)
xn
pentru un polinom de grad doi, adica f (x) ≈ F1 (x), obținem aproximarea integralei
pentru un polinom de gradul trei calculând doar corecția, anume
ˆ xn+1 ˆ xn+1
dxF2 (x) = dxF1 (x)
xn xn
ˆ
xn+1
fn − 2fn−1 + fn−2
+ dx (x − xn ) (x − xn−1 ), (2.20)
xn 2h2
( )
3 1 5
= h fn − fn−1 + (fn − 2fn−1 + fn−2 ), (2.21)
2 2 12
( )
23 16 5
= h fn − fn−1 + fn−2 . (2.22)
12 12 12
20
2.1 Metode Adams-Bashforth
ˆ xn+1 ˆ xn+1 ∑
s s
dxFs (x) = dxFs−1 (x) + γs (−1)j fn−j , (2.23)
xn xn
j=0
j
unde
s 1 2 3 4 5 6 7 8
.
1 5 3 251 95 19087 5257 1070017
γs
2 12 8 720 288 60480 17280 3628800
Pentru o discuție detaliată asupra formulei (2.23) recomandăm Ref. [3], capitolul III.1
Classical linear multistep formulas.
21
2 Metode multipas
22
2.2 Metode Adams-Moulton
23
2 Metode multipas
puternic divergente. Ca o observație de ordin general metodele implicite sunt mult mai
stabile numeric decât cele explicite în implementarea lor necesită un efort computațional
sporit.
Înainte de a prezenta formulele propriu-zise, subliniem că acestea nu au legătură cu
dinamica corpurilor cerești, acesta fiind și sensul moto-ului acestui capitol. Parcursul
biografic al lui Moulton este în mod vădit unul exotic, însă formulele care urmează se
datorează aproape exclusiv studiilor balistice făcute în perioada primului război mondia
(a se vedea în acest sens A. Gluchoff, Artillerymen and mathematicians: Forest Ray
Moulton and changes in American exterior ballistics, 1885–1934, Historia Mathematica
38, 506 (2011)).
( )
1 1
yn+1 = yn + h f (xn+1 , yn+1 ) + f (xn , yn )
2 2
care definește acum o ecuație algebrică implicită în yn+1 ce trebuie rezolvată pentru
fiecare xn ! Daca dependența lui f de y este, de pildă, una polinomială, soluția numerică a
ecuației precedente nu este foarte dificilă, însă dacă dependența este una mai complicată,
sa zicem de tip sin (yn ), ecuația care rezultă este una transcendentă iar soluția numerică
24
2.3 Implementări software disponibile
2.4 Exerciții
Exercițiul 1: (Adaptare după An approach to the Adams-Bashforth formula, M. Ritter, The Mathe-
matical Gazette 63, 48 (1979)) Considerând că F (x) este un polinom de gradul n iar F (x + h) se poate
scrie ca
( )
F (x + h) − F (x) = h B0 F ′ (x) + B1 F ′ (x − h) + ... + BN −1 F ′ (x − (n − 1)h) , (E.2.1)
să se arate că dezvoltarea în serie Taylor a funției F și a derivatelor sale și conduce la urmatorul sistem
de ecuații
25
2 Metode multipas
B0 + B1 + ... + Bn = 1
1
1 2 3 ... ... n−1 B1 −
2
1
12 22 32 ... ... (n − 1)2 B2
3
13 23 33 (n − 1)3 −
1 (E.2.2)
... ... B3
= 4
... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ...
(−1)n−1
1n−1 2n−1 3n−1 ... ... (n − 1)n−1 Bn−1 −
n
Să se determine soluția numerică a ecuațiilor din sistemul (E.2.2) pentru n = 1, 2, 3, 4 și 5, și să se arate
că ecuația (E.2.1) descrie metodele Adams-Bashforth de ordinul 1, 2, 3, 4 și 5.
2.5 Bibliografie
1. Bashforth, F., și Adams, J. C., An attempt to test the theories of capillary action by comparing the
theoretical and measured forms of drops of fluids, with an explanation of the method of integration
employed in constructing the tables which give the theoretical forms of such drops, Cambridge at
the University Press (1883)
2. Butcher, J. C., Numerical methods for ordinary differential equations, John Wiley & Sons (2008)
3. Hairer, E., Nørsett, S.P., Wanner, G., Solving ordinary differential equations I. Nonstiff Problems,
Springer (2008)
4. Dormand, J.R., Numerical methods for differential equations. A computational approach, CRC
Press (1996)
5. Shampine, L.F., Gladwell, I., și Thompson, S., Solving ODEs with Matlab, Cambridge University
Press (2003)
26
3 Metode unipas
Metodele prezentate în capitolul precedent se bazează pe determinarea soluției numerice
folosind un polinom de interpolare global cu ajutorul căruia determinăm soluția unei
ecuații diferențiale la xn utilizând informațiile de la xn−1 , xn−2 , xn−3 , etc. Deoarece
interpolarea este globală, ar putea părea firesc ca aceste metode să fie prezentate după
metodele de Runge-Kutta care determină soluția la xn folosind exclusiv informația la
xn−1 . Numeroasele volume care preferă această abordare au în vedere faptul că meto-
dele unipas sunt metode fără memorie, în timp ce metodele de tip Adams sunt metode
cu memorie care necesită, de obicei, atenție sporită la implementarea numerică. Pre-
zentând metodele multipas înaintea celor unipas vrem să subliniem diferențele calitative
dintre polinoamele de interpolare. Astfel, chiar dacă metodele multipas se bazează pe
o interpolare globală, aceasta este una foarte simplă, polinomială, în timp ce interpola-
rea locala a metodelor unipas este, cum vom vedea, mult mai complicată, aspect care
motivează prezentarea acestora după metodele multipas.
În cele ce urmează vom prezenta metoda Euler și diferitele clase de metode Euler.
Discuția asupra metodelor Runge-Kutta pornește de la metodele Runge-Kutta explicite,
folosite în general pentru majoritatea problemelor care nu au probleme deosebite de
stabilitate, și continua apoi cu metodele implicite. Acestea sunt folosite cu precădere
pentru așa-numitele probleme rigide, i.e., pentru determinarea numerică a soluțiilor
ecuațiilor diferențiale ale căror soluții prezintă atât oscilații de frecvență foarte mică, cât
și oscilații de frecvență foarte mare. Capitolul se încheie cu o discuție detaliată asupra
metodelor Runge-Kutta împerecheate cu ajutorul cărora obținem controlul optim al
erorii.
Lăsând la o parte aspectele tehnice mesajul principal al acestui capitol este că metodele
de tip Runge-Kutta cunosc o diversitate mult mai mare decât metodele de tip Adams,
fiind utilă pentru o clasă mult mai largă de probleme, numele unui articol classic al lui
J. B. Rosser din 1967 fiind chiar A Runge-Kutta for all seasons (SIAM Review 9, 417
(1967)). Acest aspect este reflectat și în literatura de profil, extrem de amplă în ceea
ce privește metodele. Opțiunile bibliografice privitoare la metodele Runge-Kutta sunt
extrem de variate, unii autori optând pentru vaste articole de sinteză, în timp ce alții
optează pentru cărți de referință. În ceea ce ne privește am optat pentru autori clasici,
cu contribuții recunoscute internațional la dezvoltarea domeniului, ale căror cărți sunt
unanim recunoscute. Numele cel mai des întâlnit în paginele ce urmează este al Prof.
John C. Butcher, Profesor de Matematică la University of Auckland, care introduce în
anii ’60 metodele Runge-Kutta implicite și tabelul care îi poartă numele cu ajutorul
căruia se pot transmite într-o formă concisă toate informațiile privitoare la o anumită
metodă. Istoria metodelor Runge-Kutta scrisă de Prof. Butcher, Ref. [6] a acestui
capitol, a devenit un text de referință, în timp ce tratatul Numerical methods for ordinary
27
3 Metode unipas
differential equations (a se vedea Ref. [7] a acestui capitol) a devenit o carte clasică.
Munca Prof. Butcher a fost continuată de E. Hairer, S. P. Nørsett și G. Wanner ale
căror două volume dedicate Solving ordinary differential equations (a se vedea Ref. [8]
și Ref. [9]) sunt, pentru foarte multe probleme, referința ultimă în domeniu.
Efortul computațional al metodei Euler este minim, dar precizia este de asemenea mi-
nima.
Prima extensie a metodei Euler este așa-numită metodă a punctului de mijloc, pentru
care, data fiind ecuația diferențială autonoma
28
3.2 Metode Runge-Kutta
( )
h
y (x0 + h) ≈ y0 + hf x + , (3.9)
2
( )
h
y (x1 + h) ≈ y1 + hf x1 + , (3.10)
2
... (3.11)
( )
h
y (x) ≈ yN −1 + hf xN −1 + . (3.12)
2
Pornind de la această aproximare a soluției pentru sisteme dinamice autonome, vom
considera mai jos ecuația neautonoma
( ( ))
h h
y (x0 + h) ≈ y0 + hf x0 + , y x0 + .
2 2
Această schemă se poate scrie sub forma
k1 = f (x0 , y0 ) , (3.14)
( )
h h
k2 = f x 0 + , y 0 + k1 , (3.15)
2 2
y1 = y0 + hk2 , (3.16)
care este, după vom vedea în paginile următoare, forma standard de scriere a unei metode
Runge-Kutta. Pentru a ne convinge că această metodă este de ordinul 2, vom scrie întâi
serie Taylor a lui y1 ca funcție de h
( )
h h
y1 = y0 + hf x0 + , y0 + f (x0 , y0 ) , (3.17)
2 2
h2
= y0 + hf (x0 , y0 ) + (fx + fy f ) (x0 , y0 )
2
h3 ( ) ( )
+ fxx + 2fxy f + fyy f 2 (x0 , y0 ) + O h4 , (3.18)
8
29
3 Metode unipas
c2 a21
c3 a31 a32
.. .. .. ..
. . . .
b1 b2 ... bs−1 bs
h2
y (x0 + h) = y0 + hf (x0 , y0 ) + (fx + fy f ) (x0 , y0 )
2!
h3 ( ) ( )
+ fxx + 2fxy f + fyy f 2 + fy fx + fy2 f + O h4 . (3.19)
3!
( )
Din diferența y (x0 + h)−y1 = O h3 reiese clar că metoda precedentă este precisă până
la termeni de ordinul lui h3 , fiind așadar o metodă de ordinul 2.
Forma generală sub care este scrisă o metode Runge-Kutta este
k1 = f (x0 , y0 ) , (3.20a)
k2 = f (x0 + c2 h, y0 + ha21 k1 ) , (3.20b)
k3 = f (x0 + c3 h, y0 + h (a31 k1 + a32 k2 )) , (3.20c)
... (3.20d)
ks = f (x0 + cs h, y0 + h (as1 k1 + as2 k2 + ... + as,s−1 ks−1 )) , (3.20e)
y1 = y0 + h (b1 k1 + b2 k2 + ... + bs ks ) , (3.20f)
ecuațiile precedente putând fi comprimate într-un tabel de forma de mai jos, numit în
general tabel Butcher.
În general vorbim de „metoda de ordin 2”, dar așa cum se observă în tabel avem o
30
3.2 Metode Runge-Kutta
c2 c2
1 1
1−
2c2 2c2
Tabel 3.2: Metoda Runge-Kutta explicită (generală) cu s = p = 2 și c2 parametru liber.
întreagă clasă de metode, fiecare metodă fiind definită de valoarea lui c2 . De exemplu,
metoda definita de ecuațiile (3.14)-(3.16) se poate obține din tabelul Butcher (3.2) pentru
c2 = 0.5.
Parte din arta dezvoltării metodelor Runge-Kutta ține de calculul tabelelor Butcher.
Pentru metodele de ordin scăzut se poate aplica un raționament similar celui din jurul
ecuațiilor (3.17)-(3.19). Ideea generală este aceea de a folosi seriile Taylor ale lui y ca
funcție de x și h pentru a identifica parametrii unei metode de ordin dat. Astfel, pentru
o metodă în trei pași de ordinul trei, i.e., s = p = 3, obținem (din egalarea seriilor
Taylor) urmatoarele patru ecuații algebrice
b1 + b2 + b3 = 1, (3.21)
1
b2 c2 + b3 c3 = , (3.22)
2
1
b2 c22 + b3 c23 = , (3.23)
3
1
b3 a32 c2 = . (3.24)
6
31
3 Metode unipas
c2 c2
( )
c3 3c2 − 3c22 − c3 c3 (c3 − c2 )
c3
c2 (2 − 3c2 ) c2 (2 − 3c2 )
−3c3 + 6c2 c3 + 2 − 3c2 3c3 − 2 2 − 3c2
6c2 c3 6c2 (c3 − c2 ) 6c3 (c3 − c2 )
2 2
3 3
2 2 1 1
−
3 3 4b3 4b3
1 3
− b3 b3
4 4
Tabel 3.4: Metoda Runge-Kutta explicită (generală) cu s = p = 3. Clasa II de soluții
corespunde metodelor pentru care c2 = c3 = 23 , b3 ̸= 0.
2 2
3 3
1 1
0 −
4b3 4b3
1 3
− b3 b3
4 4
Tabel 3.5: Metoda Runge-Kutta explicită (generală) cu s = p = 3. Clasa III de soluții
̸ 0.
corespunde metodelor pentru care c2 = 23 , c3 = 0, b3 =
32
3.2 Metode Runge-Kutta
b1 + b2 + b3 + b4 = 1 (3.25)
1
b1 c1 + b2 c2 + b3 c3 + b4 c4 = (3.26)
2
2 2 2 2 1
b1 c1 + b2 c2 + b3 c3 + b4 c4 = (3.27)
3
1
b3 a32 c2 + b4 (a42 c2 + a43 c3 ) = (3.28)
6
3 3 3 1
b2 c2 + b3 c3 + b4 c4 = (3.29)
4
1
b3 c3 a32 c2 + b4 c4 (a42 c2 + a43 c3 ) = (3.30)
8
2
( 2 2
) 1
b3 a32 c2 + b4 a42 c2 + a43 c3 = (3.31)
12
1
b4 a43 a32 c2 = (3.32)
24
ale cărui soluții sunt mult mai dificile decât cele ale ecuațiilor (3.21)-(3.24). Soluțiile
ecuațiilor (3.25)-(3.32) au fost determinate pentru prima oară de M. W. Kutta care le-a
împărțit în cinci clase distincte, fiecare având mai mulți parametrii liberi. Doua dintre
metodele determinate de Kutta au devenit extrem de populare în literatura de specia-
litate, anume metoda Runge-Kutta (cunoscută în engleză ca the Runge-Kutta method,
prezentată în tabelul Butcher (3.6)) și „regula 3/8” (prezentată în tabelul Butcher (3.7)).
Pentru o discuție detaliată asupra metodelor Runge-Kutta de ordin 4 recomandăm Ref.
[7], secțiunea 3.2 Low order explicit methods, subsecțiunea 3.2.2 Methods of order 4.
În alegerea unei metode contează povara computațională a evaluărilor funcției f . Din
acest motiv metoda din tabelul Butcher (3.6) a devenit metoda Runge-Kutta: având trei
elemente nule în tabelul Butcher necesită cu 30% mai puține evaluări decât metoda (3.7)
la aceeași acuratețe numerică.
În articolele de pionierat asupra metodele Runge-Kutta de la începutul secolului XX
ecuațiile algebrice care descriu o anumită metodă erau determinate manual, prin cal-
cule laborioase care duceau, cum vom vedea, la unele erori. Astăzi însă determinarea
ecuațiilor se face automat, grație așa-numiților arbori Runge-Kutta (a se vedea Ref. [7],
secțiunea 3.1 Order conditions). Deoarece ecuațiile algebrice care definesc metodele de
ordin înalt sunt extrem de complicate prezentăm mai jos doar tabelele Butcher pentru
două din metodele de ordin 5 introduse de Kutta, (3.8) și (3.9). A doua din aceste
metode este însă greșită, ecuațiile algebrice asociate fiind însă rezolvate incorect, varian-
ta corectă a tabelului Butcher fiind publicată de Nyström în 1925, tabel pe care noi îl
reproducem în (3.10).
33
3 Metode unipas
1 1
2 2
1 1
0
2 2
1 0 0 1
1 1 1 1
6 3 3 6
Tabel 3.6: Metoda Runge-Kutta de ordin 4.
1 1
3 3
2 1
− 1
3 3
1 1 −1 1
1 3 3 1
8 8 8 8
Tabel 3.7: Metoda Runge-Kutta de ordin 4, cunoscută drept „regula 3/8”.
34
3.2 Metode Runge-Kutta
1 1
5 5
2 2
0
5 5
9 15
1 −5
4 4
3 63 9 13 2
− −
5 100 5 20 25
4 6 4 2 8
− 0
5 25 5 15 75
17 25 1 25 25
0 −
144 36 72 72 48
Tabel 3.8: Metodă Runge-Kutta de ordin 5 determinată de Kutta.
1 1
3 3
2 4 6
5 25 25
1 15
1 −3
4 4
2 6 90 50 8
−
3 81 81 81 81
4 7 18 5 4
− 0
5 30 30 30 30
48 125 81 100
0 0 −
192 192 192 192
Tabel 3.9: Metodă Runge-Kutta de ordin 5 determinată de Kutta. Metoda este incorec-
tă, variantă corectă a coeficienților fiind determintă de Nyström în 1925 (a se
vedea tabelul Butcher (3.10)).
35
3 Metode unipas
1 1
3 3
2 4 6
5 25 25
1 15
1 −3
4 4
2 2 10 50 8
−
3 27 9 81 81
4 2 12 2 8
0
5 25 25 15 75
23 125 27 125
0 0 −
192 192 64 192
Tabel 3.10: Metodă Runge-Kutta de ordin 5 corectată de Nyström.
Evident, definiția este prea puțin utilă așa că vom încerca mai jos o abordare diferită.
Ideea fundamentală este următoarea: sistemele algebrice care descriu metodele Runge-
Kutta atunci când niciun element aij nu este în mod obligatoriu zero sunt imposibil de
rezolvat fără ipoteze simplificatoare. Altfel spus, fără a veni cu ipoteze sau presupuneri
cu privire la valorile numerice ale unor elemente din tabelul Butcher, nu putem obține
soluții de genul celor sistematizate în tabelele Butcher (3.3)-(3.5).
În paginile care urmează vom prezenta cea mai importantă clasă de metode Runge-
Kutta implicite ce are la baza cuadraturile gaussiene.
P0∗ = 1, (3.33)
P1∗ = 2x − 1, (3.34)
P2∗ = 6x − 6x + 1,
2
(3.35)
P3∗ = 20x − 30x + 12x − 1.
3 2
(3.36)
36
3.2 Metode Runge-Kutta
1 1
2 2
mic de pași nu poate fi atins cu metode explicite. Pentru √ cele două valori √
numerice ale
1 3 1 3
lui c vom utiliza radăcinile ecuației P2∗ = 0, i.e., c1 = − și c2 = + . Calcule
2 6 2 6
detaliate arată ca tabelul Butcher al metodei este cel din (3.12).
Menționăm
√ în cele din urmă că√folosind pentru c rădăcinile ecuației P3∗ = 0, i.e., c1 =
1 15 1 1 15
− , c2 = și c3 = + , putem obține metoda Runge-Kutta implicită cu
2 10 2 2 10
s = 3 și p = 4 definită în tabelul Butcher (3.13).
Se impun câteva precizări privitoare la metodele Runge-Kutta implicite:
1. Faptul că aceste metode oferă un ordin mare cu un număr relativ mic de pași
nu implică și un plus de eficiență a metodelor, căci costul rezolvării numerice, la
fiecare pas, a ecuațiilor (3.20a)-(3.20f), atenție (!), acum implicite, poate fi extrem
de mare pentru sistemele dinamice în care funcția f este puternic neliniară.
2. Aceste metode devin eficiente pentru așa-numitele sisteme rigide, pentru care se
√ √ √
1 15 5 2 15 5 15
− − −
2 10 36 9 15 36 30
√ √
1 5 15 2 5 15
+ −
2 36 24 9 36 24
√ √ √
1 15 5 15 2 15 5
+ + +
2 10 36 30 9 15 36
5 4 5
18 9 18
Tabel 3.13: Metodă Runge-Kutta bazată pe cuadraturi gaussiene cu s = 3 și p = 4.
37
3 Metode unipas
3. Tipul de probleme pentru care metodele Runge-Kutta implicite sunt eficiente este
excelent descris intr-un articol clasic scris de L. F. Shampine și C. W. Gear, A
user’s view of solving stiff ordinary differential equations, SIAM Review 21, 1
(1979): „The problems called ”stiff” are too important to ignore, and are too
expensive to overpower. They are too important to ignore because they occur
in many physically important situations. They are too expensive to overpower
because of their size and the inherent difficulty they present to classical methods,
no matter how great an improvement in computer capacity becomes available.
Even if one can bear the expense, classical methods of solution require so many
steps that roundoff errors may invalidate the solution. It is all the more frustrating
that the solutions of stiff problems look like they should be particularly easy to
compute. [...] By a stiff problem we mean one for which no solution component is
unstable (no eigenvalue has a real part which is at all large and positive) and at
least some component is very stable (at least one eigenvalue has a real part which
is large and negative). Further, we will not call a problem stiff unless its solution
is slowly varying with respect to the most negative real part of the eigenvalues.
(Roughly, we mean that the derivatives of the solution are small compared to
the corresponding derivatives [...]) Consequently, a problem may be stiff for some
intervals of the independent variable and not for others. [...] The essence of the
matter is that for most problems the accuracy requirement dictates the choice of
step size, but for some, the stiff problems, the stability requirement does. [...] One
worry should be dispelled at once. When implemented properly, the instability on
encountering stiffness of classical methods such as Euler’s is automatically detected
and handled by reducing the step size. Computer programs suitable for nonstiff
problems do not ”blow up” in the presence of stiffness, they just become inefficient.”
38
3.2 Metode Runge-Kutta
1 1
2 2
3 3
0
4 4
2 1 4
1
9 3 9
2 1 4
0
9 3 9
1 1 1 1
8 4 3 8
Tabel 3.14: Metode Runge-Kutta împerecheate. Prima metodă, cea superioară, este de
ordin p = 2 în timp ce a doua, cea inferioară, este de ordin p = 3.
39
3 Metode unipas
1 1
3 3
1 1 1
3 6 6
1 1 3
0
2 8 8
1 3
1 0 − 2
2 2
1 2 1
0 0
6 3 6
1 3 2 1
0
10 10 5 5
Tabel 3.15: Metode Runge-Kutta-Merson împerecheate. Prima metodă, cea superioară,
este de ordin p = 3 în timp ce a doua, cea inferioară, este de ordin p = 4.
1
Erwin Fehlberg este considerat a fi unul dintre părinții metodelor Runge-Kutta împerecheate, lucrările
sale de pionierat din perioada când lucra la NASA, toate cu un singur autor, fiind puncte de referință
în domeniu. Deoarece o parte din ele au fost avut o bună perioadă un caracter secret, abia recent
fiind disponibile pe serverul de documente al NASA, menționăm aici pe cele mai importante dintre
ele: Technical Note D-1834, On the error propagation of some interpolation formulas for second-order
differential equations, July 1963; Nasa Technical Report - 248, New one-step integration methods of
high-order accuracy applied to some problems in celestial mechanics, October 1966; Nasa Technical
Report - 287, Classical fifth-, sixth-, seventh-, and eighth-order Runge-Kutta formulas with stepsize
control, October 1968; Nasa Technical Report - 315, Low order classical Runge-Kutta formulas with
stepsize control and their application to some heat transfer problems, July 1969; Nasa Technical Report
- 352, Some experimental results concerning the error propagation in Runge-Kutta type integration
formulas, October 1970; Nasa Technical Report - 381, Classical eightth- and lower-order Runge-
Kutta-Nystrom formulas with stepsize control for special second-order differential equations, March
1972; Nasa Technical Report - 410, Classical eightth- and lower-order Runge-Kutta-Nyström formulas
with a new stepsize control procedure for special second-order differential equations, June 1973; Nasa
Technical Report - 432, Classical seventh-, sixth-, and fifty-order Runge-Kutta-Nyström formulas with
stepsize control for general second-order differential equations, October 1974.
40
3.2 Metode Runge-Kutta
1 1
2 2
1 1
0
2 2
1 0 0 1
3 5 7 13 1
−
4 32 32 32 32
1 1 1 1
0
6 3 3 6
1 7 7 13 16
− −
2 3 3 6 3
Tabel 3.16: Metode Runge-Kutta-Zonneveld împerecheate. Prima metodă, cea superi-
oară, este de ordin p = 4 în timp ce a doua, cea inferioară, este de ordin
p = 5.
c2 c2
c3 (3c2 (1 − c2 ) − c3 ) c3 (c3 − c2 )
c3
c2 (2 − 3c2 ) c2 (2 − 3c2 )
2 − 3 (c2 + c3 ) + 6c2 c3 2 − 3c3 2 − 3c2
ordin 3
6c2 c3 6c2 (c2 − c3 ) 6c3 (c3 − c2 )
1 1
1− ordin 2
2c2 2c2
1 ordin 1
Tabel 3.17: Metode Runge-Kutta triplu împerecheate făcute pe baza tabelului Butcher
(3.3).
41
3 Metode unipas
2 2
3 3
1 1
0 −
4b3 4b3
1 3
− b3 b3 ordin 3
4 4
1 3
ordin 2
4 4
1 ordin 1
Tabel 3.18: Metode Runge-Kutta triplu împerecheate făcute pe baza tabelului Butcher
(3.4).
2 2
3 3
2 2 1 1
−
3 3 4b3 4b3
1 3
− b3 b3 ordin 3
4 4
1 3
ordin 2
4 4
1 ordin 1
Tabel 3.19: Metode Runge-Kutta triplu împerecheate făcute pe baza tabelului Butcher
(3.5).
42
3.3 Implementări software disponibile
43
3 Metode unipas
γ γ 0
1−γ 1 − 2γ γ ,
1 1
2 2
( √ )
unde γ = 3 ± 3 /6, este de ordinul 3. Comentați influența elementului nul din tabelul Butcher asupra
schemei numerice.
Exercițiul 2: Să se arate că tabelul Butcher
2 2
3 3
2 2
0
3 3
1 3
4 4
1 3 3
4 8 8
descrie o metoda Runge-Kutta cuplată de ordinul 2(3).
Problema 1: Să se rezolve numeric sistemul Lorentz
dx
= σ (y − x) (P.3.1a)
dt
dy
= x (ρ − z) − y (P.3.1b)
dt
dz
= xy − βz (P.3.1c)
dt
pentru ρ = 28, σ = 10, β = 8/3 și condițiile inițiale x(0) =, y(0) =, z(0) = și să se determine traiectoriile
din spațiul fazelor folosind metode Runge-Kutta implicite și explicite (de exemplu, Zonneveld și Gauss-
Legendre cu s = 2, p = 4). Se justifică utilizarea metodelor Runge-Kutta implicite? Să se determine
traiectoriile din spațiul fazelor pentru ρ = 99.96, păstrând ceilalți parametri constanți. Ce diferențe se
observă?
44
3.5 Bibliografie
dx
= −y − z (P.3.2a)
dt
dy
= x + ay (P.3.2b)
dt
dz
= b + z (x − c) (P.3.2c)
dt
și să se determine traiectoriile soluțiilor în planul x − y pentru a = b = 1 și c = 4, 6, 8.5, 8.7, 9, 12, 13
și 18. Se vor folosi condițiile inițiale x(0) =, y(0) =, z(0) = Să se determine perioada traiectoriilor
determinate numeric.
3.5 Bibliografie
1. Gear, C. W., Numerical initial value problems in ordinary differential equations, Prentice-Hall
(1971)
2. Iserles, A., A first course in the numerical analysis of differential equations, Cambridge University
Press (2009)
3. Ascher, U. M., Numerical methods for evolutionary differential equations, Society for Industrial
and Applied Mathematics (2008)
4. Griffiths, D. F., și Higham, D. J., Numerical methods for ordinary differential equations. Initial
value problems, Springer (2010)
5. Atkinson, K. E., Han, W., și Stewart, D. E., Numerical solution of ordinary differential equations,
John Wiley & Sons (2009)
6. Butcher, J. C., A history of Runge-Kutta methods, Applied Numerical Mathematics 20, 247
(1996).
7. Butcher, J. C., Numerical methods for ordinary differential equations, John Wiley & Sons (2008)
8. Hairer, E., Nørsett, S.P., și Wanner, G., Solving ordinary differential equations I. Nonstiff Pro-
blems, Springer (2008)
9. Hairer, E., și Wanner, G., Solving ordinary differential equations II. Stiff and differential-algebraic
problems, Springer (2010)
10. Hairer, E., Lubich, C., și Wanner, G., Geometric numerical integration. Structure-preserving
algorithms for ordinary differential equations, Springer (2000)
11. Dormand, J. R., Numerical methods for differential equations. A computational approach, CRC
Press (1996)
12. Leimkuhler, B., și Reich, S., Simulating Hamiltonian dynamics, Cambridge University Press
(2004)
13. Shampine, L. F., Gladwell, I., și Thompson, S., Solving ODEs with Matlab, Cambridge University
Press (2003)
14. Verner, J. H., Families of imbedded Runge-Kutta methods, SIAM Journal of Numerical Analysis
16, 857 (1979)
45