Metode numerice - Aplicatii

Lucrarea 12.   Metode directe pentru rezolvarea ecuatiilor diferentiale ordinare: metoda Euler si metode de tip Runge-Kutta

 

Tema A - Metoda Euler 
Tema B - Metode Runge-Kutta 

Exista o serie de aplicatii practice care presupun studiul unor sisteme sau procese dinamice. In acest caz se urmareste stabilirea legii de variatie a unei functii y, care descrie starea sistemului. In general, functia y depinde nu numai de una sau mai multe variabile independente x, ci si de alte valori ale sale anterioare in raport cu una din variabilele independente, astfel spus de stari anterioare ale sistemului. Asemenea probleme conduc la modele matematice descrise de ecuatii diferentiale.

          In cazul particular al ecuatiilor diferentiale ordinare, orice problema descrisa de asemenea ecuatii poate fi redusa la studiul unui sistem de ecuatii diferentiale de ordin intai. De exemplu, ecuatia de ordinul doi :

                                

poate fi adusa la forma a doua ecuatii diferentiale de ordinul intai:

                                  

unde z(x) reprezinta o functie sau variabila dependenta auxiliara. Cea mai la indemana solutie de alegere a functiilor auxiliare z(x) consta in definirea lor ca derivate ale functiei originare y(x) sau ale functiilor auxiliare z(x) precedente in succesiunea substitutiilor de tip (8.2). Prin urmare, problema originara a ecuatiilor diferentiale ordinare poate fi redusa, in general, la analiza unui sistem de n ecuatii diferentiale de ordin intai scris pentru n functii yi(x), i=1,...,n sub forma:

                 

unde functiile fi descriu forme in general neliniare in variabila independenta x si cele n variabile dependente yi.

In general, acest sistem de ecuatii diferentiale ordinare  admite o infinitate de solutii. Pentru particularizarea uneia dintre acestea, care sa reprezinte solutia problemei studiate, este necesar ca ecuatiilor sa li se asocieze o serie de conditii specifice problemei respective. Aceste conditii impun de regula valori pentru functiile yi(x) in anumite puncte bine specificare. Pozitia acestor puncte in domeniul variabilei x pentru care se studiaza procesul determina tipul de problema si deseori chiar si metoda de rezolvare ce trebuie folosita.

 

Se considera problema numita cu conditii initiale pentru care se indica valorile functiilor yi(x) intr-un punct de referinta xR, considerat ca origine a procesului. Din considerente legate de simplificarea notatiilor folosite si pentru o mai buna intelegere a mecanismelor ce guverneaza diferitele metode numerice specifice, problema cu conditii initiale va fi prezentata pentru cazul particular al ecuatiilor diferentiale de ordin intai  (problema Cauchy) de forma

si conditiei initiale:

Pentru forme relativ simple ale ecuatiei prezentate,, problema Cauchy admite o rezolvare analitica, care are avantajul de a determina in forma explicita legea de variatie a functiei y  cu variabila independenta x. Numeroase aplicatii practice conduc la ecuatii diferentiale cu o forma complexa a expresiilor ce definesc derivata  dy/dx. Mai mult decat atat, uneori nici macar nu avem la dispozitie asemenea expresii, ci doar valori ale lor in anumite puncte. Din aceste motive, rezolvarea problemei se face pe cale numerica, cu metode special dezvoltate in acest scop.

          Ideea care sta la baza tuturor metodelor numerice de rezolvare a ecuatiilor diferentiale ordinare cu conditii initiale este urmatoarea: notatiile dy si dx se inlocuiesc cu cresterile finite Dy si Dx. Se obtine astfel o expresie algebrica care permite calculul variatiei functiei y(x) la modificarea variabilei independente x cu un pas Dx. Aproximatia numerica obtinuta pe aceasta cale se va apropia cu atat mai mult de solutia exacta cu cat pasul Dx va fi mai mic.

          Metodele numerice de rezolvare a unei ecuatii diferentiale  pornesc din punctul (x0, y0) precizat de conditia initiala si, avansand cu pasul Dx, determina un sir de puncte (xk, yk), k=1, 2,... care descriu sub forma numerica solutia problemei.

 

 Tema A - Metoda Euler 

