laborator5 rezolvarea numerica a ec dif

12
Lucrarea de laborator nr.5 Tema lucr ării: Rezolvarea numerică a ecuaţiilor diferenţiale ordinare cu condiţii iniţiale I.1. ENUNŢUL LUCRĂRII Se consideră o ecuaţie diferenţială ordinară cu condiţia iniţială: (1) (2) Se cere soluţionarea numerică a acestei ecuaţii. Rezolvarea se va face prin calcul manual şi prin intermediul programelor scrise în Matlab Se vor utiliza atât metodele uni-pas cât şi cele multi-pas. I.2. MODELUL MATEMATIC ŞI METODE DE SOLUŢIONARE Soluţionarea numerică a ecuaţiei (1) cu condiţia iniţială (2) constă, în general, în: aproximarea soluţiei exacte a ecuaţiei în puncte(x i ) i= C[a,b] prin intermediul unei relaţii de recurenţă. Dacă aproximarea soluţiei exacte y în x i+1 este în funcţie de aproximarea sa în x i , atunci metoda aceasta se numeşte directă (uni-pas sau cu paşi separaţi). Din această categorie fac parte metodele: Euler, metode deduse direct din formula lui Taylor, etc. Dacă aproximarea soluţiei exacte y în x i+1 depinde de de aproximările sale în x 0 , x 1 , ... , x i , metodele numerice aplicate pentru soluţionare se numesc indirecte (multi-pas sau cu paşi legaţi): Adams – Bashforth, Adams – Multon, Milne – Simson, Niström, etc. I.2.1. METODE DIRECTE I.2.1.1. METODE DEDUSE DIRECT DIN FORMULA LUI TAYLOR

Upload: visinoae-andrei

Post on 16-Sep-2015

227 views

Category:

Documents


5 download

TRANSCRIPT

Lucrarea de laborator nr.5Tema lucrrii: Rezolvarea numeric a ecuaiilor difereniale ordinare cu condiii iniialeI.1. ENUNUL LUCRRII

Se consider o ecuaie diferenial ordinar cu condiia iniial:

(1)

(2)

Se cere soluionarea numeric a acestei ecuaii. Rezolvarea se va face prin calcul manual i prin intermediul programelor scrise n Matlab

Se vor utiliza att metodele uni-pas ct i cele multi-pas.

I.2. MODELUL MATEMATIC I METODE DE SOLUIONARE

Soluionarea numeric a ecuaiei (1) cu condiia iniial (2) const, n general, n: aproximarea soluiei exacte a ecuaiei n puncte(xi)i= C[a,b] prin intermediul unei relaii de recuren. Dac aproximarea soluiei exacte y n xi+1 este n funcie de aproximarea sa n xi , atunci metoda aceasta se numete direct (uni-pas sau cu pai separai). Din aceast categorie fac parte metodele: Euler, metode deduse direct din formula lui Taylor, etc. Dac aproximarea soluiei exacte y n xi+1 depinde de de aproximrile sale n x0, x1, ... , xi , metodele numerice aplicate pentru soluionare se numesc indirecte (multi-pas sau cu pai legai): Adams Bashforth, Adams Multon, Milne Simson, Nistrm, etc.I.2.1. METODE DIRECTE

I.2.1.1. METODE DEDUSE DIRECT DIN FORMULA LUI TAYLOR

Considerm o diviziune echidistant a intervalului [a,b]: a = x0 < ... < xn= b cu .

Conform formulei lui Taylor aplicat funciei f, presupus a fi difereniabil de un numr suficient de ori n jurul punctului x0 , obinem: , unde

, 0 (x0, xi), (3)

Lund x = x1 , avem: , (4)

Aproximm valoarea y(x1) cu , (5)

Procednd analog, vom putea obine urmtoarea aproximare a valorii soluiei exacte y n xi+1, (6) Principalul al acestei metode de aproximare const n evaluarea derivatelor soluiei exacte n punctele diviziunii n Dac vom considera p = 1 n (6), vom obine:

yi+1 = yi +hf(xi, yi) (7) (i.e. forma explicit a metodei lui Euler). Pornind de la condiia iniial y(x0) = y0 cu ajutorul relaiei (7), putem calcula succesiv aproximrile soluiei exacte n toate nodurile diviziunii n.

