Sunteți pe pagina 1din 20

Tema de Studiu Nr.

2
Discretizare global indirect
Problema 1:
Fie ecuaia diferenial de mai jos:

cu condiiile de contur omogene: ( ) ( ) Unde a i b sunt constant, iar f este o funcie de variabil real x. Folosind metodele colocaiei i Galerkin, se cer urmtoarele: soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea; s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas; s se indice funcia de aproximare aleas; s se indice funcia de pondere aleas; s se exprime toi termeni folosii in rezolvare; folosind Matlab s se gseasc funcia de aproximare; comparaie ntre funcia exact si cea aproximativ particulariznd constantele a i b (valori alese de student); h) comparaie intre derivata nti a funciei exacte si cea aproximativ. a) b) c) d) e) f) g)

Problema 2:
Sunt aceleai cerine ca la problema 1, cu diferena ca avem de-a face cu condiii de contur diferite. Astfel c vom avea: ( ) ( )

Nota: n rezolvarea acestei teme de studiu, se vor folosi valorile:

Consideraii teoretice:
Page 1 of 20

Ecuaia erorilor ponderate (E.E.P) are n faz iniial forma de mai jos: ( ) ( ) ( ) [ ( ) ( )] [ ( ) ( )]

Se alege

( )

( )

( )

Ecuaia (1), devine: ( ) ( ) ( [ ( ) ( ) ( ( )) [ ( ) ( ) ( )] ( ) )]

( )

( ) [

( ) ( ) ]

[ ]

Se introduce ecuaia (3) n ecuaia (2), i prin prelucrri se ajunge la forma de mai jos:

( ) {

( ) ( )

( )

[ [

( ) ( )]

] [

( )

( )]

Se fac urmtoarele notaii: ( ) ( ) ( ) [ [ ( ) ( )] ] [ [ ( ) ( )] ]

Sub form matriceal, ecuaia (4) se poate scrie: ( ) ( )

n general, funcia de podere are forma de mai jos: ( ) ( ) ( ) ( ) Page 2 of 20 ( ) ( )

( )

Se introduce (4) n (5), i se va obine:

( ) {

( )

( )

[ ( )

( ) [

] ( )]

[ [

( ) ( )]

( ) { ( ) ( )

( )

[ ( ) [ ( )]

[ ( ) [ ( )]

Metoda colocaiei: ( ( ) ) ( ) ( )

Se aleg funciile Ni (x) n forma unor funcii Dirac. Proprieti: a) b)

Metoda Galerkin:

Se aleg funciile Ni (x) n forma unor funcii de form i(x).

Rezolvare:

Problema 1:
Page 3 of 20

Metoda colocaiei: a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea; Matlab:
% Calculul solutiei exacte si verificarea acesteia f=dsolve('D2f+f+3*x^2-1=0', 'f(0) = 0', 'f(l) = 0','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1

Rezultat: f =sin(x)*(-7+7*cos(l)+3*l^2)/sin(l)-7*cos(x)+7-3*x^2 g1 =0 b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare, indicndu-se metodologia aleas; Se aleg funciile Ni (x) n forma unor funcii Dirac. Proprieti: a) b) ( ( ) ) ( ) ( )

[ ( )

( )

( )

c) s se indice funcia de aproximare aleas; ( ) ( ) ( ) ( ) [ ( ( ) ] )

d) s se indice funcia de pondere aleas; ( ) ( ) ( ) ( ) ( )

e) s se exprime toi termeni folosii in rezolvare; ( ) ( ) ( )

( )

f) folosind Matlab s se gseasc funcia de aproximare; Matlab:


%Definirea vectorului phi phi1=x*(l-x); phi2=x^2*(l-x);

Page 4 of 20

phi=[phi1;phi2]; phi % Definirea vectorului de functii Dirac (d) x1=l/3; x2=2*l/3; d=[dirac(x-x1);dirac(x-x2)]; d % Definire matricei de rigiditate K K=int(d*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,-inf,inf); K % Definire vectorului termenilor liberi T

T=int(g*d,x,-inf,inf); T % Calcul vectorului coeficientilor C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa); g2=collect(diff(diff(fa,x),x)+fa+3*x^2-1); fa g2

Rezultat: phi = x*(l-x) x^2*(l-x) d= dirac(x-1/3*l) dirac(x-2/3*l) K= [ -2+2/9*l^2, 2/27*l^3] [ -2+2/9*l^2, -2*l+4/27*l^3] T= -1/3*l^2+1 -4/3*l^2+1 C= 3/2*(30*l^2-81+2*l^4)/(243-36*l^2+l^4) Page 5 of 20

-27/2*l/(l^2-27) fa = 3/2*(-2*l^4+9*x*l^3-30*l^2-81*x*l+81)*x*(-l+x)/(l^2-27)/(-9+l^2)

