métodos de diferencias finitas para ecuaciones en derivadas parciales
TRANSCRIPT
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