Dezvoltarea n serie Taylor a funciei f la stnga punctului xi+1 este: unde , (8).Neglijnd n relaia (8), termenii de grad mai mare sau egal cu 2, obinem: ,(9) (i.e. forma implicit a metodei lui Euler).I.2.1.2. METODA RUNGE KUTTA

Ne situm n aceleai ipoteze de lucru ca i n I.2.1.1.

Clasa metodelor directe de tip Runge Kutta prezint urmtoarelecaracteristici

1. aproximarea soluiei exacte, y , furnizat de metoda Runge Kutta de ordin p, coincide n primii p termeni cu dezvoltarea n serie Taylora soluiei exacte n fiecare punct al diviziunii n.2. evalurile ce intervinvizeaz doar funcia f i nu derivate ale acestuia.

n esen, aproximarea soluiei exacte y ntr-un punct xi+1 din n prin metoda Runge Kutta de ordin p se realizeaz cu ajutorulunei relaiide recuren de forma ,(10), unde ,(11).

Cea mai folosit metod este metoda Runge Kutta de ordin p1: (12) ( reprezint formula Runge Kutta de ordin 4 standard)

I.2.2. METODE INDIRECTE

Considerm ecuaia diferenial (1) scris sub foma urmtoarei ecuaii integrale: , (13) Caracteristica general a metodelor indirecte const n nlocuirea n relaia (13) a funciei f prin intermediul polinomului de interpolare corespunztor funciei f sub diverse forme) i nodurilor xi, xi-1, ... , xi-k .

Adic, y(xi+p) se aproximeaz prin: , (14), unde N2 forma Newton de spea a II-aa polinomului de interpolare.

Efectund SV: x = xi + th n relaia (14) avem (15).

Particulariznd acum, relaia (15), vom obine cele mai importantemetode indirecte:

a) p = 1; m = 0; r N(formula Adams Bashforth.):

(16)

b) p = 1; m = 0; r N(formula Nistrm):

(17)

c) p = 0; m = 1; r N(formula Adams Moulton):

(18)

d) p = 0; m = 2; r N(formula Milne Simson):

(19)e) p = 0; m = 2; r = 0 (formula Milne):

, i 2 (20)

unde fi = (xi, yi) i , diferena regresiv de ordin j calculat n xi , corespunztoare funciei fI.2.3. PSEUDOCODUL ALGORITMILOR

I.2.3.1.REZOLVAREA PRIN FORMA EXPLICIT A METODEI LUI EULER

Rezolvarea prin forma explicit a metodei lul Euler este dscris prin:

Procedura euler_exp (x0, xmax, y0, h, y)real x0,;mod iniial

xmax;mod final

y0, ;condiia iniial

h;pasul de integrare

tablou real y(N);vectorul soluiei numerice

t = x0

y(1) = y0

n = (xmax x0)/h;numr de pai

pentru i = 2,n;evalueaz funcia f n cele n noduri

y(i) = y( i 1 ) + h funct(t, y( i 1 ))

t = t + h

retur

Observaie: Procedura apeleaz funcia func ce evalueaz f(t,y)I.2.3.2.REZOLVAREA PRIN FORMA INEXPLICIT A METODEI LUI EULER

Rezolvarea prin forma inexplicit a metodei lul Euler este dscris prin:

Procedura euler_imp (x0, xmax, y0, h,err, itmax, y)

real x0,;mod iniial

xmax;mod final

y0, ;condiia iniial

h;pasul de integrare

err;eroarea maxim admis

ntreg itmax;numr maxim de iteraii

tablou real y(N);vectorul soluiei numerice

t = x0

y(1) = y0

n = (xmax x0)/h;numr de pai

pentru i = 2,n;evalueaz funcia f n cele n noduri

t = t + h;pas nou

