Sunteți pe pagina 1din 17

Bogdan Teodorescu Gr.

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

() - nc( nrpoor (nc( or);


- - nr pncor nrpoor.

Condensat, relaia de mai sus se poate scrie:

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.

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