laborator5 rezolvarea numerica a ec dif
Post on 16-Sep-2015
227 Views
Preview:
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
top related