ALTE DOCUMENTE
|
|||||||||
MCIMLucrarea 19 |
Integrarea si derivarea numerica a functiilor |
Integrarea si derivarea sunt concepte fundamentale în rezolvarea unui mare numar de probleme în inginerie si în stiinta. În multe situatii nu pot fi obtinute solutii analitice, fiind necesara aplicarea metodelor de integrare si derivare nu 12112c27m merica. În acest capitol se prezinta functiile MATLAB pentru integrarea si derivarea numerica.
1.Integrarea numerica
Integrala functiei f(x) pe intervalul [a, b]: S=
are semnificatia ariei delimitate 3 de axa Ox, curba f(x) si dreptele x=a si x=b:
Y f(x)
S
o a b x
2.Derivarea numerica
Derivata unei functii f(x) este viteza de variatie în raport cu variabila x. Derivata este raportul dintre variatia functiei f(x), notata cu df(x) si variatia lui x, notata cu dx:
f'(x)=
Interpretarea geometrica a derivatei într-un punct este panta tangentei la graficul functiei în punctul considerat.
f(x) f(x) Maxim local
f'(x)
O a x O Minim local x
Minim global
2.1.Derivarea numerica bazata pe polinomul de interpolare Newton
Se presupun cunoscute valorile yi=f(xi) în nodurile de interpolare x0, x1, .xn, echidistante. Daca se considera notatiile: h=xi+1-xi -pasul de divizare;
yi=f(xi+1)-f(xi) -diferentele de ordinul 1;
Δ yi= yi+1- yi -diferentele de ordinul 2;
yi= yi+1- yi -diferentele de ordinul 3;
relatiile pentru calculul primelor doua derivat, luând în considerare diferentele finite numai pâna la ordinul 4, sunt:
Utilizând functia diff, aceste relatii se implementeaza cu usurinta.
Exemplul 2.1. Scrieti un program care sa calculeze primele doua derivate ale functiei lg(x), în punctul x=50.
Cu secventa MATLAB:
x=50:2:58;
h=x(2)-x(1);
y=log10(x);
d1y=diff(y);
d2y=diff(d1y);
d3y=diif(d2y);
d4y=diif(d3y);
d1f=(1/h)*(d1y(1)-d2y(1)/2+d3y(1)/3-d4y(1)/4)
d2f=(1/h 2)*(d2y(1)-d3y(1)+(11/12)*d4y(1))
se obtin rezultatele:
df1=0.0087
df2=-1.7355e-004
2.2.Aproximarea numerica a Laplaceanului
Functia MATLAB del2 calculeaza Laplaceanul discret în cinci puncte. Se apeleaza cu sintaxa:
V=del2(U)
în care elementele matricei V, de aceeasi dimensiune cu matricea U, sunt calculate cu relatia:
Daca matricea U este asociata functiei u(x,y) evaluata în nodurile unei retele cu pas constant, atunci:
D=4*del2(U)
este aproximarea cu diferente finite a operatorului diferential Laplace aplicat lui u, adica:
Exemplul 2.2. Calculati aproximarea numerica a Laplaceanului functiei u(x,y)=3x2+2y3.
Cu secventa MATLAB:
[x,y]=meshgrid(-4:2:4,-2:2);
U=3*x. 2+2*y.^3;
V=4*del2(U)
se obtin rezultatele: V=
3. Aproximarea numerica a gradientului
Functiile MATLAB:
gradient -aproximeaza gradientul unei functii;
quiver -reprezinta grafic orientarea unui câmp de vectori;
Functia gradient aproximeaza numeric gradientul unei functii; se apeleaza cu sintaxa:
[PX,PY]=gradient(Z,DX,DY)
care returneaza derivatele partiale numerice ale matricei Z în matricele PX=dZ/dx si PY=dZ/dy.
Daca functia gradient este apelata cu una dintre sintaxele:
dYX=gradient (Y) dYX=gradient(Y,DY)
atunci ea returneaza un vector care contine derivata numerica dY/dX.
Functia quiver reprezinta grafic mici sageti (vectori orientati ) la fiecare pereche (X,Y) a matricelor X si Y; se apeleaza cu una dintre sintaxele:
quiver(X,Y,DX,DY) quiver(DX,DY) quiver(X,Y,DX,DY,S)
Exemplul 3.1. Sa se reprezinte grafic gradientul unui câmp de vectori asociat functiei:
Z(x,y)=xe-x^2-y^2 în domeniul XxY=[-2,2]x[-2,2]. Cu secventa MATLAB:
xp=-2:.2:2;
yp=-2:.2:2;
[x,y]=meshgrid(xp,yp);
z=x.*exp(-x.^2-y.^2
[px,py]=gradient(z,.2,.2);
contour(x,y,z),hold on,
quiver(x,y,px,py,1.5,'g'), hold off se obtine reprezentarea grafica din figura:
Reprezentarea grafica a gradientului unui câmp de vectori.
|