You are on page 1of 41

Mtodos de Diferencias Finitas

para
Ecuaciones en Derivadas Parciales
Ecuaciones en Derivadas Parciales
Introduccin
Diferencias finitas
Convergencia y estabilidad
Ecuaciones hiperblicas: ecuacin de Ondas
Ecuaciones parablicas: ecuacin del Calor
Ecuaciones elpticas: ecuacin de Laplace
Introduccin
EDP de orden 2, lineales de coeficientes
constantes.
Au
xx
+Bu
xy
+Cu
yy
+Du
x
+Eu
y
+Fu=G
Ecuacin de Ondas u
tt
c
2
u
xx
= 0
Ecuacin del Calor u
t
cu
xx
= 0, c>0
Ecuacin de Laplace u
xx
+ u
yy
= 0
Condiciones iniciales y de contorno
x
Diferencias finitas
Discretizacin: EDP EDF
Mtodos explcitos
Sencillos
Inestables
Mtodos implcitos
Ms complejos
Estables
h
x
i 1
x
i i+1
y
j+1
y
j
y
j 1
k
i,j
u
Diferencias primeras
Hacia adelante
Error
Hacia atrs
u x y
u x h y u x y
h
u u
h
x i j
i j i j i j i j
( , )
( , ) ( , )
, ,
~
+
=

+1
u x y
u x y u x h y
h
u u
h
x i j
i j i j i j i j
( , )
( , ) ( , )
, ,
~

=

1
u x y
u u
h
h
u x h y
x i j
i j i j
xx i j
( , ) ( , ),
, ,
=

+ < <
+1
2
0 1 u u
Diferencias primeras (cont.)
Diferencias simtricas
Error
u x y
u x h y u x h y
h
u u
h
x i j
i j i j i j i j
( , )
( , ) ( , )
, ,
~
+
=

