Está en la página 1de 41

Mtodos de Diferencias Finitas

para
Ecuaciones en Derivadas Parciales
Mtodos de Diferencias Finitas
para
Ecuaciones en Derivadas Parciales
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 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 Diferencias finitas
Discretizacin: EDP EDF
Mtodos explcitos
Sencillos
Inestables
Mtodos implcitos
Ms complejos
Estables
h
x
i1
x
i i+1
y
j+1
y
j
y
j1
k
i,j
u
Diferencias primeras 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
Diferencias primeras (cont.) 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
( , )
( , ) ( , )
( , ),
] , [
=
+

+
2 6
2

Diferencias segundas 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
( , )
( , ) ( , ) ( , )
( , )
] , [
=
+ +

+
2
12
2
2

Convergencia y estabilidad 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 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 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
=
2
(f
i1
+f
i+1
)/2 + (1
2
)f
i
+ kg
i
Pasos siguientes
u
i,j+1
=
2
(u
i+1,j
+ u
i1,j
) +2(1
2
)u
i,j
u
i,j1
Convergencia 1
Ecuacin de ondas. Mtodo explcito.
Ejemplo
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
=

= =
h
k c

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 Ec. de Ondas: Mtodo implcito
Idea
u
i,j+1
2u
i,j
+ u
i,j1
=
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+
2
)u
i,j+1

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

2
( u
i1,j1
+ u
i1,j+1
)/4
+ (1 +
2
)(u
i,j1
+ u
i,j+1
)/2

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. 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 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 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
= (u
i+1,j
+u
i1,j
) +(12)u
i,j
Convergencia 1/2 ptimo = 1/6
Ecuacin del Calor. Mtodo explcito.
Ejemplo
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 x = 0.2
y t = 0.1. Justificar la aplicabilidad del mtodo
explcito.

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

= =
h
k c

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 Ec. del Calor: Mtodo implcito
Idea: Diferencias hacia atrs
Pasos
(1+2)u
i,j
(u
i1,j
+ u
i+1,j
) = u
i,j1
Convergencia
para todo
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 Ecuacin del Calor. Mtodo implcito
Se verifica la condicin de convergencia :
= 1/4 < 1/2
Diagonal principal: 1 + 2 = 3/2,
Diagonales contiguas = 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

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 Mtodo de Crank-Nicholson
Idea: media de diferencias centrales
u
i,j+1
u
i,j
= [(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+)u
i,j+1
(u
i+1,j+1
+ u
i1,j+1
) =
2(1)u
i,j
+ (u
i+1,j
+ u
i1,j
)
Convergencia para todo
Ecuacin del Calor. Mtodo de
Crank-Nicholson
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 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 de Laplace
Ecuacin en diferencias: =k/h

2
(u
i-1,j
+ u
i+1,j
) + u
i,j-1
+ u
i,j+1
2(
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 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

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


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
,
( )
,
( )
,
( )
,
( )
,
( )
= + + + +
+


2
1 1
1
1 1
1 2
2 2
Mtodo de Sobrerrelajacin Mtodo de Sobrerrelajacin
Idea:
ponderar el desplazamiento de Gauss-Seidel
Pasos
Si = 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
= + + + +
= +
+



2
1 1
1
1 1
1 2
1
2 2
1
Ecuacin de Laplace.
Ejemplo
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
= 0.01
Ajuste de las condiciones de contorno:
1 1 1 1 25
) 0 (
,
,...,n- j ,...,m- i u
j i
= = =
Mtodo de Jacobi. 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. 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. Mtodo de Sobrerrelajacin.
Factor de relajacin: = 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 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
( ) + + = +
=

+ +


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. 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. Errores mximos.
Mtodo Iteraciones Operaciones Error mximo
Jacobi 8 1142 0.0061
Gauss Seidel
12 1378 0.0053
Sobrerrelajacin = 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 F I N