Métodos de Diferencias Finitas

para
Ecuaciones en Derivadas Parciales

Ecuaciones en Derivadas Parciales
 Introducción
 Diferencias finitas
 Convergencia y estabilidad
 Ecuaciones hiperbólicas: ecuación de Ondas
 Ecuaciones parabólicas: ecuación del Calor
 Ecuaciones elípticas: ecuación de Laplace

Introducción
 EDP de orden 2, lineales de coeficientes
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 contorno

Diferencias finitas

 Discretización: EDP EDF
 Métodos explícitos h
 Sencillos yj+1
k
 Inestables yj
u i,j
 Métodos implícitos yj1
 Más complejos
 Estables
x i1 x i x i+1

y j ). y j ) u i 1. j u x (xi . 0  1 h 2  Hacia atrás u( x i . j h u x (xi . y j )   h h . y j ) u i . j  u i . y j )   u xx ( x i  h. j u x (xi . y j )   h h  Error u i 1. Diferencias primeras  Hacia adelante u( x i  h. y j )  u( x i  h. j  u i 1. j  u i . y j )  u( x i .

2h 6  ]x  h. y j ) u i 1. j u x (xi .)  Diferencias simétricas u( x i  h. x  h[ . j  u i 1. y j )  u( x i  h. y) h 2 u x ( x. y). y)  u( x  h. y)   u xxx (. y j )   2h 2h  Error u( x  h.Diferencias primeras (cont.

y)  u( x  h. y j )   h h2  Error u( x  h. y)  2 u( x. y)  2  u xxxx (. j  u i 1. j u xx ( x i .Diferencias segundas  Diferencias simétricas u x ( x i  h. y j ) u i 1. x  h[ . j  2 u i . y j )  u x ( x i . y) h 2 u xx ( x. y) k 12  ]x  h.

u)=0 Solución: ~ u ( x.j(h. y j )  Consistencia G i . y j )     h . k . y)  EDF Gi. para cada (i.k.y.k ( x i .k ( x i . ~ u )  h .Convergencia y estabilidad  EDP F(x. y j )  Convergencia u h .k 0 u( x i . j ( h.u)=0.j) u h .k   0 0  Estabilidad: Control del error de redondeo  Consistencia + Estabilidad Convergencia .

j 2 c k h2 .Ecuaciones hiperbólicas  Ecuación de utt = c²uxx . 0) = g(x) iniciales  Condiciones de contorno u(0. j1 u 2 i  1. j  u i 1. j  2 u i . 0) = f(x) ut(x. j  ui .t) = l(t) u(L. t>0 Ondas  Condiciones u(x. j1  2 ui .t) = r(t)  Ecuación en diferencias finitas ui . < x < L.

j1  Convergencia   1 .j) +2(1  2)ui.j + ui1.1 = 2 (fi1+fi+1)/2 + (12)fi + kgi  Pasos siguientes ui.1 = 2kgi  Paso 1º ui. de Ondas: Método explícito  Condiciones iniciales ui.0 = fi y ui.1  ui.j  ui.Ec.j+1 = 2(ui+1.

5 1    1  Instante t = 0: h 1 2 u0.t) = 0  Condición de convergencia : ck 1 0. 0) = 2|x2| ut(x.0 = f(x2) = 2  |x2  2| = 2  |2  2| = 2 . nx=4. Método explícito. L=T=4. < x < L. Ejemplo u = c²u . nt=8.0 = f(x1) = 2  |x1  2| = 2  |1  2| = 1 = f(x3) u2. u(x. t > 0 tt xx c = 1.Ecuación de ondas.0 = f(x0) = 2  |x0  2| = 2  |0  2| = 0 = f(x4) u1.t) = 0 u(L. 0) = 0 u(0.

0 + u2.0 = (1/4)(1 + 1)/2 + (3/4)2 = 7/4 .1 u2.1 = (1/4)(u0.0 = (1/4)(0 + 2)/2 + (3/4)1 = 1 = u3. Instante t=1: ui.0)/2 + (3/4)u2.0+ui+1.1 = a2·(ui-1.0)/2 + (3/4)u1.0 + k·g(xi) donde a2 = 1/4.0 + u3. 1  a2 = 3/4: u1.1 = (1/4)(u1.0)/2 + (1  a2)·ui.

1 + u2.1  u1.j) + 2·(1  a2)·ui.1) + (3/2)u1.2 = (1/4)(u0.Aplicando la fórmula genérica ui.2 u2.1 + u3.j  ui. para t = 1 obtenemos: u1.0 = (1/4)(1 + 1) + (3/2)(7/4)  2 = 9/8 .1) + (3/2)u2.j + ui+1.0 = (1/4)(0 + 7/4) + (3/2)1  1 = 15/16 = u3.j1 con lo que.1  u2.2 = (1/4)(u1.j+1 = a2·(ui-1.

4375 0 t=3 0 -0.5 0 0.0000 1.0000 1.5664 -0.5 0 1.0000 0 t=1 0 0.9375 1.8965 -0.9932 -0.6541 -1.Procediendo análogamente x=0 x=1 x=2 x=3 x=4 t=0 0 1.1719 0.6875 0 t=2 0 0.2764 -1.1250 0.6875 0.2401 0 .4375 -0.9375 0 t = 1.0000 2.5 0 -0.7500 1.4063 0.1953 0 t = 2.1953 -0.2764 0 t=4 0 -1.2749 -1.5 0 -1.9932 0 t = 3.2401 -1.0000 0 t = 0.

Ec.j1  Convergencia para todo  .j+1  2ui.j+1)/2 = 2ui.j+1  2ui.j+1) + (ui+1.j + 2(ui+1.j + ui.j1)]/2 Pasos (1+2)ui.j1  2ui.j+1 + ui1.j1 + ui1.j1 + ui1.j1 = 2 [(ui+1.j1)/2  (1+2)ui. de Ondas: Método implícito  Idea ui.j+1  2(ui+1.j+1 + ui1.

j+1)/4 + (1 + 2)(ui.j .j1  Factorización LU Lz = v Uw = z .j+1 = wi  ui.Algoritmo del método implícito  Truco ecuación implícita  2( ui1..  Sistema Aw = v.j1 + ui+1..j.j)' tridiagonal ui.j+1)/4 = ui. v = (u1.u2.unx1.j1  ui.j...j+1)/2  2(ui+1.j1  ui1.

6186   0 0 1    .625 0 0   1  0.0625 0. 0         Factorización LU  0.1837   u   x   u   1. 0    3.   5 8 1 16 0   x1   1      16   x1    4  1 1  16 5 8 7  0 1 5   x   1  Resolución del sistema  16 8   1    Sustitución  u1.9184   1   0.9184   1   0.10   0  0. 0   1. 2   x1   u1.1837    2    1.9184               u2.61875 0  U  0 1  0. 2    x1    u2.0625 0.Método implícito.1 0      L    0. 2   1   3.9184   3 .

1837 0.7996 0.5 0 1.7500 1.6926 0 t=2 0 0.4824 0.0000 1.7996 0 t = 3.1699 0.3966 0 .5 0 1.9953 0.2214 1.0000 1.9184 0 t = 1.0000 0 t=1 0 0.3966 1.5 0 0.9184 1.2912 0.2912 0 t = 2.2231 0 t=4 0 1.0000 2.2231 1.0000 0 t = 0.2449 0 t=3 0 0.3981 1.5 0 0.6647 0.2449 0. x=0 x=1 x=2 x=3 x=4 t=0 0 1.6926 0.

t > 0 del Calor  Condición u(x. t) = TL de contorno  Ecuación en diferencias ui .Ecuaciones parabólicas  Ecuación ut = cuxx. t) =T0 u(L. 0 < x < L. j  2 u i . j  u i 1. j u i  1. j1  ui . 0) = f(x) inicial  Condiciones u(0. j c k h2 .

j) +(12)ui.Ec.j  Convergencia   1/2 Óptimo  = 1/6 .j = T0 unx.t = TL para j>0  Pasos siguientes ui. del Calor: Método explícito  Condición inicial ui.0 = f(xi)  Condiciones de contorno u0.j+ui1.j+1 = (ui+1.

Ejemplo  Hallar la temperatura para t = 0.1 1 1  2    h 0.Ecuación del Calor.  ck 0.1  0.1.1.3 de una barra de 1m cuyos extremos se mantienen a 20ºC y a 40ºC. Método explícito. Tomar x = 0.04 4 2 .2 y t = 0. Justificar la aplicabilidad del método explícito. La temperatura inicial de la barra es de 100ºC y el coeficiente c = 0.

 Ajuste de las condiciones iniciales y de contorno: u0.0 = u2.0 = 60.1 = (u3.5 .1 = u3.1 u1.0)/4 + u4.0)/4 + u1. u5.1 = 100 u4.0 + u5.0/2 = (100+70)/4 + 100/2 = 92.0 + u2.0 = u3.0 = 70  Instante t = 0. u1.0 = 100.1 = (u0.0 = u4.0/2 = (60+100)/4 + 100/2 = 90 u2.

2 = 81.2 : u1.125 u4.5 u3.3 = 93.2 = 75 u2.2 = 97. Instante t = 0.3 = 66.1563 .75 u4.0313 u3.875 u2.25  Instante t = 0.3: u1.3 = 75.2 = 98.3 = 92.

del Calor: Método implícito  Idea: Diferencias hacia atrás ui .j + ui+1. j  ui 1.j) = ui.j  (ui1. j c 2 k h  Pasos (1)ui. j1 u i 1. j  2 u i .Ec. j  ui .j1  Convergencia para todo  .

Método implícito  Se verifica la condición de convergencia :  = 1/4 < 1/2  Diagonal principal: 1 + 2 = 3/2. 0  2       14 3   u   u  u   2   4 .1   u1.1   u 2. 0 5.1 1 u 3. 0         14 3 2  14   u2. 0   u0.1   4. Diagonales contiguas  = 1/4.1: 3  2  14   u1.  Para t = 0. 0  .Ecuación del Calor. 0         14 3  4 u3.

5394 . Valores obtenidos por este método: x = 0.3776 93.0598 88.6384 t = 0.1 86.8 t = 0.3423 97. 4 x = 0.3 69.8487 90.8301 89.2 76.4771 82.2237 97.5494 76.3707 94.6 x = 0.1718 t = 0.2 x = 0.

j+1 + ui1.j  2ui.j+1 + ui1.j+1) + (ui+1.j)] /2  Pasos 2(1+)ui.j + ui1.j =  [(ui+1.j)  Convergencia para todo  .j+1  2ui.j+1) = 2(1)ui.j + (ui+1.Método de Crank-Nicholson  Idea: media de diferencias centrales ui.j+1  (ui+1.j + ui1.j+1  ui.

Método de Crank-Nicholson  Matriz del sistema:  5 2  14      1 4 5 2  1 4    14 5  14   2    del primer Término independiente  5  1 paso:  4 2   100   60  100      3  100  1  100  100    2 100 4 100  100         100   100  70      .Ecuación del Calor.

4 x = 0.0470 82.6826 98.6 x = 0.3 68. Valores obtenidos por Crank-Nicholson: x = 0.0380 t = 0.1 87.2 x = 0.2963 91.9578 90.8958 t = 0.8 t = 0.8683 98.0999 95.0250 .1069 96.2 76.2003 90.9748 76.

j  u i1. j u i . j  2 u i . 0 < x < a. u(0. j1 2  2 0 h k .b).0).Ecuaciones elípticas  Ecuación de Laplace uxx + uyy = 0. u(x. u(a.y). 0 < y <b  Condiciones de contorno u(x. j1  2 u i .y)  Discretización u i 1. j  u i .

j .j + ui.j = 0  Matriz del sistema: grande .j) + ui.j+1 = 4ui.j-1 + ui. dispersa  Caso h = k : ui-1.j+1 2(2+1)ui.j-1 + ui.Ecuación de Laplace  Ecuación en diferencias: =k/h   2(ui-1.j + ui+1.j + ui+1.

1j)  u (i .kj11)   2  2 2   Método de Gauss-Seidel    u (i .kj)1  u (i .kj)  u (i . j  u (i k1. de Laplace: Métodos iterativos  Método de Jacobi    u (i .1j)  u (i .kj11)  u (i .kj11)   2  2 2   Criterio de parada max u (i . j .kj)   2 u (i k1) .1j)  u (i k1.kj1)   i.Ec.kj)   2 u (i k1.

kj)1  u(i . j  ui .kj)   2 u (i k1) .1j)  u (i . j  (k)  Si  = 1 coincide con Gauss-Seidel . j  u (i k1.kj11)   2  2 2  ( k  1) u (k) i. j  (1   ) u i.Método de Sobrerrelajación  Idea: ponderar el desplazamiento de Gauss-Seidel  Pasos    u (i .

j  25 i  1. u(x. 0) = 0 u (x.. 1) = 100x u(0. < x < 1 xx yy < y < 1...01  Ajuste de las condiciones de contorno: u (0) i . Ejemplo u + u =0.n-1 .Ecuación de Laplace. y) = 0 u(1..m-1 j 1. y) = 100y   = 0..... n=4 m=4.

75 18.  Iteraciones: 8  Operaciones en coma flotante: 1142 y = 0.7500 x = 0. 5 y = 0.25 y = 0.5031 18.25 6.Método de Jacobi.2439 .5 12.7500 37.4969 56.4969 x = 0.5031 25.0000 37.75 x = 0.2561 12.

4947 24.25 y = 0.4947 18.  Iteraciones: 11  Operaciones en coma flotante: 1378 y = 0.Método de Gauss-Seidel.7473 37.4973 x = 0.5 12. 5 y = 0.75 x = 0.25 6.2447 12.4973 56.9947 37.7473 x = 0.75 18.2487 .

25 6.5002 56.7502 x = 0.7502 37.2  Iteraciones: 8  Operaciones en coma flotante: 1802 y = 0.25 y = 0.5008 18.5 12.0003 37.75 18. 5 y = 0.2514 12.75 x = 0.5008 25.5002 x = 0.  Factor de relajación:  = 1.2500 .Método de Sobrerrelajación.

resolver el sistema   2 u (i k1) . m-1. . … . 2..kj)1  u (i . Algoritmos iterativos por bloques  Iteración por bloques fila Para j = 1.. j  u (i . 2.kj11)   i  1.. n   Iteración por bloques columna  Método implícito de direcciones alternadas .kj)   2 u (i k1) . j   2  2 2  u (i .

75 x = 0. 5 y = 0.2498 .9990 37.75 18.Método de Direcciones Alternadas.4989 24.7497 x = 0.5 12.  Iteraciones: 5  Operaciones en coma flotante: 1468 y = 0.4995 56.2490 12.25 6.25 y = 0.4991 18.7495 37.4996 x = 0.

0053 Sobrerrelajación  = 1.75 18.75 u(x.25 y = 0.2500 Método Iteraciones Operaciones Error máximo Jacobi 8 1142 0.25 6.5000 56.5000 18. 5 y = 0.  Solución: y = 0.0011 .0000 37.5000 x = 0.y) = x·y x = 0.Errores máximos.7500 37.0014 Direcciones alternadas 5 1468 0.2 8 1802 0.5 12.0061 GaussSeidel 12 1378 0.5000 25.7500 x = 0.2500 12.

FIN .