g) comparaie ntre funcia exact si cea aproximativ particulariznd constantele a i b (valori alese de student);

h) comparaie intre derivata nti a funciei exacte si cea aproximativ.

Page 6 of 20

Metoda Galerkin: a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea; Matlab:
% Calculul solutiei exacte si verificarea acesteia f=dsolve('D2f+f+3*x^2-1=0', 'f(0) = 0', 'f(l) = 0','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1

Rezultat: f =sin(x)*(-7+7*cos(l)+3*l^2)/sin(l)-7*cos(x)+7-3*x^2 g1 =0 b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas; Se aleg funciile Ni (x) n forma unor funcii de form i(x). [ ] ( )

Page 7 of 20

c) s se indice funcia de aproximare aleas; ( ) ( ) ( ) ( ) [ ( ( ) ] )

d) s se indice funcia de pondere aleas; ( ) ( ) ( ) ( ) ( )

e) s se exprime toi termeni folosii in rezolvare; ( ) ( ) ( )

f) folosind Matlab s se gseasc funcia de aproximare; Matlab:


%Definirea vectorului phi phi1=x*(l-x); phi2=x^2*(l-x); phi=[phi1;phi2]; phi % Definire vector wd wd=[phi1;phi2]; wd %Definire matricei de rigiditate K K=simplify(int(wd*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,0,l)); K %Definire vectorului termenilor liberi T T=int(g*wd,x,0,l); T %Calcul coeficienti C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa); fa

Rezultat: phi = x*(l-x) x^2*(l-x) wd = Page 8 of 20

x*(l-x) x^2*(l-x) K= [ 1/30*l^5-1/3*l^3, 1/60*l^6-1/6*l^4] [ 1/60*l^6-1/6*l^4, 1/105*l^7-2/15*l^5] T= -3/20*l^5+1/6*l^3 -1/10*l^6+1/12*l^4 C= (6*l^4+89*l^2-210)/(l^2-42)/(l^2-10) -21*l/(l^2-42) fa =x*(-l+x)*(-6*l^4-89*l^2+210+21*x*l^3-210*x*l)/(l^2-42)/(l^2-10)

g) comparaie ntre funcia exact si cea aproximativ particulariznd constantele a i b (valori alese de student);

h) comparaie intre derivata nti a funciei exacte si cea aproximativ.

Page 9 of 20

Problema 2:
Metoda Galerkin:

a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea; Matlab:


% Solutia exacta f(x) x:[0,l] f=dsolve('D2f +f + 3*x^2-1=0','f(0)=0','Df(l)=q','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1

Rezultat: f =sin(x)*(q-7*sin(l)+6*l)/cos(l)-7*cos(x)+7-3*x^2 g1 =0

b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas; Se aleg funciile Ni (x) n forma unor funcii de form i(x). Page 10 of 20

[ ]

( )

[ ]

c) s se indice funcia de aproximare aleas; ( ) d) s se indice funcia de pondere aleas; ( ) ( ) ( ) ( ) ( ) ( ) [ ]

e) s se exprime toi termeni folosii in rezolvare; ( ) ( ) ( )

f) folosind Matlab s se gseasc funcia de aproximare; Matlab:


%Definirea vectorului phi phi1=x; phi2=x^2; phi3=x^3; phi=[phi1;phi2;phi3]; phi % Definire vector wd wd=[phi1;phi2;phi3]; wd %Definire matricei de rigiditate K Kd=simplify(int(wd*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,0,l)); Kb=simplify(subs(wd*diff(transpose(phi),x),x,l)) K=Kd+Kb %Definire vectorului termenilor liberi T

Td=int(g*wd,x,0,l); Tb=subs(wd*q,x,l);

Page 11 of 20

T=Td+Tb %Calcul coeficienti C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa); fa

Rezultat: phi = x x^2 x^3 wd = x x^2 x^3 Kb = [ l, 2*l^2, 3*l^3] [ l^2, 2*l^3, 3*l^4] [ l^3, 2*l^4, 3*l^5] K= [ 1/3*l^3+l, 1/4*l^4+3*l^2, 1/5*l^5+5*l^3] [ 1/4*l^4+l^2, 1/5*l^5+8/3*l^3, 1/6*l^6+9/2*l^4] [ 1/5*l^5+l^3, 1/6*l^6+5/2*l^4, 1/7*l^7+21/5*l^5]