Conform principiului de baza, la fiecare iteratie functia se aproximeaza prin adaugarea la valoarea curenta a unei corectii egala cu produsul dintre pasul de integrare si derivata functiei. Din punct de vedere formal, acest principiu descrie de fapt metoda Euler:

                   

Originea acestei formule se gaseste insa in dezvoltarea in serii Taylor a functiei y(x) in jurul punctului xk:

       

          Daca se cunoaste valoarea functiei in punctul xk, notata yk=y(xk), functia f(x,y) ce defineste ecuatia diferentiala ce defineste problema Cauchy permite calculul derivatelor de orice ordin y(q)(x) care apar in ultima relatie. Astfel, pentru primele doua derivate, se poate scrie:

  

unde prin f’x si f’y s-au notat derivatele partiale ale functiei f(x,y) in raport cu x, respectiv y. Prin urmare, daca se calculeazaderivatele y(q)(x) , este posibila evaluarea functiei y(x) in orice punct din vecinatatea lui xk. Aceasta este o metoda numerica, cunoscuta sub numele de   metoda   Taylor.   In   cazul  in  care  se  considera  o  distributie  uniforma  a  punctelor xk (xk+1=xk+h) este posibil ca pornind din punctul x0 corespunzator conditiei initiale a problemei Cauchy si folosind formula:

sa se determine solutia numerica a ecuatiei diferentiale sub forma unui sir de puncte (x0, y0), (x1, y1), … , (xk, yk), … .Daca din ultima relatie se retin numai primii doi termeni, se regaseste formula corespunzatoare metodei Euler:

              

Marginea superioara a erorii de trunchiere este:

                   

unde x este un punct din intervalul [xk, xk+1].

 

 


Algoritmul 1 – Metoda Euler


 

1.    Introducerea datelor initiale: functia f(x,y) din ecuatia diferentiala y’=f(x,y), pasul h de crestere a valorilor variabilei, numarul de puncte de calcul al solutiei, N:

2.    Indicarea conditiilor initiale x0 si y0, unde y0=F(x0)

3.    Initializarea coordonatelor punctului de pornire x(1)= x0, y(1)= y0;

4.    Aplicarea formulei Euler:

for k=1 to N-1 do

begin

          y(k+1)=y(k)+f(x, y(k))*h

          x=x+h

end;

1.    Solutia aproximativa se gaseste in vectorul y[1..n].

 


 

 

 

Tema B - Metodele Runge-Kutta

 

In cazul metodei Euler obisnuite deplasarea intre doua puncte de calcul succesive xk si xk+1, se face prin aplicarea unei corectii valorii yk determinata de produsul pasului de integrare h si derivata solutie y(x) calculata la extremitatea stanga a intervalului yk, folosind  functia f ce defineste ecuatia diferentiala. Se poate scrie, asadar:

          Pentru versiunea Cauchy, imbunatatirea preciziei se obtine calculand corectia ce se aplica lui yk in functia de derivata lui y(x) la mijlocul intervalului de lucru xk+1/2=xk+h/2. Calculul derivatei in acest punct necesita o aproximare pentru yk+1/2, care se obtine folosind un pas Euler clasic, adica:

          Metodele Runge–Kutta generalizeaza acest principiu. Pornind de la un punct de coordonate cunoscute (xk,yk), metodele Runge–Kutta avanseaza la punctul urmator aplicand valorii yk o combinatie liniara de corectii Kj , ponderate de o serie de coeficienti grj ce urmeaza a fi determinati:

In aceasta relatie r indica ordinul metodei. Metodele de tip Runge–Kutta au o serie de avantaje dintre care se amintesc: (i) sunt metode directe, deci nu necesita folosirea unor metode auxiliare la pornire; (ii) sunt identice cu seriile Taylor pana la termenul de rang r, deci exista posibilitatea estimarii erorii de trunchiere; (iii) nu necesita evaluari ale derivatelor partiale ale functiei f(x,y), ci numai ale functiei f in sine.

          Corectiile Kj se determina ca produs al pasului de integrare h cu anumite valori ale functiei f, calculate in puncte din vecinatatea punctului (xk, yk):

