Vous êtes sur la page 1sur 5

Anlisis Numrico para las EDP

Trabajo bimestral
Andrs Merino
17 de octubre de 2011
1. Introduccin
Buscaremos una solucin numrica al problema:

+u

+u = f,
u(0) = 0,
u

(1) = 1,
(1)
donde , R
+
y f L
2
(0, 1). Para esto daremos la formulacin dbil del problema y
a travs de elementos nitos, plantearemos un mtodo para su resolucin y nalmente su
implementacin en MATLAB.
2. Formulacin dbil
Denamos el espacio
K = {v H
1
(0, 1): v(0) = 0}
por lo tanto, multiplicando la ecuacin (1) cualquier v K e integrando en el intervalo (0, 1)
obtenemos:

1
0
u

v +

1
0
u

v +

1
0
uv =

1
0
fv,
utilizando integracin por partes obtenemos
u

(1)v(1) u

(0)v(0) +

1
0
u

1
0
u

v +

1
0
uv =

1
0
fv,
y dadas las condiciones de borde del problema y la condicin de K, el problema se traduce a
hallar u K tal que
a(u, v) = (f, v) +v(1), v K (2)
donde (f, v) =

1
0
fv denota el producto escalar en L
2
(0, 1) y
a(u, v) =

1
0
u

1
0
u

v +

1
0
uv (3)
es una forma bilineal. Al ser K no vaco, convexo y cerrado, del teorema de Stampacchia, se
sigue existe un nico u K que es solucin dbil de la ecuacin diferencial.
1
3. Mtodo de los elementos nitos
Sea
h
una particin de 2n + 1 punto del intervalo [0, 1] numeramos de tal forma que
x
0
= 0 y x
2n
= 1. Consideremos K
h
un subespacio vectorial de dimensin nita de K.
Aproximaremos u por u
h
, donde u
h
es la solucin al problema: hallar
u
h
V
h
: a(u
h
, v
h
) = (f, v
h
) +v
h
(1), v
h
K
h
. (4)
Tomemos {
1
, . . . ,
2n+1
} una base del subespacio K
h
, donde estas funciones de base estn
dadas por:
(i par)
i
(x) =

(x x
i1
)(x x
i2
)
(x
i
x
i1
)(x
i
x
i2
)
, x
i2
x x
i
,
(x
i+1
x)(x
i+2
x)
(x
i+1
x
i
)(x
i+2
x
i
)
, x
i
x x
i+2
,
0, si no.
(5)
(i impar)
i
(x) =

(x
i+1
x)(x x
i1
)
(x
i+1
x
i
)(x
i
x
i1
)
, x
i1
x x
i+1
,
0, si no.
(6)
Se tiene entonces que
u
h
(x) =
2n+1

i=1
u
i

i
(x).
y
u

h
(x) =
2n+1

i=1
u
i

i
(x).
Para el lado derecho de (4) aproximamos f por f
h
, donde
f
h
=
2n+1

i=1
f
i

i
,
con esto y tomando v
h
=
j
, el problema de elementos nitos se reduce a encontrar 2n + 1
coecientes {u
1
, . . . , u
2n+1
} tales que
2n+1

i=1
u
j
a(
i
,
j
) =
2n+1

i=1
f
i
(
i
,
j
) +
j
(1) j = 1, . . . , 2n + 1. (7)
Por lo tanto el problema se transforma en encontrar u R
2n+1
tal que
Ar u = Ad

f + , (8)
donde Ar
i,j
= a(
i
,
j
), Ad
i,j
= (
i
,
j
),

f es la evaluacin de las funcin f en los puntos de
la particin y en la evaluacin de las funciones
i
en el punto 1.
2
4. Implementacin en MATLAB
Para la implementacin en MATLAB, primero descompondremos a la matriz Ar como la
suma de tres matrices A
1
A
2
y A
3
donde
A
1
i,j
=

1
0

j
A
2
i,j
=

1
0

j
A
3
i,j
=

1
0

j
y se tiene que el problema a resolver es
(A
1
+A
2
+A
3
) u = A
3