T = -3/4*l^4+1/2*l^2+q*l -3/5*l^5+1/3*l^3+q*l^2 -1/2*l^6+1/4*l^4+q*l^3 C = 15/2*(31*l^5+4*l^4*q+797*l^3+36*q*l^2-840*l+840*q)/(l^6+75*l^4-2880*l^2+6300) -3*(l^6+350*l^4+40*q*l^3-255*l^2-1050)/(l^6+75*l^4-2880*l^2+6300) 35/4*(79*l^3+12*q*l^2-300*l-120*q)/(l^6+75*l^4-2880*l^2+6300) fa=1/4*x*(930*l^5+120*l^4*q+23910*l^3+1080*q*l^2-25200*l+25200*q-12*x*l^6-4200*x*l^4480*x*q*l^3+3060*x*l^2+12600*x+2765*x^2*l^3+420*x^2*q*l^2-10500*x^2*l4200*q*x^2)/(l^6+75*l^4-2880*l^2+6300) g) comparaie ntre funcia exact si cea aproximativ particulariznd constantele a i b (valori alese de student);

Page 12 of 20

h) comparaie intre derivata nti a funciei exacte si cea aproximativ.

Scripturi: Problema 1 Metoda colocaiei:


%Tema 2 - Discretizare Indirecta Globala

Page 13 of 20

%Metoda colocatiei %Aproximare pe domeniu %Conditii de contur omogene %Aproximare prin 2 puncte %Ecuatia analizata diff(diff(f,x),x)+f(x)-3x^2-1=0 %Conditii de contur: esentiale si omogene f(0)=0 si f(x=l)=0 clc; clear; syms x l phi1 phi2 g=-3*x^2+1; % Calculul solutiei exacte si verificarea acesteia f=dsolve('D2f+f+3*x^2-1=0', 'f(0) = 0', 'f(l) = 0','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1 %Definirea vectorului phi phi1=x*(l-x); phi2=x^2*(l-x); phi=[phi1;phi2]; phi % Definirea vectorului de functii Dirac (d) x1=l/3; x2=2*l/3; d=[dirac(x-x1);dirac(x-x2)]; d % Definire matricei de rigiditate K K=int(d*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,-inf,inf); K % Definire vectorului termenilor liberi T

x1 x2

T=int(g*d,x,-inf,inf); T % Calcul vectorului coeficientilor C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa); g2=collect(diff(diff(fa,x),x)+fa+3*x^2-1);

Page 14 of 20

fa g2 % Particularizarea problemei generale pentru l=1 fp=subs(f,l,1); fp fap=subs(fa,l,1); fap=simplify(collect(fap,x)); g2p=subs(g2,l,1); g2p=simplify(collect(g2p,x)); fap g2p ap=subs(C,l,1); ap phip=subs(phi,l,1); phip %Derivata functiei exacte si de aproximare dfp=diff(fp,x);%derivata functiei exacte dfap=diff(fap,x);%derivata functiei de aproximare % Grafice npasi=25 for i=1:npasi xp(i)=1/(npasi-1)*(i-1); fpx(i)=subs(fp,x,xp(i)); fapx(i)=subs(fap,x,xp(i)); phipx1(i)=subs(phip(1),x,xp(i)); phipx2(i)=subs(phip(2),x,xp(i)); dfpx(i)=subs(dfp,x,xp(i)); dfapx(i)=subs(dfap,x,xp(i)); g2px(i)=subs(g2p,x,xp(i)); ep(i)=abs(fpx(i)-fapx(i)); % eroarea pentru functia exacta si pentru functia de aproximare dep(i)=abs(dfpx(i)-dfapx(i)); % eroarea pentru functia exacta si pentru functia de aproximare end figure(1) % Reprezentarea grafica a functiei exacte si a celei de aproximare plot(xp,fpx,'red',xp,fapx,'blue',xp,ep,'green'); figure(2) % Reprezentarea grafica a primei derivate a functiilor exacta si de aproximare plot(xp,dfpx,'red',xp,dfapx,'blue',xp,dep,'green');

Problema 1 Metoda Galerkin:


%Tema 2 - Discretizare Indirecta Globala

Page 15 of 20

%Metoda Galerkin %Aproximare pe domeniu %Conditii de contur omogene %Aproximare prin 2 puncte %Functia de aprox fa(x)=c1*phi1(x)+c2*phi2(x) %Ecuatia analizata diff(diff(f,x),x)+f(x)-3x^2-1=0 %Conditii de contur: esentiale si omogene f(0)=0 si f(x=l)=0 clc; clear; syms x l phi1 phi2 g=-3*x^2+1; % Calculul solutiei exacte si verificarea acesteia f=dsolve('D2f+f+3*x^2-1=0', 'f(0) = 0', 'f(l) = 0','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1 %Definirea vectorului phi phi1=x*(l-x); phi2=x^2*(l-x); phi=[phi1;phi2]; phi % Definire vector wd wd=[phi1;phi2]; wd %Definire matricei de rigiditate K K=simplify(int(wd*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,0,l)); K %Definire vectorului termenilor liberi T g wd

T=int(g*wd,x,0,l); T %Calcul coeficienti C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa);

Page 16 of 20

