Sunteți pe pagina 1din 12

Departamentul A.I.A.

Matematici Asistate de Calculator

Lucrarea de laborator 9 Rezolvarea ecuaiilor difereniale ordinare i a sistemelor de ecuaii difereniale ordinare.
Cuprinsul lucrrii Consideraii pregtitoare: Ecuaii difereniale ordinare Ecuaii difereniale ordinare de ordin superior. Sisteme de ecuaii difereniale ordinare Aplicaii n Matlab Aplicaii n Mathcad

1. Consideraii pregtitoare Studiul comportamentului dinamic al sistemelor fizice conduce la modele matematice sub forma ecuaiilor sau sistemelor de ecuaii difereniale ordinare, liniare sau neliniare. n general acestea nu pot fi rezolvate pe cale analitic, prin metode clasice, datorit faptului c uneori nu se cunosc expresiile funciilor care definesc derivatele, iar alteori aceste expresii sunt complicate. Ecuaii difereniale ordinare Problema de rezolvare a unei ecuaii difereniale de ordinul nti se pune astfel: Se consider ecuaia diferenial ordinar:
dy = f ( x, y ) , f : [a, b] x I R , dx

[a, b], I R

, a = x0 ,

(se noteaz y =

dy , I interval) , dx

cu condiia iniial: y 0 = y ( x0 ) . Se cere s se determine expresia funciei y(x) care verific relaiile de mai sus. Problema enunat este cunoscut sub denumirea de problem de tip Cauchy. Se presupune c s-a efectuat n prealabil un studiu al problemei enunate, constatndu-se existena i unicitatea soluiei. n continuare, pentru determinarea aproximativ a soluiei se poate proceda n dou moduri:

Departamentul A.I.A.

Matematici Asistate de Calculator

a) fie se caut o funcie z(x) care s aproximeze ct mai bine pe y(x) pentru x [a, b] , ceea ce reprezint o rezolvare aproximativ analitic; b) fie se determin valorile y1, y2, , yn care s aproximeze ct mai bine valorile exacte y(x1), y(x2), , y(xn), ale lui y(x) pentru x [a, b] dac punctele x0, x1, , xn [a, b] sunt considerate echidistante: xi+1 xi = h , i = 0 n1 , unde h reprezint pasul de discretizare (de integrare) i capetele intervalului cruia i aparine variabila independent x sunt: x0 = a, xn = b. Acest ultim mod de determinare aproximativ a soluiei, b), numit i metod numeric propriu-zis, este ilustrat n fig.1.

Fig.1. Punerea problemei de rezolvare a unei ecuaii difereniale ordinare printr-o metod numeric propriu-zis. n continuare se consider numai metode numerice propriu-zise (de tip b), caracterizate prin faptul c determinarea valorilor aproximative y1, y2, ..yn se va face folosind relaii de tip: yi = yi-1 + hg(xj, yj, h) , i = 1 n , j = 1 i1 . Metodele de integrare numeric se mpart n dou categorii n funcie de numrul de puncte utilizate anterior punctului current (xi, yi): 1) metode monopas sau cu pai separai, care la determinarea lui yi utilizeaz informaiile referitoare numai la un singur punct anterior, corespunztor lui xi-1; 2) metodele multipas sau cu pai legai, care la determinarea lui yi utilizeaz informaiile referitoare la mai multe puncte anterioare, corespunztoare lui xi-1,xi-2, . Ambele categorii pot utiliza: algoritmi explicii (direci), la care punctul curent nu apare n expresia funciei g;

Departamentul A.I.A.

Matematici Asistate de Calculator

algoritmi implicii (iterativi, de tip predictor-corector), la care punctul curent apare n expresia lui g.

Exemple de metode monopas cu algoritm explicit sunt metodele de tip Euler (n versiunea clasic, n versiunea Cauchy) i metodele de tip Runge-Kutta. Din categoria metodelor multipas cu algoritm explicit face parte metoda AdamsBashforth-Moulton. Comparativ cu metodele monopas, metodele multipas prezint urmtoarele avantaje: estimarea erorii de trunchiere este relativ simpl, eroarea de trunchiere fiind semnificativ mai mic; propagarea erorilor este mai redus, fiind mbuntite precizia i stabilitatea numeric; nu este necesar calculul valorilor funciei f(x,y) n puncte intermediare suplimentare. Dezavantajele metodelor multipas fa de cele monopas sunt urmtoarele: nu este asigurat autopornirea deoarece la primii pai nu sunt disponibile informaiile din punctele anterioare, acesta fiind motivul pentru care se utilizeaz de regul pentru pornire metode monopas cu eroare de trunchiere de acelai ordin de mrime; modificarea pasului de integrare h (este vorba n primul rnd de reducerea acestuia, efectuat n vederea creterii preciziei) se face relativ dificil, fiind necesare reveniri la puncte deja determinate sau reporniri cu metode monopas; la unele variante poate crete volumul de calcule.