ynou = y( i 1 ) + h funct(t,y( y - 1 );prima evaluare se face cu metoda explicit

= 0;contor iteraii

repet

ynou = yvechi

ynou = y( i 1 ) + h funct(t,yvechi );evaluare nou

j = j + 1

eps = abs( yvechi - ynou );evaluare eroare pn cnd (abs(eps) err sau j > itmax )

y(i) = ynou

retur

I.2.3.3.REZOLVAREA NUMERIC PRIN METODA RUNGE KUTTA

Rezolvarea numeric prin metoda Runge Kutta de ordin 4 este descris prin urmtorul pseudocod:

procedura runge_4 ( t0, tf, h, y ) ;rezolv sistem de N ecuaii

;difereniale de ordin 1

; prin metoda Runge Kutta de ordin 4

real t0;moment iniial

tf;limit interval de integrare

h;pas de integrare

tablou real y[N], s[N], z[N], g[N];N dimensiune sistem

t = t0

ct timp t < tf

pentru i = 1, N

g(i) = func ( i, y(i), t);evaluare g1

t = t + h/2

pentru i = 1, N

z(i) = y(i) + hg(i)/2;argument pentru g2

s(i) = g(i);salveaz g1

pentru i = 1, N

g = func ( i, z(i), t);evalueaz g2

pentru i = 1, N

z(i) = y(i) + hg(i)/2;argument pentru g3

s(i) = s(i) + 2g(i);salveaz g1 + 2g2

pentru i = 1, N

g = func ( i, z(i), t);evalueare g3

t = t + h/2

pentru i = 1, N

z(i) = y(i) + hg(i);argument pentru g4

s(i) = s(i) + 2g(i);salveaz g1 + 2g2 + 2g3

pentru i = 1, N

y(i) = y(i) + h(s(i) + g(i))/6;soluie final

scrie y(i);salveaz soluie

retur

I.2.4. PROGRAM MATLAB

I.2.4.1. METODA LUI EULER

Aproximeaz soluia ecuaiei difereniale: y = f(x,y) cu condiia iniial: y(x0) = y0

funcion E= euler ( f, a, b, y0, N )

%Input f este funcia ce de finete ecuaia

% a i b sunt extremitile Df

% y0 este condiia iniial y(x0)

% N este numrul de pai

%Output E = [X Y], unde X este vectorul absciselor, iar Y al ordonatelor

;

X = zeros(1, N+1);

Y = zeros(1, N+1);

X = a:h:b;

Y(1) = y0;

for j = 1:N;

Y( j + 1 ) = Y(j) + h*feval(f, X(j), Y(j));

end

E = [X,Y];

I.2.4.2. METODA LUI TAYLOR DE ORDINUL 4

Aproximeaz soluia exact a problemei: y = f(x,y) cu condiia iniial: y(x0) = y0 peste [a, b], prin evaluarea derivatelor: y, y, y i folosirea la fiecare pas a polinomului Taylor

funcion T4= taylor (df, a, b, y0, N )

%Input df = [y y y y], unde y = f(x,y)

% a i b sunt extremitile Df

% y0 este condiia iniial y(x0)

% N este numrul de pai

%Output T4= [X Y], unde X este vectorul absciselor, iar Y al ordonatelor

;

X = zeros(1, N+1);

Y = zeros(1, N+1);

X = a:h:b;

Y(1) = y0;

for j = 1:N;

D = feval ( df, X(j), Y(j));

Y( j + 1 ) = Y(j) + h*(D(1) + h*(D(2)/2 + h*(D(3)/6 + h*(D(4)/24)));

end

T4 = [X,Y];

I.2.4.3. METODA RUNGE KUTTA DE ORDINUL 4

Aproximeaz soluia exact a ecuaiei difereniale: y = f(x,y) cu condiia iniial:

y(x0) = y0 peste [a, b], utiliznd formula: yi+1 = yi + h(g1 + 2g2 + 2g3 + g4)

funcion R= rk4 (f, a, b, y0, N )

%Input f este funcia ce definete ecuaia

% a i b sunt extremitile Df

% y0 este condiia iniial y(x0)

% N este numrul de pai

%Output R = [X Y], unde X este vectorul absciselor, iar Y al ordonatelor

;

X = zeros(1, N+1);

Y = zeros(1, N+1);

X = a:h:b;

Y(1) = y0;

for j = 1:N;

g1 = h*feval (f, X(j), Y(j));

g2 = h*feval (f, X(j) + h/2, Y(j) + g1/2);

g3 = h*feval (f, X(j) + h/2, Y(j) + g2/2);

g4 = h*feval (f, X(j) + h, Y(j) + g3);

end

R = [X,Y];

I.2.4.4. METODA ADAMS BASHFORTH - MOULTON Aproximeaz soluia ecuaiei difereniale: y = f(x,y) cu condiia iniial: y(x0) = y0 peste [a, b], utiliznd: predictorul pi+1 = yi + h/24(-9fi-3 + 3f fi-2 - 59fi-1 + 55fi) i

corectorul yi+1 = yi + h/24(fi-2 - 5fi-1 + 19fi + 9fi + 1)

funcion A= abm (f, X, Y )

%Input f este funcia ce definete ecuaia

% X este vectorul absciselor

% Y este vectorul ordonatelor

%Remark primele 4 coordonate ale lui X i Y cu valori de start obinute cu Rk4

%Output A = [X Y], unde X este vectorul absciselor, iar Y al ordonatelor

m = lenght(X);

if n < 5, break, end;

F = zeros(1, 4);

F = feval (f, X(1:4), Y(1:4));

h = X(2) X(1);

for k = 4:m-1

%predictor

p = X(k) + (h/24)*(F*[-9 37 -59 55]);

X(k + 1) = X(1) + h*k;

F = [F(2) F(3) F(4) feval (f, X(k + 1), p)];

%corector

Y(k + 1) = Y(k) + (h/24)*(F*[1 -5 19 9]);

F(4) = feval(f, X(k + 1), Y(k + 1));

end

A = [X Y];

I.2.4.5. METODA MILNE - SIMSON Aproximeaz soluia ecuaiei difereniale: y = f(x,y) cu condiia iniial: y(x0) = y0 peste [a, b], utiliznd: predictorul pk+1 = yk-3 + 4h/3(2fk-2 - fk-1 + fk) i

corectorul yk+1 = yk-1 + h/3(fk-1 + 4fk + fk + 1)

funcion M= milne (f, X, Y )

%Input f este funcia ce definete ecuaia

% X este vectorul absciselor

% Y este vectorul ordonatelor

%Remark primele 4 valori ale coordonatelor ale lui X i Y cu valori de start obinute cu Rk4

%Output M = [X Y]

m = lenght(X);

if n < 5, break, end;

F = zeros(1, 4);

F = feval (f, X(1:4), Y(1:4));

h = X(2) X(1);

pold = 0;

yold = 0;

for k = 4:m-1

%predictor

pnou = Y(k-3) + (4*h/3)*(F(2:4)*[2 -1 2]);

%Modificare

pmod = pnou + 28*( yold - pold)/29;

X(k + 1) = X(1) + h*k;

F = [F(2) F(3) F(4) feval (f, X(k + 1), pmod)];

%corector

Y(k + 1) = Y(k-1) + (h/3)*(F(2:4)*[1 4 1]);

pold = pnou;

yold = Y(k+1);

F(4) = feval(f, X(k + 1), Y(k + 1));

end

M = [X Y];

I.2.5. ANALIZA ALGORITMILOR

1.2.5.1.EFORTUL DE CALCUL

Deoarece durata evalurii funciei f(t,y) este n general mult mai mare dect durata efectrii unor nmulri i mpriri, timpul de calcul depinde de numrul de evaluri f(t,y).

n forma explicit Euler, este nevoie de n evaluri. n cazul formei implicite aplicat pe aceeai reea de discretizare timpul de calcul crete odat cu creterea preciziei de calcul dorite n rezolvarea iterativ a ecuaiei neliniare(9).

Ciclul de iteraii corecteaz succesiv valoarea soluiei la momentul curent.

Aceast tehnic bazat pe relaiile (7) i (9) se numete predicativ corectiv.

Numrul de evaluri ale funciei f este n itmax n cazul metodei Runge Kulta, eforturile de calcul este dat de numrul de evaluri ale funciei func.Dac metoda Runge Kulta este de ordinul2sunt necesare2evaluri

33

44

56

67

79

811

Se observc metodele ale croro ordin este mai mare dect 4 devin ineficiente.

I.2.5.2. ANALIZA ERORILOR n metodele deduse din formula lui Tazlor, eroarea de exprimare este:

Considernd o reea de discretizare uniform, cu pasul h, eroarea de trunchiere introdus de metoda Runge Kulta 4 este de ordinul O(h4), n condiiile utilizrii unui sistem de calcul cu precizie infinit.

Dac sistemul de calcul opereaz cu q cifre semnificative, la eroarea de trunchiere se adaug o eroare de rotunjire de ordinul 10-q+1I.3. MERSUL LUCRRII

II.3.1. SE STUDIAZ TEXTUL LUCRRII I METODELE DE SOLUIONARE.

I.3.2. SE STUDIAZ PSEUDOCODURILE ALGORITMILOR PREZENTAI

I.3.3. SE CREAZ I SE SALVEAZ BAZA DE DATE PENTRU APLICAII NUMERICE

I.3.4. SE REZOLV MANUAL CTE O APLICAIE NUMERIC CU FIECARE METOD NUMERIC PREZENTAT

I.3.5.SE SOLUIONEAZ ACELEAI APLICAII CU AJUTORUL CALCULATORULUI.

I.3.6. SE COMPAR SOLUIILE OBINUTE PRIN DIVERSE METODE; SE COMENTEAZ ELEMENTELE SPECIFICE DE CALCUL NUMERIC.

I.4. MODEL OPERAIONAL

I.4.2. SOLUIONAREA MANUAL A APLICAIEI NUMERICE

I.4.1. SOLUIONAREA CU CALCULATORUL A APLICAIEI NUMERICE

I.4.3. ANALIZA ALGORITMILOR I A ERORILOR

I.5. APLICAII NUMERICE PROPUSE SPRE RELAXARE

1)

2)