g2=collect(diff(diff(fa,x),x)+fa+x); fa g2 % Particularizarea problemei generale pentru l=1 fp=subs(f,l,1); fp fap=subs(fa,l,1); fap=simplify(collect(fap,x)); g2p=subs(g2,l,1); g2p=simplify(collect(g2p,x)); fap g2p Cp=subs(C,l,1); Cp phip=subs(phi,l,1); phip %Derivata functiei exacte si de aproximare dfp=diff(fp,x);%derivata functiei exacte dfap=diff(fap,x);%derivata functiei de aproximare % Grafice npasi=25 for i=1:npasi xp(i)=1/(npasi-1)*(i-1); fpx(i)=subs(fp,x,xp(i)); fapx(i)=subs(fap,x,xp(i)); phipx1(i)=subs(phip(1),x,xp(i)); phipx2(i)=subs(phip(2),x,xp(i)); dfpx(i)=subs(dfp,x,xp(i)); dfapx(i)=subs(dfap,x,xp(i)); g2px(i)=subs(g2p,x,xp(i)); ep(i)=abs(fpx(i)-fapx(i)); % eroarea pentru functia exacta si pentru functia de aproximare dep(i)=abs(dfpx(i)-dfapx(i)); % eroarea pentru functia exacta si pentru functia de aproximare end figure(1) % Reprezentarea grafica a functiei exacte si a celei de aproximare plot(xp,fpx,'red',xp,fapx,'blue',xp,ep,'green'); figure(2) % Reprezentarea grafica a primei derivate a functiilor exacta si de aproximare plot(xp,dfpx,'red',xp,dfapx,'blue',xp,dep,'green');

Page 17 of 20

Problema 2 Metoda Galerkin:


%Tema 2 - Discretizare Indirecta Globala %Metoda Galerkin %Aproximare pe domeniu %Conditii de contur omogene %Aproximare prin 2 puncte %Functia de aprox fa(x)=c1*phi1(x)+c2*phi2(x) %Ecuatia analizata diff(diff(f,x),x)+f(x)-3x^2-1=0 %Conditii de contur: esentiala f(0)=0 si neesentiala df(x=l)=q clc; clear; syms x l phi1 phi2 phi3 g=-3*x^2+1; % Solutia exacta f(x) x:[0,l] g wd q

f=dsolve('D2f +f + 3*x^2-1=0','f(0)=0','Df(l)=q','x'); f g1=diff(diff(f,x))+f+3*x^2-1;%verificarea solutiei g1 %Calculul derivatei functiei exacte fd=diff(f,x); fd %Definirea vectorului phi phi1=x; phi2=x^2; phi3=x^3; phi=[phi1;phi2;phi3]; phi % Definire vector wd wd=[phi1;phi2;phi3]; wd %Definire matricei de rigiditate K Kd=simplify(int(wd*(diff(diff(transpose(phi),x),x)+transpose(phi)),x,0,l)); Kb=simplify(subs(wd*diff(transpose(phi),x),x,l)) K=Kd+Kb %Definire vectorului termenilor liberi T

Td=int(g*wd,x,0,l); Tb=subs(wd*q,x,l);

Page 18 of 20

T=Td+Tb %Calcul coeficienti C C=inv(K)*T; C=simplify(C); C % Calculul functiei de aproxiare fa fa=transpose(phi)*C; fa=simplify(fa); fa %Calculul derivatei functiei de aproximare fda=diff(fa,x); fda

%Particularizare solutiei exacte pentru l=1 si q=1 fp=subs(subs(f,l,1),q,1); fdp=subs(subs(fd,l,1),q,1); fp fdp %Particularizare solutiei aproximative pentru l=1 si q=1 fap=subs(subs(fa,l,1),q,1); fap=simplify(collect(fap,x)); fdap=subs(subs(fda,l,1),q,1); fdap=simplify(collect(fdap,x)); fap fdap % constante Cp=subs(subs(C,l,1),q,1); Cp phip=subs(subs(phi,l,1),q,1); phip % Reprezentarea grafica a derivatelor si functiilor exacte si de aproximare npasi=13 for i=1:npasi xx(i)=1/(npasi-1)*(i-1); fpx(i)=subs(fp,x,xx(i)); fapx(i)=subs(fap,x,xx(i)); fdpx(i)=subs(fdp,x,xx(i)); fdapx(i)=subs(fdap,x,xx(i)); ep(i)=abs(fpx(i)-fapx(i)); dep(i)=abs(fdpx(i)-fdapx(i));

Page 19 of 20

end figure(1) % desenat solutia exacta si aproximativa plot(xx,fpx,'r',xx,fapx,'b',xx,ep,'green'); figure(2) % desenat solutia exacta si aproximativa plot(xx,fdpx,'r',xx,fdapx,'b',xx,dep,'green');

Page 20 of 20

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