Sie sind auf Seite 1von 10

FUNDAMENTOS DE MECNICA COMPUTACIONAL

DIFERENCIAS FINITAS: VALORES DE FRONTERA


YUHAN ARLEY LENIS
JOHNNYS BUSTILLO MAURY
UNIVERSIDAD DEL NORTE
Tome el caso de un recipiente sujeto a presin interna que es sometido a pruebas de
resistencia en el laboratorio. Para un recipiente de pared gruesa con un radio interno a y un
radio externo b, la ecuacin diferencial que debe cumplir el desplazamiento radial u de un
punto a lo largo del espesor es:

d 2 u 1 du u
+
=0 , u ( 5 )=0.0038731 , u(8)=0.0030769 ; 5 r8
d r 2 r dr r 2

El recipiente a presin puede ser modelado como puntos uniformemente distribuidos a lo


largo del eje r,
r=

radio mayorradio menor


85
3
r=
r=
Nodos
13
13

Resolvemos la ecuacin diferencial de manera analtica, resultando:


u ( r )=C 1 r +

C2
r

Aplicando las condiciones de frontera obtenemos el sistema de ecuaciones:


1
0.0038731=5 C 1+ C 2
5
1
0.0030769=8C 1 + C2
8
Resultando:
C1 =1.3460769 x 104
C2 =0.016000308

u ( r )=( 1.3460769 x 104 ) r +

0.016000308
r

C 2 du
du
0.016000308
4
=C1 2 =( 1.3460769 x 10 )
2
dr
dr
r
r
d 2 u 2C 2 d 2 u 2.6921538 x 104
= 3 2=
2
3
dr
r
dr
r

Usamos diferencias finitas hacia a delante en el nodo 2, diferencias finitas hacia


atrs en el nodo 13 y diferencias centrales en los nodos 3 hasta 12. Los valores

para los nodos 1 y 14 son conocidos. Cada una es referente a un orden del error
de 4.
Las derivadas en esta ecuacin diferencial ordinaria se sustituyen por
aproximaciones utilizando diferencias finitas divididas de la siguiente forma:

HACIA ADELANTE
d 2 u 3.75u i12.833 ui+1 +17.833 ui+213 ui +3 +5.0833u i+4 0.83333 ui+5
=
d r2
h2

d u 2.0833u i+ 4 ui +13 ui+2 +1.3333 ui+3 0.25 ui+4


=
dr
h

CENTRAL
d 2 u 0.083333ui 2 1.3333ui 1 2.5u i1.3333 ui+10.083333 ui +2
=
2
2
dr
h

d u 0.083333 ui20.66667 ui1 +0.66667 ui +10.083333 ui+2


=
dr
h

HACIA ATRS
d 2 u 3.75u i12.833 ui1+ 17.833ui213u i3 +5.0833 ui4 0.83333 ui5
=
d r2
h2

d u 2.0833 ui4 ui1+ 3u i21.3333u i3+ 0.25u i4


=
dr
h

Al sustituir estas aproximaciones en nuestra ecuacin diferencial original, obtenemos:


