Documente Academic
Documente Profesional
Documente Cultură
1
Page 1 of 17
Tema de Studiu Nr. 3
Discretizare global direct Metoda Galerkin (formulare tare)
Problema 1:
Fie ecuaia diferenial de mai jos:
2
+ +
2
= , o b
cu condiiile de contur omogene:
(o) =
(b) =
Unde a i b sunt constant, iar f este o funcie de variabil real x. Folosind Discretizarea Global Direct-
Metoda Galerkin, se cer urmtoarele:
a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea;
b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas;
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;
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.
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:
(o) =
(b) = q
Nota: n rezolvarea acestei teme de studiu, se vor folosi valorile:
= ; = 1 ,| = 1.
Bogdan Teodorescu Gr. 1
Page 2 of 17
Consideraii teoretice:
Ecuaia erorilor ponderate (E.E.P) are n faz iniial forma de mai jos:
() _
d
b
u
()
d
() + |
I
ic
()
I
ic
()]
x=x
ic
+
I
]nc
()
I
]nc
()
x=x
]nc
=
- nc( ponr;
c
,
]nc
- pnc n opor con( conr.
Se alege
I
ic
() =
I
]nc
() = _
d
()
n aceast tratare teoretic se consider condiiile de mai jos:
()|
x=u
= ;
()
x=b
= q.
Ecuaia (1), devine:
() _
d
b
u
()
2
+ + () + |
d
() (
u
() - )]
x=u
+
d
()
u
()
- q
x=b
=
Pentru cazul aproximrii directe, se considera c funcia se aproximeaz prin intermediul polinoamelor
Lagrange.
()
u
() = E
1
()
1
+ E
2
()
2
+ + E
()
+ + E
N
()
N
, n:
-
1
- oooro nc( n pnc nrpoor
;
- E
u
() = E
N
1
N
, n:
E
N
1
= _
E
1
()
.
E
N
()
_ - cor nc(or or (ponoo Ioron)
N
= _
1
.
N
_ - cor ooror nc( oc n pnc oproor
Bogdan Teodorescu Gr. 1
Page 3 of 17
N numrul punctelor de interpolare;
Numrul minim de puncte de interpolare (condiie de admisibilitate) este N = 3.
Proprietile funciilor de interpolare sunt:
_
E
) = , v =
E
) = , v =
Forma polinoamelor de interpolare Lagrange este:
E
() = _
-
]
-
]
; = , v, = ,
Exemplificare: N = 3
E
1
() =
-
2
1
-
2
-
3
1
-
3
, E
2
() =
-
1
2
-
1
-
3
2
-
3
, E
3
() =
-
1
3
-
1
-
2
3
-
2
.
n general, funcia de podere are forma de mai jos:
()
d
() = [
1
E
1
() + + [
() + + [
N
E
N
() = [
N
1
E
N
(), n:
- [
- conson ncnosc;
-[
N
1
= ;
- E
() - nc or.
Se introduce (3) i (4) n (2), i se va obine:
() _ [
N
1
E
N
()
b
u
2
E
N
1
()
2
N
+ E
N
1
()
N
+ () + |[
N
1
E
N
() (E
N
1
N
- )]
x=u
+ [
N
1
E
N
()
E
N
1
()
N
- q
x=b
=
Ecuaia (5) se mai poate scrie:
() __ E
N
()
b
u
2
E
N
1
()
2
+ _ E
N
() E
N
1
()
b
u
+ |E
N
() E
N
1
()]
x=u
+_E
N
()
N
1
()_
x=b
_
N
= -_ E
N
() ()
b
u
+ |E
N
()]
x=u
+ |E
N
()]
x=b
q
Bogdan Teodorescu Gr. 1
Page 4 of 17
Avem egalitatea: |E
N
() E
N
1
()]
x=u
N
= |E
N
()]
x=u
, rezult ca ecuaia (6) se mai poate scrie:
() __ E
N
()
b
u
2
E
N
1
()
2
+ _ E
N
() E
N
1
()
b
u
+ _E
N
()
N
1
()_
x=b
_
N
= -_ E
N
() ()
b
u
+ |E
N
()]
x=b
q
Se fac notaiile de mai jos:
-
I1
= _ E
N
()
b
u
2
E
N
1
()
2
;
-
I2
= _ E
N
() E
N
1
()
b
u
;
-
Cnc
= _E
N
()
N
1
()_
x=b
- T
I
= -_ E
N
() ()
b
u
- T
Cnc
= |E
N
()]
x=b
q = _
_ q = _
.
q
_
- T
N
= T
I
+ T
Cnc
-
NN
=
I1
+
I2
+
Cnc
Ecuaia (7) se poate exprima sub form matriceal astfel:
NN
N
= T
N
-
N
=
NN
-1
T
N
Cum matricea de rigiditate K
NxN
este o matrice singular, se recurge la reducere sistemului de ecuaii. Se
prezint un exemplu pentru N = 3. Vom avea:
_
11
12
12
21
22
23
31
32
33
_ _
3
_ = _
3
_
-
rcd
= _
22
23
32
33
_ - orco ro rs;
- f
rcd
= _
3
_ ;
- T
rcd
=
3
- _
21
31
_
Bogdan Teodorescu Gr. 1
Page 5 of 17
Ecuaia algebric final (dup impunerea condiiilor eseniale) are forma:
K
cd
(N-1)(N-1)
f
rcd
N-1
= T
rcd
N-1
- f
rcd
N-1
= K
cd
(N-1)(N-1)
-1
T
rcd
N-1
n continuare se asambleaz vectorul
N
=
f
1
= h
f
rcd
N-1
, iar cu ajutorul acestuia se detemin funcia de
aproximare i derivate funciei de aproximare:
u
() = E
N
1
()
u
()
=
E
N
1
()
N
Bogdan Teodorescu Gr. 1
Page 6 of 17
Rezolvare:
Problema 1:
a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea;
Matlab:
if nces == 1
f=dsolve('D2f +f + 3*x^2-1=0','f(0)=qq1','Df(l)=qq2','x')
elseif nces ==2
f=dsolve('D2f +f + 3*x^2-1=0','f(0)=qq1','f(l)=qq2','x')
else
f=dsolve('D2f +f + 3*x^2-1=0','Df(0)=qq1','Df(l)=qq2','x')
end
f=subs(subs(f,qq1,q1),qq2,q2)
% verificarea solutiei exacte
verif=diff(diff(f,x),x)+f+3*x^2-1;
verif
Rezultat:
f = sin(x)*(qq2-cos(l)*qq1+7*cos(l)-7+3*l^2)/sin(l)+cos(x)*(qq1-7)+7-3*x^2
f = sin(x)*(-7+7*cos(l)+3*l^2)/sin(l)-7*cos(x)+7-3*x^2
verif = 0
b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas;
Se folosete Discretizarea Global Direct, metoda Galerkin (formulare tare), avnd ca funcii de form
polinoamele de interpolare Lagrange. n form final EEP are forma de mai jos:
__ E
N
()
b
u
2
E
N
1
()
2
+ _ E
N
() E
N
1
()
b
u
_
N
= -_ E
N
() ()
b
u
c) s se indice funcia de aproximare aleas;
u
() = E
1
()
1
+ E
2
()
2
+ + E
()
+ + E
N
()
N
= E
N
1
N
Bogdan Teodorescu Gr. 1
Page 7 of 17
d) s se indice funcia de pondere aleas;
d
() = [
1
B
1
() + + [
() + + [
N
B
N
() = [
N
1
B
N
()
e) s se exprime toi termeni folosii in rezolvare;
E
N
() - cor nc(or or (ponoo Ioron) ;
[
N
1
- cor o cocnor (ncnosc);
N
- cor ooror nc( oproor n pnc scror;
d
() - nco ponr.
f) folosind Matlab s se gseasc funcia de aproximare;
Matlab:
%%%%%%%% Calcul simbolic %%%%%%%%%%%%
%%%% Determinarea functiilor de interpolare
% locatia punctelor de interpolare
for i=1:npint
loc(i)=l/(npint-1)*(i-1);
end
loc=transpose(loc);
loc
% vectorul functiilor de forma H(x)
for i=1:npint
H(i)=1;
for j=1:npint
if i-j~=0
H(i)=H(i)*(x-loc(j))/(loc(i)-loc(j));
else
H(i)=H(i);
end
end
end
H=transpose(H);
disp('Functii de forma')
disp([loc,H])
% Afisare vectorilor functii de forma
for i=1:npint
disp('vector functie forma H')
disp(i)
disp(subs(H,x,loc(i)))
end
% vectorul derivatelor dH(x)/dx=B1(x) dB1(x)/dx=B2(x)
Bogdan Teodorescu Gr. 1
Page 8 of 17
B1=diff(H,x);
B1=collect(expand(B1),x)
B2=diff(B1,x);
B2=collect(expand(B2),x)
% Ecuatia Erorilor Ponderate
% Matrice Rigiditate K(npint,npint)
K=zeros(npint,npint);
% termeni integrala pe domeniu
KI1=int(H*(transpose(B2)),x,0,l);
KI2=int(H*transpose(H),x,0,l);
KI1
KI2
KI=KI1+KI2;
KI=simplify(expand(KI))
% termen din conditia neesentiala
KIne1=zeros(npint,npint);
KIne2=zeros(npint,npint);
if ncnes == 1
KIne2=subs(H*transpose(B1),x,l);
end
if ncnes == 2
KIne1=subs(H*transpose(B1),x,0);
KIne2=subs(H*transpose(B1),x,l);
end
KIne1
KIne2
K=simplify(expand(KI1+KI2+KIne1+KIne2))
% Termeni liberi TL(npint)
TL=zeros(npint,1);
% termen integrala pe domeniu
TLI=-int(H*g,x,0,l);
% termen din conditia neesentiala
TLne1=zeros(npint,1);
TLne2=zeros(npint,1);
if ncnes == 1
Bogdan Teodorescu Gr. 1
Page 9 of 17
TLne2=subs(H,x,l)*cc(npint,2);
end
if ncnes == 2
TLne1=subs(H,x,0)*cc(1);
TLne2=subs(H,x,l)*cc(npint,2);
end
TL=simplify(expand(TLI+TLne1+TLne2))
% Rezolvarea Sistemului
% Impunerea conditiilor de contur esentiale
npintl=npint-nces % numar puncte interpolare fara conditii esentiale
% matricea redusa Kr(npinl,npintl)
for in=1:npintl
for jn=1:npintl
Kr(in,jn)=0;
end
end
ir1=0;
for in=1:npint
if cc(in,1)~= 1
ir1=ir1+1;
jr1=0;
for jn=1:npint
if cc(jn,1)~= 1
jr1=jr1+1;
Kr(ir1,jr1)=K(in,jn);
end
end
end
end
Kr
% Termen liber redus si corectat Tlr(npintl,1)
for i=1:npintl
TLr(i)=0;
end
ir1=0;
for in=1:npint
if cc(in,1)~= 1
ir1=ir1+1;
TLr(ir1)=TL(in);
TLr
for jn=1:npint
if cc(jn,1)==1
TLr(ir1)=TLr(ir1)-K(in,jn)*cc(jn,2);
end
end
Bogdan Teodorescu Gr. 1
Page 10 of 17
end
end
TLr=transpose(TLr)
% Solve Kr*fr=Tlr
fr=inv(Kr)*TLr;
fr=simplify(collect(fr,l))
% Constructie functia de aproximare fa(x)
% Constructie vector fn
for in=1:npint
fn(in)=0;
end
ir=0;
for in=1:npint
if cc(in,1)~= 1
ir=ir+1;
fn(in)=fr(ir);
else
fn(in)=cc(in,2);
end
end
fn=simplify(fn);
fn=transpose(fn)
% functia de aproximare fa si derivata fad
fa=collect(transpose(H)*fn,x);
fa
fad=collect(diff(fa,x));
fad
Rezultat:
fa=(-3/l*(210-159*l^2+l^4)/(420-52*l^2+l^4)+3/l*(210-229*l^2+8*l^4)/(420-52*l^2+l^4))*x^3+(-3*(-
350+265*l^2-5/3*l^4)/(420-52*l^2+l^4)+3*(-280+916/3*l^2-32/3*l^4)/(420-52*l^2+l^4))*x^2+(-2*l*(210-
159*l^2+l^4)/(420-52*l^2+l^4)+l*(210-229*l^2+8*l^4)/(420-52*l^2+l^4))*x
fad=(-9/l*(210-159*l^2+l^4)/(420-52*l^2+l^4)+9/l*(210-229*l^2+8*l^4)/(420-52*l^2+l^4))*x^2+(-6*(-
350+265*l^2-5/3*l^4)/(420-52*l^2+l^4)+6*(-280+916/3*l^2-32/3*l^4)/(420-52*l^2+l^4))*x-2*l*(210-
159*l^2+l^4)/(420-52*l^2+l^4)+l*(210-229*l^2+8*l^4)/(420-52*l^2+l^4)
Bogdan Teodorescu Gr. 1
Page 11 of 17
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.
Bogdan Teodorescu Gr. 1
Page 12 of 17
Problema 2:
a) soluia exact a ecuaiei difereniale folosind Matlab si s se fac verificarea;
Matlab:
if nces == 1
f=dsolve('D2f +f + 3*x^2-1=0','f(0)=qq1','Df(l)=qq2','x')
elseif nces ==2
f=dsolve('D2f +f + 3*x^2-1=0','f(0)=qq1','f(l)=qq2','x')
else
f=dsolve('D2f +f + 3*x^2-1=0','Df(0)=qq1','Df(l)=qq2','x')
end
f=subs(subs(f,qq1,q1),qq2,q2)
% verificarea solutiei exacte
verif=diff(diff(f,x),x)+f+3*x^2-1;
verif
Rezultat:
b) s se determine ecuaia erorilor ponderate (EEP) corespunztoare indicndu-se metodologia aleas;
Se folosete Discretizarea Global Direct, metoda Galerkin (formulare tare), avnd ca funcii de form
polinoamele de interpolare Lagrange. n form final EEP are forma de mai jos:
__ E
N
()
b
u
2
E
N
1
()
2
+ _ E
N
() E
N
1
()
b
u
+ _E
N
()
N
1
()_
x=b
_
N
= -_ E
N
() ()
b
u
+ |E
N
()]
x=b
q
c) s se indice funcia de aproximare aleas;
u
() = E
1
()
1
+ E
2
()
2
+ + E
()
+ + E
N
()
N
= E
N
1
N
d) s se indice funcia de pondere aleas;
Bogdan Teodorescu Gr. 1
Page 13 of 17
d
() = [
1
B
1
() + + [
() + + [
N
B
N
() = [
N
1
B
N
()
e) s se exprime toi termeni folosii in rezolvare;
E
N
() - cor nc(or or (ponoo Ioron) ;
[
N
1
- cor o cocnor (ncnosc);
N
- cor ooror nc( oproor n pnc scror;
d
() - nco ponr.
f) folosind Matlab s se gseasc funcia de aproximare;
Matlab:
%%%%%%%% Calcul simbolic %%%%%%%%%%%%
%%%% Determinarea functiilor de interpolare
% locatia punctelor de interpolare
for i=1:npint
loc(i)=l/(npint-1)*(i-1);
end
loc=transpose(loc);
loc
% vectorul functiilor de forma H(x)
for i=1:npint
H(i)=1;
for j=1:npint
if i-j~=0
H(i)=H(i)*(x-loc(j))/(loc(i)-loc(j));
else
H(i)=H(i);
end
end
end
H=transpose(H);
disp('Functii de forma')
disp([loc,H])
% Afisare vectorilor functii de forma
for i=1:npint
disp('vector functie forma H')
disp(i)
disp(subs(H,x,loc(i)))
end
% vectorul derivatelor dH(x)/dx=B1(x) dB1(x)/dx=B2(x)
B1=diff(H,x);
Bogdan Teodorescu Gr. 1
Page 14 of 17
B1=collect(expand(B1),x)
B2=diff(B1,x);
B2=collect(expand(B2),x)
% Ecuatia Erorilor Ponderate
% Matrice Rigiditate K(npint,npint)
K=zeros(npint,npint);
% termeni integrala pe domeniu
KI1=int(H*(transpose(B2)),x,0,l);
KI2=int(H*transpose(H),x,0,l);
KI1
KI2
KI=KI1+KI2;
KI=simplify(expand(KI))
% termen din conditia neesentiala
KIne1=zeros(npint,npint);
KIne2=zeros(npint,npint);
if ncnes == 1
KIne2=subs(H*transpose(B1),x,l);
end
if ncnes == 2
KIne1=subs(H*transpose(B1),x,0);
KIne2=subs(H*transpose(B1),x,l);
end
KIne1
KIne2
K=simplify(expand(KI1+KI2+KIne1+KIne2))
% Termeni liberi TL(npint)
TL=zeros(npint,1);
% termen integrala pe domeniu
TLI=-int(H*g,x,0,l);
% termen din conditia neesentiala
TLne1=zeros(npint,1);
TLne2=zeros(npint,1);
if ncnes == 1
TLne2=subs(H,x,l)*cc(npint,2);
end
Bogdan Teodorescu Gr. 1
Page 15 of 17
if ncnes == 2
TLne1=subs(H,x,0)*cc(1);
TLne2=subs(H,x,l)*cc(npint,2);
end
TL=simplify(expand(TLI+TLne1+TLne2))
% Rezolvarea Sistemului
% Impunerea conditiilor de contur esentiale
npintl=npint-nces % numar puncte interpolare fara conditii esentiale
% matricea redusa Kr(npinl,npintl)
for in=1:npintl
for jn=1:npintl
Kr(in,jn)=0;
end
end
ir1=0;
for in=1:npint
if cc(in,1)~= 1
ir1=ir1+1;
jr1=0;
for jn=1:npint
if cc(jn,1)~= 1
jr1=jr1+1;
Kr(ir1,jr1)=K(in,jn);
end
end
end
end
Kr
% Termen liber redus si corectat Tlr(npintl,1)
for i=1:npintl
TLr(i)=0;
end
ir1=0;
for in=1:npint
if cc(in,1)~= 1
ir1=ir1+1;
TLr(ir1)=TL(in);
TLr
for jn=1:npint
if cc(jn,1)==1
TLr(ir1)=TLr(ir1)-K(in,jn)*cc(jn,2);
end
end
end
end
TLr=transpose(TLr)
Bogdan Teodorescu Gr. 1
Page 16 of 17
% Solve Kr*fr=Tlr
fr=inv(Kr)*TLr;
fr=simplify(collect(fr,l))
% Constructie functia de aproximare fa(x)
% Constructie vector fn
for in=1:npint
fn(in)=0;
end
ir=0;
for in=1:npint
if cc(in,1)~= 1
ir=ir+1;
fn(in)=fr(ir);
else
fn(in)=cc(in,2);
end
end
fn=simplify(fn);
fn=transpose(fn)
% functia de aproximare fa si derivata fad
fa=collect(transpose(H)*fn,x);
fa
fad=collect(diff(fa,x));
fad
Rezultat:
fa=1/2/l^2*(75600*l-95775*l^3+2885*l^5+36*l^7-113400+3540*l^2+60*l^4)/(6300-
2880*l^2+75*l^4+l^6)-1/8/l^2*(189000*l-213870*l^3+1465*l^5+36*l^7-226800-5520*l^2-60*l^4)/(6300-
2880*l^2+75*l^4+l^6)-9/8/l^2*(12600*l-16470*l^3+505*l^5+12*l^7-25200+3120*l^2-60*l^4)/(6300-
2880*l^2+75*l^4+l^6))*x^3+(5/24/l*(189000*l-213870*l^3+1465*l^5+36*l^7-226800-5520*l^2-
60*l^4)/(6300-2880*l^2+75*l^4+l^6)-2/3/l*(75600*l-95775*l^3+2885*l^5+36*l^7-
113400+3540*l^2+60*l^4)/(6300-2880*l^2+75*l^4+l^6)+9/8/l*(12600*l-16470*l^3+505*l^5+12*l^7-
25200+3120*l^2-60*l^4)/(6300-2880*l^2+75*l^4+l^6))*x^2+(-1/8*(126000*l-
142580*l^3+2930/3*l^5+24*l^7-151200-3680*l^2-40*l^4)/(6300-2880*l^2+75*l^4+l^6)-9/8*(2800*l-
3660*l^3+1010/9*l^5+8/3*l^7-5600+2080/3*l^2-40/3*l^4)/(6300-2880*l^2+75*l^4+l^6)+1/2*(25200*l-
31925*l^3+2885/3*l^5+12*l^7-37800+1180*l^2+20*l^4)/(6300-2880*l^2+75*l^4+l^6))*x
fad=(3/2/l^2*(75600*l-95775*l^3+2885*l^5+36*l^7-113400+3540*l^2+60*l^4)/(6300-
2880*l^2+75*l^4+l^6)-3/8/l^2*(189000*l-213870*l^3+1465*l^5+36*l^7-226800-5520*l^2-60*l^4)/(6300-
2880*l^2+75*l^4+l^6)-27/8/l^2*(12600*l-16470*l^3+505*l^5+12*l^7-25200+3120*l^2-60*l^4)/(6300-
2880*l^2+75*l^4+l^6))*x^2+(5/12/l*(189000*l-213870*l^3+1465*l^5+36*l^7-226800-5520*l^2-
60*l^4)/(6300-2880*l^2+75*l^4+l^6)-4/3/l*(75600*l-95775*l^3+2885*l^5+36*l^7-
113400+3540*l^2+60*l^4)/(6300-2880*l^2+75*l^4+l^6)+9/4/l*(12600*l-16470*l^3+505*l^5+12*l^7-
25200+3120*l^2-60*l^4)/(6300-2880*l^2+75*l^4+l^6))*x-1/8*(126000*l-142580*l^3+2930/3*l^5+24*l^7-
151200-3680*l^2-40*l^4)/(6300-2880*l^2+75*l^4+l^6)-9/8*(2800*l-3660*l^3+1010/9*l^5+8/3*l^7-
Bogdan Teodorescu Gr. 1
Page 17 of 17
5600+2080/3*l^2-40/3*l^4)/(6300-2880*l^2+75*l^4+l^6)+1/2*(25200*l-31925*l^3+2885/3*l^5+12*l^7-
37800+1180*l^2+20*l^4)/(6300-2880*l^2+75*l^4+l^6)
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.