Métodos de Diferencias Finitas para
Ecuaciones en Derivadas Parciales
Métodos de Diferencias Finitas para
Ecuaciones en Derivadas Parciales
Ecuaciones en Derivadas ParcialesEcuaciones en Derivadas Parciales
IntroducciónIntroducción
Diferencias finitasDiferencias finitas
Convergencia y estabilidadConvergencia y estabilidad
Ecuaciones hiperbólicas: ecuación de OndasEcuaciones hiperbólicas: ecuación de Ondas
Ecuaciones parabólicas: ecuación del CalorEcuaciones parabólicas: ecuación del Calor
Ecuaciones elípticas: ecuación de LaplaceEcuaciones elípticas: ecuación de Laplace
IntroducciónIntroducción
EDP de orden 2, lineales de coeficientes EDP de orden 2, lineales de coeficientes constantes.constantes.
Auxx+Buxy+Cuyy+Dux+Euy+Fu=G
Ecuación de Ondas utt c2uxx = 0
Ecuación del Calor ut cuxx = 0, c>0
Ecuación de Laplace uxx uyy = 0
Condiciones iniciales y de contornoCondiciones iniciales y de contorno
x
Diferencias finitasDiferencias finitas
Discretización:Discretización: EDP EDFEDP EDF
Métodos explícitosMétodos explícitos Sencillos Inestables
Métodos implícitosMétodos implícitos Más complejos Estables
h
xi 1 xi i+1
yj+1
yj
yj 1
k
i,ju
Diferencias primerasDiferencias primeras Hacia adelanteHacia adelante
ErrorError
Hacia atrásHacia atrás
u x yu x h y u x y
h
u u
hx i j
i j i j i j i j( , )
( , ) ( , ) , ,
1
u x yu x y u x h y
h
u u
hx i j
i j i j i j i j( , )
( , ) ( , ) , ,
1
u x yu u
h
hu x h yx i j
i j i j
xx i j( , ) ( , ),, ,
1
20 1
Diferencias primeras (cont.)Diferencias primeras (cont.) Diferencias simétricasDiferencias simétricas
ErrorError
u x yu x h y u x h y
h
u u
hx i j
i j i j i j i j( , )
( , ) ( , ) , ,
2 21 1
u x yu x h y u x h y
h
hu y
x h x h
x xxx( , )( , ) ( , )
( , ),
] , [
2 6
2
Diferencias segundasDiferencias segundas
Diferencias simétricasDiferencias simétricas
ErrorError
u x yu x h y u x y
h
u u u
hxx i j
x i j x i j i j i j i j( , )
( , ) ( , ) , , ,
1 1
2
2
u x yu x h y u x y u x h y
k
hu y
x h x h
xx xxxx( , )( , ) ( , ) ( , )
( , )
] , [
2
122
2
Convergencia y estabilidadConvergencia y estabilidad
EDPEDP F(x,y,u)=0 Solución: Solución:
EDFEDF Gi,j(h,k,u)=0, para cada (i,j)
ConvergenciaConvergencia
ConsistenciaConsistencia
Estabilidad:Estabilidad: Control del error de redondeo
Consistencia + Estabilidad ConvergenciaConsistencia + Estabilidad Convergencia
~( , )u x y
( , ),u x yh k i j
( , ) ( , ), ,u x y u x yh k i j h k i j 0
G h k ui j h k, ,( , , ~) 0 0
Ecuaciones hiperbólicasEcuaciones hiperbólicas Ecuación de Ecuación de
OndasOndas Condiciones Condiciones
inicialesiniciales CondicionesCondiciones
de contornode contorno Ecuación en diferencias finitasEcuación en diferencias finitas
utt = c²uxx , < x < L, t > 0
u(x, 0) = f(x) ut(x, 0) = g(x)
u(0,t) = l(t) u(L,t) = r(t)
u u u
kc
u u u
hi j i j i j i j i j i j, , , , , ,
1 1
22 1 1
2
2 2
Ec. de Ondas: Método explícitoEc. de Ondas: Método explícito Condiciones inicialesCondiciones iniciales
ui,0 = fi yy ui,1 ui,1 = 2kgi
Paso 1ºPaso 1º
ui,1 = 2 (fi1+fi+1)/2 + (12)fi + kgi
Pasos siguientesPasos siguientes
ui,j+1 = 2(ui+1,j + ui1,j) +2(1 2)ui,j ui,j1
ConvergenciaConvergencia 1
Ecuación de ondas. Método explícito. EjemploEcuación de ondas. Método explícito. Ejemplo utt = c²uxx , < x < L, t > 0
c = 1, L=T=4, nx=4, nt=8,
u(x, 0) = 2|x2| ut(x, 0) = 0
u(0,t) = 0 u(L,t) = 0
Condición de convergencia :Condición de convergencia :
Instante t = 0:Instante t = 0:
u0,0 = f(x0) = 2 |x0 2| = 2 |0 2| = 0 = f(x4)
u1,0 = f(x1) = 2 |x1 2| = 2 |1 2| = 1 = f(x3)
u2,0 = f(x2) = 2 |x2 2| = 2 |2 2| = 2
121
15.01
hkc
Instante t=1:Instante t=1:
ui,1 = a2·(ui-1,0+ui+1,0)/2 + (1 a2)·ui,0 + k·g(xi)
dondedonde a2 = 1/4, 1 a2 = 3/4:
u1,1 = (1/4)(u0,0 + u2,0)/2 + (3/4)u1,0 =
(1/4)(0 + 2)/2 + (3/4)1 = 1 = u3,1
u2,1 = (1/4)(u1,0 + u3,0)/2 + (3/4)u2,0 =
(1/4)(1 + 1)/2 + (3/4)2 = 7/4
Aplicando la fórmula genéricaAplicando la fórmula genérica
ui,j+1 = a2·(ui-1,j + ui+1,j) + 2·(1 a2)·ui,j ui,j1
con lo que, paracon lo que, para t = 1 obtenemos:obtenemos:
u1,2 = (1/4)(u0,1 + u2,1) + (3/2)u1,1 u1,0
= (1/4)(0 + 7/4) + (3/2)1 1 = 15/16
= u3,2
u2,2 = (1/4)(u1,1 + u3,1) + (3/2)u2,1 u2,0
= (1/4)(1 + 1) + (3/2)(7/4) 2 = 9/8
Procediendo análogamenteProcediendo análogamente
x = 0 x = 1 x = 2 x = 3 x = 4
t = 0 0 1.0000 2.0000 1.0000 0t = 0.5 0 1.0000 1.7500 1.0000 0t = 1 0 0.9375 1.1250 0.9375 0t = 1.5 0 0.6875 0.4063 0.6875 0t = 2 0 0.1953 -0.1719 0.1953 0t = 2.5 0 -0.4375 -0.5664 -0.4375 0t = 3 0 -0.9932 -0.8965 -0.9932 0t = 3.5 0 -1.2764 -1.2749 -1.2764 0t = 4 0 -1.2401 -1.6541 -1.2401 0
Ec. de Ondas: Método implícito Ec. de Ondas: Método implícito IdeaIdea
ui,j+1 2ui,j + ui,j1 = 2 [(ui+1,j+1 2ui,j+1 + ui1,j+1)
+ (ui+1,j1 2ui,j1 + ui1,j1)]/2
PasosPasos
(1+2)ui,j+1 2(ui+1,j+1 + ui1,j+1)/2 =
2ui,j + 2(ui+1,j1 + ui1,j1)/2 (1+2)ui,j1
Convergencia Convergencia para todo
Algoritmo del método implícitoAlgoritmo del método implícito Truco ecuación implícitaTruco ecuación implícita
2( ui1,j1 ui1,j+1)/4
+ (1 + 2)(ui,j1 ui,j+1)/2
2(ui+1,j1 + ui+1,j+1)/4 = ui,j .
SistemaSistema Aw = v, v = (u1,j,u2,j,...,unx1,j)'
tridiagonal tridiagonal ui,j+1 = wi ui,j1
Factorización LUFactorización LU Lz = vUw = z
Método implícito. Método implícito.
Resolución del sistemaResolución del sistema
SustituciónSustitución
Factorización LUFactorización LU
1
1
0
0
47
1
1
1
85
161
161
85
161
161
85
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
100
10.010
01.01
8661.00625.00
061875.00625.0
00625.0
UL
x = 0 x = 1 x = 2 x = 3 x = 4t = 0 0 1.0000 2.0000 1.0000 0t = 0.5 0 1.0000 1.7500 1.0000 0t = 1 0 0.9184 1.1837 0.9184 0t = 1.5 0 0.6926 0.4824 0.6926 0t = 2 0 0.2912 0.1699 0.2912 0t = 2.5 0 0.2449 0.6647 0.2449 0t = 3 0 0.7996 0.9953 0.7996 0t = 3.5 0 1.2231 1.2214 1.2231 0t = 4 0 1.3966 1.3981 1.3966 0
Ecuaciones parabólicasEcuaciones parabólicas Ecuación Ecuación ut = cuxx, 0 < x < L, t > 0
del Calordel Calor Condición Condición u(x, 0) = f(x)
inicialinicial Condiciones Condiciones u(0, t) =T0 u(L, t) = TL
de contornode contorno Ecuación en diferenciasEcuación en diferencias
u u
kc
u u u
hi j i j i j i j i j, , , , ,
1 1 1
2
2
Ec. del Calor: Método explícitoEc. del Calor: Método explícito Condición inicialCondición inicial
ui,0 = f(xi)
Condiciones de contornoCondiciones de contorno
u0,j = T0 unx,t = TL para j>0
Pasos siguientesPasos siguientes
ui,j+1 = (ui+1,j+ui1,j) +(12)ui,j
ConvergenciaConvergencia 1/2 Óptimo = 1/6
Ecuación del Calor. Método explícito. EjemploEcuación del Calor. Método explícito. Ejemplo Hallar la temperatura para Hallar la temperatura para t = 0.3 de una barra de de una barra de
1m cuyos extremos se mantienen a cuyos extremos se mantienen a 20ºC y a y a 40ºC. . La temperatura inicial de la barra es de La temperatura inicial de la barra es de 100ºC y el y el coeficiente coeficiente c = 0.1. Tomar . Tomar x = 0.2 y y t = 0.1. . Justificar la aplicabilidad del método explícito.Justificar la aplicabilidad del método explícito.
21
41
04.01.01.0
2 hkc
Ajuste de las condiciones iniciales y de contorno:Ajuste de las condiciones iniciales y de contorno:u0,0 = 60, u1,0 = u2,0 = u3,0 = u4,0 = 100,
u5,0 = 70
Instante t = 0.1Instante t = 0.1u1,1 = (u0,0 + u2,0)/4 + u1,0/2
= (60+100)/4 + 100/2 = 90u2,1 = u3,1 = 100u4,1 = (u3,0 + u5,0)/4 + u4,0/2
= (100+70)/4 + 100/2 = 92.5
Instante t = 0.2 :Instante t = 0.2 :u1,2 = 75 u2,2 = 97.5
u3,2 = 98.125 u4,2 = 81.25
Instante t = 0.3:Instante t = 0.3:
u1,3 = 66.875 u2,3 = 92.0313u3,3 = 93.75 u4,3 = 75.1563
Ec. del Calor: Método implícitoEc. del Calor: Método implícito Idea: Idea: Diferencias hacia atrás
PasosPasos
(1)ui,j (ui1,j + ui+1,j) = ui,j1
ConvergenciaConvergencia
para todo
u u
kc
u u u
hi j i j i j i j i j, , , , ,
1 1 1
2
2
Ecuación del Calor. Método implícitoEcuación del Calor. Método implícito
Se verifica la condición de convergencia :Se verifica la condición de convergencia : = 1/4 < 1/2
Diagonal principal: Diagonal principal: 1 + 2 = 3/2, ,
Diagonales contiguas Diagonales contiguas = 1/4.. Para Para t = 0.1::
0,50,4
0,3
0,2
0,00,1
1,4
1,3
1,2
1,1
23
41
41
23
41
41
23
41
41
23
uu
u
u
uu
u
u
u
u
Valores obtenidos por este método:Valores obtenidos por este método:
x = 0.2 x = 0. 4 x = 0.2 x = 0. 4 x = 0.6 x = 0.8 x = 0.6 x = 0.8t = 0.1t = 0.1 86.2237 97.342386.2237 97.3423 97.8301 97.8301 89.638489.6384t = 0.2t = 0.2 76.3776 93.370776.3776 93.3707 94.4771 94.4771 82.171882.1718t = 0.3t = 0.3 69.0598 88.848769.0598 88.8487 90.5494 90.5494 76.539476.5394
Método de Crank-NicholsonMétodo de Crank-Nicholson Idea: Idea: media de diferencias centrales
ui,j+1 ui,j = [(ui+1,j+1 2ui,j+1 + ui1,j+1) +
(ui+1,j 2ui,j + ui1,j)] /2
PasosPasos
2(1+)ui,j+1 (ui+1,j+1 + ui1,j+1) =
2(1)ui,j + (ui+1,j + ui1,j)
Convergencia Convergencia para todo
Ecuación del Calor. Método de Crank-NicholsonEcuación del Calor. Método de Crank-Nicholson
Matriz del sistema:Matriz del sistema:
Término independiente del primer paso:Término independiente del primer paso:
70100
100100
100100
10060
41
100
100
100
100
23
25
41
41
25
41
41
25
41
41
25
Valores obtenidos por Crank-Nicholson:Valores obtenidos por Crank-Nicholson:
x = 0.2 x = 0.4x = 0.2 x = 0.4 x = 0.6 x = 0.8 x = 0.6 x = 0.8
t = 0.1t = 0.1 87.8683 98.682687.8683 98.6826 98.9578 98.9578 90.8958 90.8958t = 0.2t = 0.2 76.0999 95.106976.0999 95.1069 96.0470 96.0470 82.0380 82.0380t = 0.3t = 0.3 68.2003 90.2963 91.974868.2003 90.2963 91.9748 76.0250 76.0250
Ecuaciones elípticasEcuaciones elípticas Ecuación de LaplaceEcuación de Laplace
uxx + uyy = 0, 0 < x < a, 0 < y <b
Condiciones de contornoCondiciones de contorno
u(x,0), u(x,b), u(0,y), u(a,y)
DiscretizaciónDiscretización
u u u
h
u u u
ki j i j i j i j i j i j
1 1
2
1 1
2
2 20
, , , , , ,
Ecuación de LaplaceEcuación de Laplace Ecuación en diferencias: Ecuación en diferencias: =k/h=k/h
2(ui-1,j + ui+1,j) + ui,j-1 + ui,j+1 2(2+1)ui,j = 0
Matriz del Matriz del sistema:sistema: grande , grande , dispersa dispersa
Caso h = k : Caso h = k : ui-1,j + ui+1,j + ui,j-1 + ui,j+1 = 4ui,j
Ec. de Laplace: Métodos iterativosEc. de Laplace: Métodos iterativos Método de JacobiMétodo de Jacobi
Método de Gauss-SeidelMétodo de Gauss-Seidel
Criterio de paradaCriterio de parada max u ui j
i jk
i jk
,,
( ),
( ) 1
u u u u ui jk
i jk
i jk
i jk
i jk
,( )
,( )
,( )
,( )
,( )
2
11
11
11
11 22 2
u u u u ui jk
i jk
i jk
i jk
i jk
,( )
,( )
,( )
,( )
,( )
21 1
11 1
1 22 2
Método de SobrerrelajaciónMétodo de Sobrerrelajación Idea: Idea: ponderar el desplazamiento de Gauss-Seidel PasosPasos
Si = 1 coincide con Gauss-Seidel
( )
,( )
,( )
,( )
,( )
,( )
,( )
,( )
,( )
u u u u u
u u u
i jk
i jk
i jk
i jk
i jk
i jk
i jk
i jk
21 1
11 1
1 2
1
2 2
1
Ecuación de Laplace. EjemploEcuación de Laplace. Ejemplo
uxx+ uyy=0, < x < 1
< 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:Ajuste de las condiciones de contorno:11 11 25)0(
, ,...,n-j,...,m- iu ji
Método de Jacobi.Método de Jacobi.
Iteraciones: Iteraciones: 8 Operaciones en coma flotante: Operaciones en coma flotante: 1142
y = 0.25 y = 0. 5 y = 0.75x = 0.25 6.2561 12.5031 18.7500x = 0.5 12.5031 25.0000 37.4969x = 0.75 18.7500 37.4969 56.2439
Método de Gauss-Seidel.Método de Gauss-Seidel.
Iteraciones: Iteraciones: 11 Operaciones en coma flotante:Operaciones en coma flotante: 1378
y = 0.25 y = 0. 5 y = 0.75x = 0.25 6.2447 12.4947 18.7473x = 0.5 12.4947 24.9947 37.4973x = 0.75 18.7473 37.4973 56.2487
Método de Sobrerrelajación.Método de Sobrerrelajación.
Factor de relajación: Factor de relajación: = 1.2 Iteraciones: Iteraciones: 8 Operaciones en coma flotante: Operaciones en coma flotante: 1802
y = 0.25 y = 0. 5 y = 0.75x = 0.25 6.2514 12.5008 18.7502x = 0.5 12.5008 25.0003 37.5002x = 0.75 18.7502 37.5002 56.2500
Algoritmos iterativos por bloquesAlgoritmos iterativos por bloques Iteración por bloques filaIteración por bloques fila
Para j = 1, 2, … , m-1, resolver el sistema
Iteración por bloques columnaIteración por bloques columna Método implícito de direcciones alternadasMétodo implícito de direcciones alternadas
21
2 21 1 1
12 2
1 2
u u u u u
i ni jk
i jk
i jk
i jk
i jk
,( )
,( )
,( )
,( )
,( )
, , ...,
Método de Direcciones Alternadas.Método de Direcciones Alternadas.
Iteraciones: Iteraciones: 5 Operaciones en coma flotante: Operaciones en coma flotante: 1468
y = 0.25 y = 0. 5 y = 0.75x = 0.25 6.2490 12.4991 18.7497x = 0.5 12.4989 24.9990 37.4996x = 0.75 18.7495 37.4995 56.2498
Errores máximos.Errores máximos.
Método Iteraciones Operaciones Error máximoJacobi 8 1142 0.0061Gauss Seidel 12 1378 0.0053Sobrerrelajación = 1.2 8 1802 0.0014Direcciones alternadas 5 1468 0.0011
Solución: Solución: u(x,y) = x·y
y = 0.25 y = 0. 5 y = 0.75x = 0.25 6.2500 12.5000 18.7500x = 0.5 12.5000 25.0000 37.5000x = 0.75 18.7500 37.5000 56.2500
F I NF I N