Ecuaii difereniale ordinare de ordin superior. Sisteme de ecuaii difereniale ordinare Pentru rezolvarea ecuaiilor difereniale ordinare de ordin superior, se procedeaz dup cum urmeaz. Se consider ecuaia diferenial de ordinul n: y(n) = f(x, y, y', y'', ..., y(n-1)) , cu x [a, b] , n condiiile iniiale: y( x0 ) = y 0 y' ( x ) = y' 0 0 y' ' ( x0 ) = y' '0 . L y ( n 2) (x0 ) = y ( n2) 0 ( n 1) y ( x0 ) = y ( n1) 0 Apoi, se introduc notaiile : yi(x) = y(n-i), i=1,2,,n

Departamentul A.I.A.

Matematici Asistate de Calculator

Prin efectuarea substituiilor, se obine c ecuaia diferenial de ordinul n este echivalent cu urmtorul sistem de n ecuaii difereniale ordinare de ordinul nti:

= f ( x, y n , y n 1 ,..., y1 ) y1 y = y 1 2 = y2 y3 . L yn 2 = y n 3 1 = y n 2 yn
Condiiile iniiale pentru sistemul de mai sus rezult sub forma urmtoare: yi(x0) = y(n-i)0, i=1,2,,n Pentru rezolvarea sistemelor de ecuaii difereniale ordinare cu condiii iniiale se pot utiliza metode numerice similare rezolvrii numerice a ecuaiilor difereniale ordinare de ordinul nti. 2. Aplicaii n Matlab Pentru rezolvarea numeric a ecuaiilor i sistemelor de ecuaii difereniale de ordinul nti prin metode de tip Runge-Kutta n Matlab sunt utilizate funciile ode23 (destinat rezolvrii prin metodele Runge-Kutta de ordinul 2 i 3) i ode45 (destinat rezolvrii prin metodele Runge-Kutta de ordinul 4 i 5). Funcia ode45 este apelabil n cel puin dou forme avnd urmtoarele sintaxe (sintaxa funciei ode23 este asemntoare): [xval,yval]=ode45(yprim,dom,y0) [xval,yval]=ode45(yprim,dom,y0,options) variabil ir coninnd numele unui fiier M, fiier funcie, n care este definit derivata funciei necunoscute, y, membrul drept al ecuaiei difereniale; domeniul (intervalul) valorilor variabilei independente x, dom = [a b], n care: a b y0 valoarea iniial a variabilei independente x (adic x0), valoarea final a variabilei independente x;

n care argumentele au semnificaia: yprim

dom

vector (matrice coloan) coninnd condiiile iniiale (adic y0);

options argument prin care pot fi setai anumii parametri ai metodei de rezolvare numeric, prin intermediul funciei odeset. Prin aplicarea funciei ode45 se obin: xval yval vector coninnd valorile variabilei independente x; vector coninnd valorile funciei necunoscute y.

Departamentul A.I.A.

Matematici Asistate de Calculator

Funcia odeset are urmtoarea sintax: options=odeset(param1,val1,param2,val2,) unde paramj reprezint numele unui parametru, iar valj reprezint valoarea asignat acelui parametru, j = 1, 2, .Parametrii nespeficai rmn cu valorile lor implicite. Iat doi astfel de parametri: RelTol AbsTol precizia relativ dorit a soluiei, cu valoarea implicit RelTol = 10-3; precizia absolut dorit a soluiei, cu valoarea implicit AbsTol = 10-6.

Funciile ode23 i ode45 implementeaz metode explicite de tip Runge-Kutta, cu adaptarea automat a mrimii pasului de integrare n funcie de valoarea gradientului funciei necunoscute, y(x). Exemplul 1: S se rezolve ecuaia diferenial ordinar: y' = x2(y+1) , cu condiia iniial y(1)=1, pe intervalul [1,2]. Soluie: Se parcurg urmtoarele etape: 1. Se definete membrul drept al ecuaiei difereniale (ecuaia este dat n forma canonic), ntr-un fiier funcie: Fiierul funcie ecdif1.m: function dy=ecdif1(x,y) % ecuatia diferentiala y'=x^2*(y+1) dy=x.^2*(y+1); 2. Fiierul script ecdif1.m: % conditia initiala y(1)=1 y0=1; % domeniul (intervalul) dom=[1 2]; % rezolvarea ecuatiei diferentiale [xn,yn]=ode23('ecdif1',dom,y0) pause % reprezentarea grafica a solutiei plot(xn,yn) Se obine soluia sub form de puncte ( yn=y(xn) ): xn = 1.0000 1.0400 1.1400 1.2400 1.5280 1.6140 1.6950 1.7717 1.9789 2.0000 yn = 1.0000 1.0850 1.3482 1.7055 3.7058 4.8171 6.2622 8.1423 17.9494 19.6011 Se obine graficul:

1.3400 1.8443

1.4368 1.9133

2.1955 10.5908

2.8512 13.7830

Departamentul A.I.A.

Matematici Asistate de Calculator

20 18 16 14 12 10 8 6 4 2 0 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2

Fig.2. Soluia ecuaiei difereniale din exemplul 1 Exemplul 2: S se rezolve prin metoda Runge-Kutta de ordinul 4-5 urmtoarea ecuaie diferenial: y = 1.2y y + 10 , pe intervalul x [0, 10], cu condiiile iniiale y(0) = 2, y(0) = 0. Soluie: Se parcurg urmtoarele etape: 1. Se aduce ecuaia diferenial la forma canonic: un sistem de dou ecuaii difereniale de ordinul nti. Pentru aceasta se introduc dou funcii notate cu y1 i y2: y1 = y , y2 = y . Rezult, deci urmtorul sistem de dou ecuaii difereniale de ordinul nti: y1 = y2 y2 = 1.2y2 y1 + 10 , n condiiile iniiale y1(0) = 2, y2(0) = 0. 2. se definete membrul drept al sistemului de ecuaii difereniale, ntr-un fiier funcie: function dy=ecdif2(x,y) % sistemul de ecuatii diferentiale y1'=y2, y2'=-1.2*y2-y1+10 % initializare dy=zeros(2,1); % y1=y(1), y2=y(2), y1'=dy(1), y2'=dy(2) dy(1)=y(2); dy(2)=-1.2*y(2)-y(1)+10; 3. Fiierul script ex2.m: % conditia initiala y(0)=2, y'(0)=0 y0=[2 0]; % domeniul (intervalul) dom=[0 10];

Departamentul A.I.A.

Matematici Asistate de Calculator

% setarea preciziei (optional) opt=odeset('RelTol',10^(-2),'AbsTol',10^(-4)); % rezolvarea ecuatiei diferentiale [xn,yn]=ode45('ecdif2',dom,y0,opt); % solutia-setul de puncte dat de xn si prima coloana a lui yn xn y=yn(:,1) pause % reprezentarea grafica a solutiei - prima coloana a lui yn plot(xn,yn(:,1)) Se obine: xn = 0 0.0014 0.0123 0.1865 1.2697 2.7697 4.2697 5.7697 7.2697 8.7697 10.0000 y = 2.0000 2.0000 2.0006 2.1290 5.6487 10.0001 10.7212 10.2126 9.9434 9.9481 9.9880 0.0001 0.0019 0.0248 0.2487 1.5197 3.0197 4.5197 6.0197 7.5197 9.0197 0.0002 0.0024 0.0372 0.3109 1.7697 3.2697 4.7697 6.2697 7.7697 9.2697 0.0003 0.0049 0.0497 0.5506 2.0197 3.5197 5.0197 6.5197 8.0197 9.4522 0.0004 0.0074 0.0621 0.7903 2.2697 3.7697 5.2697 6.7697 8.2697 9.6348 0.0009 0.0099 0.1243 1.0300 2.5197 4.0197 5.5197 7.0197 8.5197 9.8174

2.0000 2.0000 2.0024 2.2234 6.6199 10.3256 10.6560 10.1397 9.9326 9.9570

2.0000 2.0000 2.0055 2.3401 7.5210 10.5494 10.5724 10.0782 9.9283 9.9658

2.0000 2.0001 2.0097 2.9638 8.3207 10.6845 10.4803 10.0285 9.9288 9.9721

2.0000 2.0002 2.0150 3.7807 9.0032 10.7478 10.3864 9.9901 9.9330 9.9779

2.0000 2.0004 2.0588 4.6981 9.5623 10.7557 10.2957 9.9621 9.9398 9.9832

11 10 9 8 7 6 5 4 3 2

10

Fig.3. Soluia ecuaiei difereniale din exemplul 2.


7

Departamentul A.I.A.

Matematici Asistate de Calculator

Exemplul 3: S se rezolve urmtorul sistem de ecuaii difereniale de ordinul nti:

y1' = y1 + y 2 , y 2' = x y1
cu condiiile iniiale y1(0)=0.1, y2(0)=0.2, pe intervalul [0,10]. Soluie: Se parcurg urmtoarele etape: 1. Se definete membrul drept al sistemului de ecuaii difereniale (sistemul este dat n forma canonic), ntr-un fiier funcie: function dy=ecdif3(x,y) % sistemul de ecuatii diferentiale y1'=y1+y2, y2'=x-y1 % initializare dy=zeros(2,1); % y1=y(1), y2=y(2), y1'=dy(1), y2'=dy(2) dy(1)=y(1)+y(2); dy(2)=x-y(1); 2. Fiierul script ex3.m: % conditia initiala y1(0)=0.1, y2(0)=0.2 y0=[0.1 0.2]; % domeniul (intervalul) dom=[0 10]; % rezolvarea ecuatiei diferentiale (solutia - set de 2 % functii: y1 prima coloana a lui yn, y2 - a doua coloana % a lui yn) [xn,yn]=ode45('ecdif3',dom,y0); % reprezentarea grafica a solutiei sistemului de ecuatii % diferentiale (cu albastru y1, cu rosu si linie intrerupta % y2) plot(xn,yn(:,1),'b',xn,yn(:,2),'r--') Se obine graficul:
100

50

-50

10

Fig.4. Soluia sistemului de ecuaii difereniale din exemplul 3

Departamentul A.I.A.

Matematici Asistate de Calculator

3. Aplicaii n Mathcad Pentru rezolvarea ecuaiilor difereniale ordinare cu condiii iniiale cunoscute, prin metoda Runge-Kutta de ordinul 4, se utilizeaz n Mathcad funcia predefinit rkfixed(), avnd urmtoarea sintax: rkfixed(y,xa,xb,nrp,D) a crei argumente au urmtoarele semnificaii: y - un vector ce conine "n" valori iniiale, "n" fiind ordinul ecuaiei difereniale; n cazul n = 1, y se reduce la un numr (valoarea y0); xa,xb - capetele intervalului n care se evalueaz soluia ecuaiei difereniale; vectorul y conine valorile iniiale ale funciei y=y(x) pentru x=xa (adic, x0=xa); nrp - numrul de puncte din intervalul [xa,xb], n care, pe lng punctul x=xa, se aproximeaz soluia; n total, soluia este determinat cu aproximaie n nrp+1 puncte; D=D(x,y) - o funcie vectorial ce conine primele derivate ale celor "n" funcii necunoscute (funcia y i derivatele ei y', y'',,y(n-1));

Funcia rkfixed() returneaz o matrice cu n+1 coloane i nrp+1 linii. Prima coloan conine cele nrp+1 puncte n care se aproximeaz soluia, restul coloanelor conin valorile celor "n" derivate, aproximate n aceleai puncte ca i soluia- derivata 0 (soluia- funcia y) i derivatele y(k), k=1,2,,n-1. Exemplul 4: S se rezolve ecuaia diferenial ordinar din exemplul 1. Soluie: Se introduc urmtoarele relaii n Mathcad:
1. conditia initiala x0=1, y0=y(x0)=1
y0 := 1
2. functia D - membrul drept al ecuatiei diferentiale scrise sub forma canonica

D ( x , y) := x ( y0 + 1)
2

matricea solutie contine cele 101 puncte ale intervalului [1,2] in care se calculeaza solutia si valorile solutiei in aceste puncte

Z := rkfixed( y , 1 , 2 , 100 , D)
o parte a valorilor
T

= 0
1

0 1 1

1 1.01 1.02

2 1.02 1.041

3 1.03 1.063

4 1.04 1.085

5 1.05 1.108

6 1.06 1.131

7 1.07 1.156

Departamentul A.I.A.

Matematici Asistate de Calculator

grafic (x este reprezentat de coloana indice 0 a lui Z, y este reprezentat de colona indice 1 a lui Z)

20

1 Z

10

1.5 0 Z

Observaie. Pentru a obine indicele superior, <>, se tasteaz [Ctrl]^. Exemplul 5: S se determine soluia ecuaiei difereniale de ordinul 2 de la exemplul 2. Soluie: Primul pas n rezolvarea ecuaiei de mai sus const n scrierea acestei ecuaii sub forma unui sistem de ecuaii difereniale de ordinul 1. Pentru aceasta se introduc dou funcii (ecuaia fiind de ordinul 2) notate cu y0 i y1. Acestea sunt componentele funciei-vector y care este primul argument al funciei Mathcad rkfixed(). Urmtorii pai sunt aceeai ca i n cazul rezolvrii unei ecuaii difereniale de ordinul 1:
conditiile initiale

y :=

2 0
y1 1.2 y1 y0 + 10

functia D

D ( x , y) :=

<- prima derivata <- a doua derivata

determinarea solutiei ecuatiei

Z := rkfixed( y , 0 , 10 , 80 , D)
grafic

15 10 5 0

1 Z

5 0 Z

10

10

Departamentul A.I.A.

Matematici Asistate de Calculator

Pentru rezolvarea sistemelor de ecuaii difereniale, de ordinul nti sau de ordin superior, prin metoda Runge-Kutta de ordinul 4, se utilizeaz n Mathcad aceeai funcie rkfixed(). n acest caz, argumentul y al funciei va fi un vector ce conine pentru fiecare funcie-necunoscut valorile iniiale (n punctul xa=x0) ale tuturor derivatelor de la ordinul 0 pn la ordinul n-1 inclusiv, iar funcia D expresiile acestor derivate n aceeai ordine. Exemplul 6: S se rezolve urmtorul sistem de ecuaii difereniale de ordinul nti de la exemplul 3. Soluie: Se urmeaz aceeai pai ca i n cazul rezolvrii ecuaiilor difereniale, soluia fiind ilustrat n figura de mai jos.
conditiile initiale

y :=

0.1 0.2

functia D

D ( x , y) :=

y0 + y1 x y0

<- y0 <- y1

determinarea solutiei ecuatiei

Z := rkfixed( y , 0 , 10 , 500 , D)

grafic

100 1 Z 2 Z 50 0 50

5 0 Z

10

11

Departamentul A.I.A.

Matematici Asistate de Calculator

Probleme propuse 9.1. S se rezolve urmtoarele probleme Cauchy pe intervalele menionate. Soluia /soluiile se va /vor reprezenta grafic (n cazul sistemelor reprezentarea soluiilor se va face n aceeai fereastr grafic): a) b) c) d) y'+ y2=3x, y(-1)=2, pe [-1,5]; y" - y'=2ysin(t) , y(0)=-1, y'(0)=2, pe [0,6]; -y'''+y''-xy'+2ysin(x)-x3=0, y(1)=0.5, y'(1)=-0.5, y''(1)=0.3, pe [1,4];