+
2 2
1 1
u x y
u x h y u x h y
h
h
u y
x h x h
x xxx
( , )
( , ) ( , )
( , ),
] , [
=
+

e +
2 6
2
u
u
Diferencias segundas
Diferencias simtricas
Error
u x y
u x h y u x y
h
u u u
h
xx i j
x i j x i j i j i j i j
( , )
( , ) ( , )
, , ,
~
+
~
+
+ 1 1
2
2
u x y
u x h y u x y u x h y
k
h
u y
x h x h
xx xxxx
( , )
( , ) ( , ) ( , )
( , )
] , [
=
+ +

e +
2
12
2
2
u
u
Convergencia y estabilidad
EDP F(x,y,u)=0 Solucin:
EDF G
i,j
(h,k,u)=0, para cada (i,j)
Convergencia
Consistencia
Estabilidad: Control del error de redondeo
Consistencia + Estabilidad Convergencia
~
( , ) u x y

( , )
,
u x y
h k i j

( , ) ( , )
, ,
u x y u x y
h k i j h k i j

0
G h k u
i j h k , ,
( , ,
~
)


0
0
Ecuaciones hiperblicas
Ecuacin de
Ondas
Condiciones
iniciales
Condiciones
de contorno
Ecuacin en diferencias finitas
u
tt
= cu
xx
, 0 < x < L, t > 0

u(x, 0) = f(x) u
t
(x, 0) = g(x)

u(0,t) = l(t) u(L,t) = r(t)

u u u
k
c
u u u
h
i j i j i j i j i j i j , , , , , , + +
+
=
+
1 1
2
2
1 1
2
2 2
Ec. de Ondas: Mtodo explcito
Condiciones iniciales
u
i,0
= f
i
y u
i,1
u
i,1
= 2kg
i

Paso 1
u
i,1
= o
2
(f
i1
+f
i+1
)/2 + (1o
2
)f
i
+ kg
i

Pasos siguientes
u
i,j+1
= o
2
(u
i+1,j
+ u
i1,j
) +2(1 o
2
)u
i,j
u
i,j1

Convergencia o s 1
Ecuacin de ondas. Mtodo explcito.
Ejemplo u
tt
= cu
xx
, 0 < x < L, t > 0
c = 1, L=T=4, nx=4, nt=8,
u(x, 0) = 2|x2| u
t
(x, 0) = 0
u(0,t) = 0 u(L,t) = 0
Condicin de convergencia :
Instante t = 0:
u
0,0
= f(x
0
) = 2 |x
0
2| = 2 |0 2| = 0 = f(x
4
)
u
1,0
= f(x
1
) = 2 |x
1
2| = 2 |1 2| = 1 = f(x
3
)
u
2,0
= f(x
2
) = 2 |x
2
2| = 2 |2 2| = 2

1
2
1
1
5 . 0 1
s =

= =
h
k c
o
Instante t=1:
u
i,1
= a
2
(u
i-1,0
+u
i+1,0
)/2 + (1 a
2
) u
i,0
+ k g(x
i
)
donde a
2
= 1/4, 1 a
2
= 3/4:
u
1,1
= (1/4)(u
0,0
+ u
2,0
)/2 + (3/4)u
1,0
=
(1/4)(0 + 2)/2 + (3/4)1 = 1 = u
3,1

u
2,1
= (1/4)(u
1,0
+ u
3,0
)/2 + (3/4)u
2,0
=
(1/4)(1 + 1)/2 + (3/4)2 = 7/4
Aplicando la frmula genrica
u
i,j+1
= a
2
(u
i-1,j
+ u
i+1,j
) + 2 (1 a
2
) u
i,j
u
i,j1

con lo que, para t = 1 obtenemos:
u
1,2
= (1/4)(u
0,1
+ u
2,1
) + (3/2)u
1,1
u
1,0

= (1/4)(0 + 7/4) + (3/2)1 1 = 15/16
= u
3,2

u
2,2
= (1/4)(u
1,1
+ u
3,1
) + (3/2)u
2,1
u
2,0

= (1/4)(1 + 1) + (3/2)(7/4) 2 = 9/8
Procediendo anlogamente

x = 0 x = 1 x = 2 x = 3 x = 4
t = 0 0 1.0000 2.0000 1.0000 0
t = 0.5 0 1.0000 1.7500 1.0000 0
t = 1 0 0.9375 1.1250 0.9375 0
t = 1.5 0 0.6875 0.4063 0.6875 0
t = 2 0 0.1953 -0.1719 0.1953 0
t = 2.5 0 -0.4375 -0.5664 -0.4375 0
t = 3 0 -0.9932 -0.8965 -0.9932 0
t = 3.5 0 -1.2764 -1.2749 -1.2764 0
t = 4 0 -1.2401 -1.6541 -1.2401 0

Ec. de Ondas: Mtodo implcito
Idea
u
i,j+1
2u
i,j
+ u
i,j1
= o
2
[(u
i+1,j+1
2u
i,j+1
+ u
i1,j+1
)
+ (u
i+1,j1
2u
i,j1
+ u
i1,j1
)]/2
Pasos
(1+o
2
)u
i,j+1
o
2
(u
i+1,j+1
+ u
i1,j+1
)/2 =
2u
i,j
+ o
2
(u
i+1,j1
+ u
i1,j1
)/2 (1+o
2
)u
i,j1

Convergencia para todo o
Algoritmo del mtodo implcito
Truco ecuacin implcita
o
2
( u
i1,j1
+ u
i1,j+1
)/4
+ (1 + o
2
)(u
i,j1
+ u
i,j+1
)/2
o
2
(u
i+1,j1
+ u
i+1,j+1
)/4 = u
i,j .

Sistema Aw = v, v = (u
1,j
,u
2,j
,...,u
nx1,j
)'
tridiagonal u
i,j+1
= w
i
u
i,j1

Factorizacin LU Lz = v
Uw = z
Mtodo implcito.
Resolucin del sistema

Sustitucin



Factorizacin LU



|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
|
|
|
.
|

\
|

1
1
0
0
4
7
1
1
1
8
5
16
1
16
1
8
5
16
1
16
1
8
5
x
x
x
|
|
|
.
|

\
|
=
|
|
|
.
|

\
|

|
|
|
.
|

\
|
=
|
|
|
.
|

\
|

|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
9184 . 0
1837 . 1
9184 . 0
1
2
1
9184 . 1
1837 . 3
9184 . 1
0 , 3
0 , 2
0 , 1
1
1
1
2 , 3
2 , 2
2 , 1
u
u
u
x
x
x
u
u
u
|
|
|
.
|

\
|

=
|
|
|
.
|

\
|

=
1 0 0
10 . 0 1 0
0 1 . 0 1

86 61 . 0 0625 . 0 0
0 61875 . 0 0625 . 0
0 0 625 . 0
U L
x = 0 x = 1 x = 2 x = 3 x = 4
t = 0 0 1.0000 2.0000 1.0000 0
t = 0.5 0 1.0000 1.7500 1.0000 0
t = 1 0 0.9184 1.1837 0.9184 0
t = 1.5 0 0.6926 0.4824 0.6926 0
t = 2 0 0.2912 0.1699 0.2912 0
t = 2.5 0 0.2449 0.6647 0.2449 0
t = 3 0 0.7996 0.9953 0.7996 0
t = 3.5 0 1.2231 1.2214 1.2231 0
t = 4 0 1.3966 1.3981 1.3966 0
Ecuaciones parablicas
Ecuacin u
t
= cu
xx
, 0 < x < L, t > 0
del Calor
Condicin u(x, 0) = f(x)
inicial
Condiciones u(0, t) =T
0
u(L, t) = T
L

de contorno
Ecuacin en diferencias
u u
k
c
u u u
h
i j i j i j i j i j , , , , , + +

=
+
1 1 1
2
2
Ec. del Calor: Mtodo explcito
Condicin inicial
u
i,0
= f(x
i
)
Condiciones de contorno
u
0,j
= T
0
u
nx,t
= T
L
para j>0
Pasos siguientes
u
i,j+1
= o(u
i+1,j
+u
i1,j
) +(12o)u
i,j

Convergencia o s 1/2 ptimo o = 1/6
Ecuacin del Calor. Mtodo explcito.
Ejemplo
Hallar la temperatura para t = 0.3 de una barra
de 1m cuyos extremos se mantienen a 20C y a
40C. La temperatura inicial de la barra es de
100C y el coeficiente c = 0.1. Tomar Ax = 0.2
y At = 0.1. Justificar la aplicabilidad del mtodo
explcito.




2
1
4
1
04 . 0
1 . 0 1 . 0
2
s =

= =
h
k c
o
Ajuste de las condiciones iniciales y de
contorno:
u
0,0
= 60, u
1,0
= u
2,0
= u
3,0
= u
4,0
= 100,
u
5,0
= 70
Instante t = 0.1
u
1,1
= (u
0,0
+ u
2,0
)/4 + u
1,0
/2
= (60+100)/4 + 100/2 = 90
u
2,1
= u
3,1
= 100
u
4,1
= (u
3,0
+ u
5,0
)/4 + u
4,0
/2
= (100+70)/4 + 100/2 = 92.5

Instante t = 0.2 :
u
1,2
= 75 u
2,2
= 97.5
u
3,2
= 98.125 u
4,2
= 81.25

Instante t = 0.3:
u
1,3
= 66.875 u
2,3
= 92.0313
u
3,3
= 93.75 u
4,3
= 75.1563

Ec. del Calor: Mtodo implcito
Idea: Diferencias hacia atrs


Pasos
(1+2o)u
i,j
o(u
i1,j
+ u
i+1,j
) = u
i,j1

Convergencia
para todo o
u u
k
c
u u u
h
i j i j i j i j i j , , , , ,

=
+
+ 1 1 1
2
2
Ecuacin del Calor. Mtodo implcito
Se verifica la condicin de convergencia :
o = 1/4 < 1/2
Diagonal principal: 1 + 2o = 3/2,
Diagonales contiguas o = 1/4.
Para t = 0.1:
|
|
|
|
|
.
|

\
|
+
+
=
|
|
|
|
|
.
|

\
|
|
|
|
|
|
.
|

\
|




0 , 5 0 , 4
0 , 3
0 , 2
0 , 0 0 , 1
1 , 4
1 , 3
1 , 2
1 , 1
2
3
4
1
4
1
2
3
4
1
4
1
2
3
4
1
4
1
2
3


u u
u
u
u u
u
u
u
u
o
o
Valores obtenidos por este mtodo:

x = 0.2 x = 0. 4 x = 0.6 x = 0.8
t = 0.1 86.2237 97.3423 97.8301 89.6384
t = 0.2 76.3776 93.3707 94.4771 82.1718
t = 0.3 69.0598 88.8487 90.5494 76.5394



Mtodo de Crank-Nicholson
Idea: media de diferencias centrales
u
i,j+1
u
i,j
= o [(u
i+1,j+1
2u
i,j+1
+ u
i1,j+1
) +
(u
i+1,j
2u
i,j
+ u
i1,j
)] /2
Pasos
2(1+o)u
i,j+1
o(u
i+1,j+1
+ u
i1,j+1
) =
2(1o)u
i,j
+ o(u
i+1,j
+ u
i1,j
)
Convergencia para todo o
Ecuacin del Calor. Mtodo de
Crank-Nicholson
Matriz del sistema:

Trmino independiente del primer paso:


|
|
|
|
|
.
|

\
|
+
+
+
+
+
|
|
|
|
|
.
|

\
|
70 100
100 100
100 100
100 60
4
1
100
100
100
100
2
3
|
|
|
|
|
.
|

\
|




2
5
4
1
4
1
2
5
4
1
4
1
2
5
4
1
4
1
2
5
Valores obtenidos por Crank-Nicholson:

x = 0.2 x = 0.4 x = 0.6 x = 0.8
t = 0.1 87.8683 98.6826 98.9578 90.8958
t = 0.2 76.0999 95.1069 96.0470 82.0380
t = 0.3 68.2003 90.2963 91.9748 76.0250


Ecuaciones elpticas
Ecuacin de Laplace
u
xx
+ u
yy
= 0, 0 < x < a, 0 < y <b
Condiciones de contorno
u(x,0), u(x,b), u(0,y), u(a,y)
Discretizacin
u u u
h
u u u
k
i j i j i j i j i j i j + +
+
+
+
=
1 1
2
1 1
2
2 2
0
, , , , , ,
Ecuacin de Laplace
Ecuacin en diferencias: o=k/h
o
2
(u
i-1,j
+ u
i+1,j
) + u
i,j-1
+ u
i,j+1
2(o
2
+1)u
i,j
= 0

Matriz del
sistema:
grande ,
dispersa

Caso h = k : u
i-1,j
+ u
i+1,j
+ u
i,j-1
+ u
i,j+1
= 4u
i,j

Ec. de Laplace: Mtodos iterativos
Mtodo de Jacobi


Mtodo de Gauss-Seidel


Criterio de parada
max u u
i j
i j
k
i j
k
,
,
( )
,
( )
<
1
c
( )
( )
( ) u u u u u
i j
k
i j
k
i j
k
i j
k
i j
k
,
( )
,
( )
,
( )
,
( )
,
( )
= + + + +

o o
2
1
1
1
1
1
1
1
1 2
2 2
( )
( )
( ) u u u u u
i j
k
i j
k
i j
k
i j
k
i j
k
,
( )
,
( )
,
( )
,
( )
,
( )
= + + + +
+

o o
2
1 1
1
1 1
1 2
2 2
Mtodo de Sobrerrelajacin
Idea:
ponderar el desplazamiento de Gauss-Seidel
Pasos



Si e = 1 coincide con Gauss-Seidel
( )
( )
( )

( )

,
( )
,
( )
,
( )
,
( )
,
( )
,
( )
,
( )
,
( )
u u u u u
u u u
i j
k
i j
k
i j
k
i j
k
i j
k
i j
k
i j
k
i j
k
= + + + +
= +
+

o o
e e
2
1 1
1
1 1
1 2
1
2 2
1
Ecuacin de Laplace.
Ejemplo

u
xx
+ u
yy
=0, 0 < x < 1
0 < y < 1,
n=4 m=4,
u(x, 0) = 0 u

(x, 1) = 100x
u(0, y) = 0 u(1, y) = 100y
c = 0.01
Ajuste de las condiciones de contorno:

1 1 1 1 25
) 0 (
,
,...,n- j ,...,m- i u
j i
= = =
Mtodo de Jacobi.
Iteraciones: 8
Operaciones en coma flotante: 1142
y = 0.25 y = 0. 5 y = 0.75
x = 0.25 6.2561 12.5031 18.7500
x = 0.5 12.5031 25.0000 37.4969
x = 0.75 18.7500 37.4969 56.2439
Mtodo de Gauss-Seidel.
Iteraciones: 11
Operaciones en coma flotante: 1378
y = 0.25 y = 0. 5 y = 0.75
x = 0.25 6.2447 12.4947 18.7473
x = 0.5 12.4947 24.9947 37.4973
x = 0.75 18.7473 37.4973 56.2487
Mtodo de Sobrerrelajacin.
Factor de relajacin: e = 1.2
Iteraciones: 8
Operaciones en coma flotante: 1802
y = 0.25 y = 0. 5 y = 0.75
x = 0.25 6.2514 12.5008 18.7502
x = 0.5 12.5008 25.0003 37.5002
x = 0.75 18.7502 37.5002 56.2500
Algoritmos iterativos por bloques
Iteracin por bloques fila
Para j = 1, 2, , m-1, resolver el sistema



Iteracin por bloques columna
Mtodo implcito de direcciones alternadas
( ) + + = +
=

`

+ +

o o o
2
1
2 2
1 1 1
1
2 2
1 2
u u u u u
i n
i j
k
i j
k
i j
k
i j
k
i j
k
,
( )
,
( )
,
( )
,
( )
,
( )
, , ...,
Mtodo de Direcciones Alternadas.
Iteraciones: 5
Operaciones en coma flotante: 1468
y = 0.25 y = 0. 5 y = 0.75
x = 0.25 6.2490 12.4991 18.7497
x = 0.5 12.4989 24.9990 37.4996
x = 0.75 18.7495 37.4995 56.2498
Errores mximos.
Mtodo Iteraciones Operaciones Error mximo
Jacobi 8 1142 0.0061
GaussSeidel 12 1378 0.0053
Sobrerrelajacin e = 1.2
8 1802 0.0014
Direcciones alternadas 5 1468 0.0011
Solucin:
u(x,y) = x y
y = 0.25 y = 0. 5 y = 0.75
x = 0.25 6.2500 12.5000 18.7500
x = 0.5 12.5000 25.0000 37.5000
x = 0.75 18.7500 37.5000 56.2500
F I N

You might also like