HACIA ADELANTE

] [

] [

] [

] [

3.75 2.0833 1
12.8333
4
17.8333
3
13 1.3333
5.0833 0.25
0.8333

2 ui +
+
ui+1 +

ui +2+
+
u i+3 +

ui +4
u i+5=0
2
2
2
2
2
r i ( r)
r i ( r )
r i( r )
( r ) r i ( r) r i
( r )
( r )
( r ) r i ( r )
( r)
( r )2

CENTRAL

] [

] [

] [

] [

0.083333 0.083333
1.3333 0.66667
1.3333 0.66667
0.083333 0.083333
2.5 1
+
ui2+

ui1 +
+
ui+1 +

ui +2+
ui=0
2
2
2
2
r i ( r)
r i ( r )
r i ( r)
r i( r )
( r)
( r)
( r )
( r)
( r )2 r 2i

HACIA ATRS

] [

] [

] [

] [

3.75 2.0833 1
12.8333
4
17.8333
3
13 1.3333
5.0833 0.25
0.8333
+
2 ui
+
ui1 +
+
ui2+

ui3 +
+
u i4
u i5=0
2
2
2
2
2
ri ( r )
r i ( r)
r i ( r )
( r ) r i ( r ) r i
( r)
( r)
( r ) r i ( r )
( r )
( r )2

Una vez resolviendo para cada uno de los nodos, obtenemos la siguiente matriz de coeficientes:

0
0
0
68,65421
332,3850
0
237,6677
243,0065
95
76
6
4
24,50808
25,56598
46,97797
1,630933
1,498696
56
85
0
8
24,52952
25,54454
0
1,501376
46,97530
95
45
4
6
24,54930
0
0
46,97294
1,503848
25
8
24,56759
0
0
0
1,506134
26
3
0
0
0
0
1,508255
2
0

0
95,24659
15,64814
59
8

1,628253
3

1,623495
4

25,52477
1,625781
15
6
25,50648
46,97085
15
1
24,58456
46,96897
05
6
24,60034
1,510228
45
3
0
1,512068
3
0

25,48951
1,621374
0
0
0
36
4
25,47372
46,96729
1,619401
0
0
95
5
4
24,61506
25,45900
46,96578
1,617561
0
45
96
0
4
24,62882
25,44524
1,513788
46,96441
1,615841
45
96
2
1
4

24,64171
25,43235
0
1,515399
46,96317
1,614230
0
54
87
6
0
0
24,65381
25,42025
0
0
1,516912
46,96204
1,612717
71
7
3
1
3
95,59314
336,5436
71,56209
15,64814
244,8547
243,2125
0
26
38
09
8
9
1
0
0
0
0
0
0
1

Al solucionar el sistema de ecuaciones asociado, obtenemos los valores:


u1

u2

u3

u4

u5

u6

u7

u8

u9

u10

u11

u12

u13

u14

0.00383 0.00376 0.00366 0.00357 0.00349 0.00342 0.00336 0.00330 0.00325 0.00321 0.00317 0.00317 0.00310 0.00307
71
3
48
71
86
84
55
91
87
35
32
32
52
69

RESULTADOS

ri
5

uanaltica

uaproxim

0,003873 0,003873
1
1

uerror
0

5,230769 0,003762 0,003762 0,000720


23
98
96
5
5,461538 0,003664 0,003664 0,000730
46
8
77
97
5,692307 0,003577 0,003577 0,000688
69
09
07
06
5,923076 0,003498 0,003498 0,000639
92
64
62
76
6,153846 0,003428 0,003428 0,000589
15
41
38
94
6,384615 0,003365 0,003365 0,000539
38
49
47
17

duanaltica
0,000505
4
0,000450
18
0,000401
8
0,000359
19
0,000321
46
0,000287
9
0,000257
91

duaproxim

0,0234988 4749,506
2
69
0,0230723 5225,160
8
66
0,0004017
8
0,0003591
8
0,0003214
5
0,0002878
9

0,005526
25
0,004348
52
0,004289
31
0,004358
32

0,004476
0,0002579
05

6,615384 0,003309 0,003309 0,000487


-0,000231 0,0002309
62
13
12
77
9
6,846153 0,003258 0,003258 0,000435
0,000206 0,0002067
85
67
65
98
77
6
7,076923 0,003213 0,003213 0,000383
0,000184 0,0001848
08
52
51
98
87
6
7,307692 0,003173 0,003173 0,000331
0,000165 -0,000165
31
19
18
9
01
7,538461 0,003137 0,003137 0,000279
0,000146 0,0001469
54
22
22
14
95
4
7,769230 0,003105 0,003105 0,000215
0,0002067
0,000130
77
24
24
62
5
47
0,003076 0,003076
0,0001848
8
0
0,000115
9
9
6
4

GRFICO u vs r

duerror

0,004636
12
0,004839
26
0,005086
55
0,005353
07
0,005186
08
258,4694
99
260,1936
01

-3

x 10

3.9

Solucin Analtica

3.8

Aproximacin

3.7
3.6
3.5
3.4
3.3
3.2
3.1
3

5.5

6.5

ALGORITMO
Script deriv_ap
function a=deriv_ap(xi,x0,p)
h=abs(xi(1)-xi(2));
c=(xi-x0)/h;
L=length(xi);
A=zeros(L);
B=zeros(L,1);
B(p+1,1)=factorial(p);
for i=1:L
A(i,:)=c.^(i-1);
end
a=A\B;
end

Scrpit adelanteV2
%adelante%%%
clear all
r=5;
ri=(5:3/13:8);
h=(3/13);
u=zeros(14,14);du_error=zeros(14,1);u_error=zeros(14,1);

7.5

u(1,1)=1;
u(14,14)=1;
A=[5 1/5;8 1/8];b=[0.0038731;0.0030769];
c=A\b;
a=deriv_ap([0 1 2 3 4 5],0,2);
a1=deriv_ap([0 1 2 3 4],0,1);
for i=2
r=r+h;
u(i,i)=((a(1)/(h^2))+(a1(1)/(h*r))-(1/(r^2)));
u(i,i+1)=((a(2)/(h^2))+(a1(2)/(r*h)));
u(i,i+2)=((a(3)/(h^2))+(a1(3)/(r*h)));
u(i,i+3)=((a(4)/(h^2))+(a1(4)/(r*h)));
u(i,i+4)=((a(5)/(h^2))+(a1(5)/(r*h)));
u(i,i+5)=(a(6)/(h^2));
end
a2=deriv_ap([-2 -1 0 1 2],0,2);
a3=deriv_ap([-2 -1 1 2],0,1);
for i=3:12
r=r+h;
u(i,i-2)=((a2(1)/(h^2))+(a3(1)/(r*h)));
u(i,i-1)=((a2(2)/(h^2))+(a3(2)/(r*h)));
u(i,i)=((a2(3)/(h^2))-(1/(r^2)));
u(i,i+1)=((a2(4)/(h^2))+(a3(3)/(r*h)));
u(i,i+2)=((a2(5)/(h^2))+(a3(4)/(r*h)));
end
a4=deriv_ap([-5 -4 -3 -2 -1 0],0,2);
a5=deriv_ap([-4 -3 -2 -1 0],0,1);
for i=13
r=r+h;
u(i,i-5)=(a4(1)/(h^2));
u(i,i-4)=((a4(2)/(h^2))+(a5(1)/(r*h)));
u(i,i-3)=((a4(3)/(h^2))+(a5(2)/(r*h)));
u(i,i-2)=((a4(4)/(h^2))+(a5(3)/(r*h)));
u(i,i-1)=((a4(5)/(h^2))+(a5(4)/(r*h)));
u(i,i)=((a4(6)/(h^2))+(a5(5)/(h*r))-(1/(r^2)));
end
b=zeros(14,1);
b(1,1)=0.0038731;
b(14,1)=0.0030769;
x=u\b;
u_a=(c(1).*ri)+(c(2)./ri);
for i=1:14
u_error(i)=100*(norm(x(i)-u_a(i))/norm(u_a(i)));
end
plot(ri,u_a);
hold on
plot(ri,x,'*r');
hold off
%%%%%%%%%derivadas%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%adelante
du=zeros(14,1);
du_a=c(1)-(c(2)./(ri.^2));
for i=1:2
du(i)=(a1(1)*x(i)+a1(2)*x(i+1)+a1(3)*x(i+2)+a1(4)*x(i+3)+a1(4)*x(i+4))/h;
end
%centrales
for i=3:12

du(i)=(a3(1)*x(i-2)+a3(2)*x(i-1)+a3(3)*x(i+1)+a3(4)*x(i+2))/h;
end
%atras
for i=13:14
du(i)=(a5(1)*x(i)+a5(2)*x(i-1)+a5(3)*x(i-2)+a5(4)*x(i-3)+a5(5)*x(i-4))/h;
end
for i=1:14
du_error(i)=100*(norm(du(i)-du_a(i))/norm(du_a(i)));
end
rta=[ri' u_a' x u_error du_a' du du_error];
display (rta)
%plot(du_a,ri);
%hold on
%plot(du,ri,'or');

Das könnte Ihnen auch gefallen