x'+2 x = y 2 z + sin(t ), x(0) = 0 y '+2 y = x + 2 z cos(t ), y (0) = 0.2 , pe [0,3]. z '5 z = 3x 3 y, z (0) = 0.1

9.2. S se determine (aproximeze) valorile soluiilor obinute n punctele menionate mai jos: pentru 7.1.a): -1, -0.5, 0, 1, 2.3, 5; pentru 7.1.b): 0, 1.5, 2.3, 3.7, 4, 5.45, 6; pentru 7.1.c): 1, 2.2, 3.5, 4; pentru 7.1.d): 0, 0.75, 1.1, 1.16, 2, 3.

9.3. (numai n Matlab) S se scrie un program care rezolv o ecuaie diferenial / un sistem de ecuaii difereniale. Programul primete ca argumente: numele fiierului funcie, n care a fost definit sistemul, capetele intervalului pe care e definit soluia, valorile condiiei iniiale i numrul de funcii-necunoscut, i reprezint grafic soluia / soluiile. 9.4. Se consider un robot cu trei grade de libertate de tip translaie-translaie-rotaie, a crui ecuaii dinamice ale micrii sunt:
&1 = F1 q (m1 + m 2 + m 3 )& & 2 = F2 m 2 g m 3 g , q (m 2 + m 3 )& J & &3 = M 3 3q

n care au fost utilizate urmtoarele notaii: q1, q2, q3 - coordonatele generalizate m1, m2, m3 - masele ansamblelor element-cupl ale robotului F1, F2 - forele care produc micrile cuplelor de translaie M3 - momentul care produce micarea cuplei de rotaie J3 - momentul de inerie axial al ansamblului cupl 3 - element 3

Cunoscnd masele (m1=10 kg, m2=4.15 kg, m3=0.5 kg), momentul de inerie axial (J3=0.015 kgm2), expresiile analitice ale forelor i momentului: F1(t)=-58.6sin(2t) F2(t)=23.25e-t(sin(4t)-3cos(4t))+45.601 M3(t)=0.004t2 i condiiile iniiale q1(0)=0, q'1(0)=2, q2(0)=1, q'2(0)=-1, q3(0)=-0.5, q'3(0)=0, s se determine cum variaz coordonatele cuplelor cinematice n intervalul de timp [0,3] (secunde).

12

S-ar putea să vă placă și