In toate cazurile se considera:

             deci:                

astfel incat se poate scrie:     

Mai ramane sa se precizeze valorile coeficientilor grj, aj si bji. Acesti coeficienti se determina impunand conditia ca formula Runge–Kutta sa coincida cu dezvoltarea in serii Taylor pana la rangul r. Se mentioneaza ca aceasta conditie conduce la un sistem de ecuatii neliniare cu necunoscutele grj, aj si bji  care, in general, contine mai putine ecuatii decat necunoscute. Rezolvarea acestui sistem impune precizarea a priori a unora dintre necunoscute, ceea ce face ca formula sa genereze un numar teoretic nelimitat de metode Runge–Kutta. In practica, insa, o raspandire mai larga o cunosc numai cateva asemenea metode. In continuare, se vor prezenta cateva cazuri particulare de metode Runge–Kutta.

 

Cazul r=1 (Formula Runge–Kutta de ordin intai) In acest caz relatiile de calcul, impreuna cu restrictia g11=1, conduc la:

adica tocmai formula metodei Euler obisnuite. Eroarea de trunchiere la un pas, este de ordinul h2.

 

          Cazul r=2 (Formula Runge–Kutta de ordin doi)

 Ecuatiile de calcul conduc in acest caz, succesiv, la:

   

Pentru determinarea coeficientilor necunoscuti aceasta expresie se dezvolta dupa puterile lui h in jurul punctului (xk, yk) si se retin numai termenii liniari:

   

Pe de alta parte, dezvoltarea in serii Taylor conduce la:

       

Impunand conditia ca ultimele doua expresii sa coincida, rezulta:

Daca se impune a priori g21=0, rezulta: g22=1 si a2=b21=1/2, respectiv o prima varianta de formula Runge–Kutta, de ordin doi:

Daca se impune g22=1/2, rezulta g21=1/2 si a2= b21=1, respectiv:

  

Aplicarea unui pas folosind formulele genereaza o eroare de trunchiere de ordinul h3.

 

Cazul r=3 (Formula Runge–Kutta  de ordin trei) Folosind un rationament similar celui desfasurat pentru r=2, se ajunge la un sistem de sase ecuatii cu opt necunoscute. Formula Runge–Kutta  de ordin trei cea mai uzuala este:

Fiind vorba de o metoda de ordin trei, eroarea de trunchiere asociata este de ordin h4.

 

Cazul r=4 (Formula Runge–Kutta de ordin patru) Aceasta este metoda Runge–Kutta  cel mai frecvent utilizata in practica si foloseste un sistem de coeficienti care conduce la formula:

          

Metoda Runge–Kutta  de ordin patru are o eroare de trunchiere de ordin h5.

 


Algoritmul 2 – Metoda Runge-Kutta de ordin 4


 

1.    Introducerea datelor initiale: functia f(x,y) din ecuatia diferentiala y’=f(x,y), pasul h de crestere a valorilor variabilei, numarul de puncte de calcul al solutiei, N:

2.    Indicarea conditiilor initiale x0 si y0, unde y0=f(x0)

3.    Initializarea coordonatelor punctului de pornire x(1)= x0, y(1)= y0;

4.    Aplicarea formulei Runge-Kutta:

for i=1 to N-1 do

begin

4.1.                   Calculul coeficientilor K1-K4 in punctual current, de coordinate (x(i), y(i)):

K1=f(x(i), y(i))*h

K2=f(x(i)+h/2, y(i)K1/2)*h

K3=f(x(i)+h/2, y(i)K2/2)*h

K4=f(x(i)+h, y(i)+K3)*h

4.2          Calculul valorii functiei y in punctul de abscisa x(i+1)

end;

5.    Solutia aproximativa se gaseste in vectorii x[1..n] si y[1..n].

 


 

   Aplicatii - Lista lucrarilor de laborator