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 15215r1721p stiinta. Īn multe situatii nu pot fi obtinute solutii analitice, fiind necesara aplicarea metodelor de integrare si derivare numerica. Ī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.
|