3)

4) ;

5)

6)

7) ;

8)

EMBED Equation.DSMT4

9)

10) ;

11) ;

12)

13)

14)

15)

16)

17) ;

18)

19) ;

20) ;

21)

22)

23)

24)

EMBED Equation.DSMT4 EMBED Equation.DSMT4

_1302786144.unknown

_1302787401.unknown

_1302787852.unknown

_1302787964.unknown

_1302788166.unknown

_1302788312.unknown

_1302788383.unknown

_1302788242.unknown

_1302788058.unknown

_1302787873.unknown

_1302787882.unknown

_1302787862.unknown

_1302787670.unknown

_1302787769.unknown

_1302787693.unknown

_1302787703.unknown

_1302787682.unknown

_1302787429.unknown

_1302787579.unknown

_1302787417.unknown

_1302786785.unknown

_1302786918.unknown

_1302787387.unknown

_1302787267.unknown

_1302786817.unknown

_1302786828.unknown

_1302786806.unknown

_1302786485.unknown

_1302786508.unknown

_1302786518.unknown

_1302786496.unknown

_1302786238.unknown

_1302786321.unknown

_1302785839.unknown

_1302785874.unknown

_1302786018.unknown

_1302786029.unknown

_1302786043.unknown

_1302786008.unknown

_1302785851.unknown

_1302785861.unknown

_1302785503.unknown

_1302785565.unknown

_1302785579.unknown

_1302785599.unknown

_1302785526.unknown

_1302189638.unknown

_1302783480.unknown

_1302785154.unknown

_1302785307.unknown

_1302785212.unknown

_1302785230.unknown

_1302785194.unknown

_1302783523.unknown

_1302783564.unknown

_1302783505.unknown

_1302195086.unknown

_1302196151.unknown

_1302769512.unknown

_1302195780.unknown

_1302191053.unknown

_1302194199.unknown

_1302190632.unknown

_1302181308.unknown

_1302183902.unknown

_1302185194.unknown

_1302185941.unknown

_1302184503.unknown

_1302181710.unknown

_1302183851.unknown

_1302181501.unknown

_1302178107.unknown

_1302179401.unknown

_1302179743.unknown

_1302179368.unknown

_1302176957.unknown

_1302177751.unknown

_1302175363.unknown

_1302174690.unknown