f +
El programa que genera las matrices A
1
, A
2
y A
3
est denominado Matrices y el cdigo
es el siguiente:
function [ A1 A2 A3]=Matri ces ( t , a , b)
n=( si ze ( t , 2) 1) /2;
syms x ;
A1=zeros (2n+1);
A2=zeros (2n+1);
A3=zeros (2n+1);
f i 2 =(xt ( 2) ) ( xt ( 3 ) ) / ( ( t (1)t ( 2) ) ( t (1)t ( 3 ) ) ) ;
f j 2 =(t (3)x ) ( xt ( 1 ) ) / ( ( t (3)t ( 2) ) ( t (2)t ( 1 ) ) ) ;
A1(1 , 1)= i nt ( di f f ( f i 2 )^2 , t ( 1) , t ( 3 ) ) ;
A2(1 , 1)= i nt ( di f f ( f i 2 ) f i 2 , t ( 1) , t ( 3 ) ) ;
A3(1 , 1)= i nt ( f i 2 ^2 , t ( 1) , t ( 3 ) ) ;
A1(1 , 2)= i nt ( di f f ( f i 2 ) di f f ( f j 2 ) , t ( 1) , t ( 3 ) ) ;
A2(1 , 2)= i nt ( di f f ( f i 2 ) f j 2 , t ( 1) , t ( 3 ) ) ;
A3(1 , 2)= i nt ( f i 2 f j 2 , t ( 1) , t ( 3 ) ) ;
f j 2 =(xt ( 2) ) ( xt ( 1 ) ) / ( ( t (3)t ( 2) ) ( t (3)t ( 1 ) ) ) ;
A1(1 , 3)= i nt ( di f f ( f i 2 ) di f f ( f j 2 ) , t ( 1) , t ( 3 ) ) ;
A2(1 , 3)= i nt ( di f f ( f i 2 ) f j 2 , t ( 1) , t ( 3 ) ) ;
A3(1 , 3)= i nt ( f i 2 f j 2 , t ( 1) , t ( 3 ) ) ;
i =2n+1;
f i 1 =(xt ( i 1))( xt ( i 2))/(( t ( i )t ( i 1))( t ( i )t ( i 2) ) ) ;
A1( i , i )=i nt ( di f f ( f i 1 )^2 , t ( i 2) , t ( i ) ) ;
A2( i , i )=i nt ( di f f ( f i 1 ) f i 1 , t ( i 2) , t ( i ) ) ;
A3( i , i )=i nt ( f i 1 ^2 , t ( i 2) , t ( i ) ) ;
3
f j 1 =(t ( i )x ) ( xt ( i 2))/(( t ( i )t ( i 1))( t ( i 1)t ( i 2) ) ) ;
A1( i , i 1)=i nt ( di f f ( f i 1 ) di f f ( f j 1 ) , t ( i 2) , t ( i ) ) ;
A2( i , i 1)=i nt ( di f f ( f i 1 ) f j 1 , t ( i 2) , t ( i ) ) ;
A3( i , i 1)=i nt ( f i 1 f j 1 , t ( i 2) , t ( i ) ) ;
f j 1 =(xt ( i 1))( xt ( i ) ) / ( ( t ( i 2)t ( i 1))( t ( i 2)t ( i ) ) ) ;
A1( i , i 2)=i nt ( di f f ( f i 1 ) di f f ( f j 1 ) , t ( i 2) , t ( i ) ) ;
A2( i , i 2)=i nt ( di f f ( f i 1 ) f j 1 , t ( i 2) , t ( i ) ) ;
A3( i , i 2)=i nt ( f i 1 f j 1 , t ( i 2) , t ( i ) ) ;
for k=1:n1
i =2k+1;
f i 1 =(xt ( i 1))( xt ( i 2))/(( t ( i )t ( i 1))( t ( i )t ( i 2) ) ) ;
f i 2 =(xt ( i +1))( xt ( i +2))/(( t ( i )t ( i +1))( t ( i )t ( i +2) ) ) ;
A1( i , i )=i nt ( di f f ( f i 1 )^2 , t ( i 2) , t ( i ))+ i nt ( di f f ( f i 2 )^2 , t ( i ) , t ( i +2));
A2( i , i )=i nt ( di f f ( f i 1 ) f i 1 , t ( i 2) , t ( i ))+ i nt ( di f f ( f i 2 ) f i 2 , t ( i ) , t ( i +2));
A3( i , i )=i nt ( f i 1 ^2 , t ( i 2) , t ( i ))+ i nt ( f i 2 ^2 , t ( i ) , t ( i +2));
f j 1 =(t ( i )x ) ( xt ( i 2))/(( t ( i )t ( i 1))( t ( i 1)t ( i 2) ) ) ;
f j 2 =(t ( i +2)x ) ( xt ( i ) ) / ( ( t ( i +2)t ( i +1))( t ( i +1)t ( i ) ) ) ;
A1( i , i 1)=i nt ( di f f ( f i 1 ) di f f ( f j 1 ) , t ( i 2) , t ( i ) ) ;
A1( i , i +1)=i nt ( di f f ( f i 2 ) di f f ( f j 2 ) , t ( i ) , t ( i +2));
A2( i , i 1)=i nt ( di f f ( f i 1 ) f j 1 , t ( i 2) , t ( i ) ) ;
A2( i , i +1)=i nt ( di f f ( f i 2 ) f j 2 , t ( i ) , t ( i +2));
A3( i , i 1)=i nt ( f i 1 f j 1 , t ( i 2) , t ( i ) ) ;
A3( i , i +1)=i nt ( f i 2 f j 2 , t ( i ) , t ( i +2));
f j 1 =(xt ( i 1))( xt ( i ) ) / ( ( t ( i 2)t ( i 1))( t ( i 2)t ( i ) ) ) ;
f j 2 =(xt ( i +1))( xt ( i ) ) / ( ( t ( i +2)t ( i +1))( t ( i +2)t ( i ) ) ) ;
A1( i , i 2)=i nt ( di f f ( f i 1 ) di f f ( f j 1 ) , t ( i 2) , t ( i ) ) ;
A1( i , i +2)=i nt ( di f f ( f i 2 ) di f f ( f j 2 ) , t ( i ) , t ( i +2));
A2( i , i 2)=i nt ( di f f ( f i 1 ) f j 1 , t ( i 2) , t ( i ) ) ;
A2( i , i +2)=i nt ( di f f ( f i 2 ) f j 2 , t ( i ) , t ( i +2));
A3( i , i 2)=i nt ( f i 1 f j 1 , t ( i 2) , t ( i ) ) ;
A3( i , i +2)=i nt ( f i 2 f j 2 , t ( i ) , t ( i +2));
end
for k=1: n
i =2k ;
f i =( t ( i +1)x ) ( xt ( i 1))/(( t ( i +1)t ( i ) ) ( t ( i )t ( i 1) ) ) ;
A1( i , i )=i nt ( di f f ( f i )^2 , t ( i 1) , t ( i +1));
A2( i , i )=i nt ( di f f ( f i ) f i , t ( i 1) , t ( i +1));
A3( i , i )=i nt ( f i ^2 , t ( i 1) , t ( i +1));
4
f j 1 =(xt ( i ) ) ( xt ( i +1))/(( t ( i 1)t ( i ) ) ( t ( i 1)t ( i +1) ) ) ;
f j 2 =(xt ( i ) ) ( xt ( i 1))/(( t ( i +1)t ( i ) ) ( t ( i +1)t ( i 1) ) ) ;
A1( i , i 1)=i nt ( di f f ( f i ) di f f ( f j 1 ) , t ( i 1) , t ( i +1));
A1( i , i +1)=i nt ( di f f ( f i ) di f f ( f j 2 ) , t ( i 1) , t ( i +1));
A2( i , i 1)=i nt ( di f f ( f i ) f j 1 , t ( i 1) , t ( i +1));
A2( i , i +1)=i nt ( di f f ( f i ) f j 2 , t ( i 1) , t ( i +1));
A3( i , i 1)=i nt ( f i f j 1 , t ( i 1) , t ( i +1));
A3( i , i +1)=i nt ( f i f j 2 , t ( i 1) , t ( i +1));
end
Utilizando estas matrices se crea el programa ElementosFinitos que resuelve (1), y su
cdigo es:
function u=El ement os Fi ni t os ( fun , var , x , a , b)
[ A1 A2 A3]=Matri ces ( x ) ;
x=x
f=subs ( fun , var , x ) ;
e=zeros ( si ze ( f ) ) ;
e ( si ze ( f , 1) ) =1;
A=(A1+aA2+bA3)
B=A3 f+e
u=inv(A) (A3 f+e ) ;
5