580 likes | 1.73k Views
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
E N D
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 • Sencillos • Inestables • Métodos implícitos • Más complejos • Estables h ¬ ® y j+1 k y j u i,j y j 1 - x x x i 1 i i+1 -
Diferencias primeras • Hacia adelante • Error • Hacia atrás
Diferencias primeras (cont.) • Diferencias simétricas • Error
Diferencias segundas • Diferencias simétricas • Error
Convergencia y estabilidad • EDP F(x,y,u)=0 Solución: • EDF Gi,j(h,k,u)=0, para cada (i,j) • Convergencia • Consistencia • Estabilidad: Control del error de redondeo • Consistencia + Estabilidad Convergencia
Ecuaciones hiperbólicas utt = c²uxx , 0 < x < L, t > 0 u(x, 0) = f(x) ut(x, 0) = g(x) u(0,t) = l(t) u(L,t) = r(t) • Ecuación de Ondas • Condiciones iniciales • Condicionesde contorno • Ecuación en diferencias finitas
Ec. de Ondas: Método explícito • Condiciones iniciales ui,0 = fiy ui,1- ui,-1 = 2kgi • Paso 1º ui,1 = a2 (fi-1+fi+1)/2 + (1-a2)fi + kgi • Pasos siguientes ui,j+1 = a2(ui+1,j + ui-1,j) +2(1 -a2)ui,j- ui,j-1 • Convergenciaa£ 1
Ecuación de ondas. Método explícito. Ejemplo utt = c²uxx , 0 < x < L, t > 0 c = 1, L=T=4, nx=4, nt=8, u(x, 0) = 2|x-2| ut(x, 0) = 0 u(0,t) = 0 u(L,t) = 0 • Condición de convergencia : • 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
Instante t=1:ui,1 = a2·(ui-1,0+ui+1,0)/2 + (1 a2)·ui,0 + k·g(xi)dondea2 = 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éricaui,j+1 = a2·(ui-1,j + ui+1,j) + 2·(1 a2)·ui,j ui,j1con lo que, para t = 1 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,2u2,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álogamente x = 0 x = 1 x = 2 x = 3 x = 4t = 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: Método implícito • Idea ui,j+1- 2ui,j + ui,j-1 = a2[(ui+1,j+1- 2ui,j+1 + ui-1,j+1) + (ui+1,j-1- 2ui,j-1 + ui-1,j-1)]/2 • Pasos (1+a2)ui,j+1-a2(ui+1,j+1 + ui-1,j+1)/2 = 2ui,j + a2(ui+1,j-1 + ui-1,j-1)/2 - (1+a2)ui,j-1 • Convergencia para todo a
Algoritmo del método implícito • Truco ecuación implícita -a2( ui-1,j-1+ ui-1,j+1)/4 + (1 + a2)(ui,j-1+ ui,j+1)/2 -a2(ui+1,j-1 + ui+1,j+1)/4 = ui,j . • Sistema Aw = v, v = (u1,j,u2,j,...,unx-1,j)'tridiagonal ui,j+1 = wi- ui,j-1 • Factorización LU Lz = v Uw = z
Método implícito. • Resolución del sistema • Sustitución • Factorización LU
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 parabólicas • Ecuación ut = cuxx, 0 < x < L, t > 0 del Calor • Condición u(x, 0) = f(x)inicial • Condiciones u(0, t) =T0 u(L, t) = TLde contorno • Ecuación en diferencias
Ec. del Calor: Método explícito • Condición inicial ui,0 = f(xi) • Condiciones de contorno u0,j = T0 unx,t = TL para j>0 • Pasos siguientes ui,j+1 = a(ui+1,j+ui-1,j) +(1-2a)ui,j • Convergencia a£ 1/2 Óptimo a = 1/6
Ecuación del Calor. Método explícito. Ejemplo • Hallar la temperatura para t = 0.3 de una barra de 1m cuyos extremos se mantienen a 20ºC y a 40ºC. La temperatura inicial de la barra es de 100ºC y el coeficiente c = 0.1. Tomar Dx = 0.2 y Dt = 0.1. Justificar la aplicabilidad del método explícito.
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.1u1,1 = (u0,0 + u2,0)/4 + u1,0/2 = (60+100)/4 + 100/2 = 90 u2,1 = u3,1 = 100 u4,1 = (u3,0 + u5,0)/4 + u4,0/2 = (100+70)/4 + 100/2 = 92.5
Instante t = 0.2 :u1,2 = 75 u2,2 = 97.5 u3,2 = 98.125 u4,2 = 81.25 • Instante t = 0.3: u1,3 = 66.875 u2,3 = 92.0313 u3,3 = 93.75 u4,3 = 75.1563
Ec. del Calor: Método implícito • Idea: Diferencias hacia atrás • Pasos (1+2a)ui,j-a(ui-1,j + ui+1,j) = ui,j-1 • Convergencia para todo a
Ecuación del Calor. Método implícito • Se verifica la condición de convergencia : a = 1/4 < 1/2 • Diagonal principal: 1 + 2a = 3/2, Diagonales contiguas a = 1/4. • Para t = 0.1:
Valores obtenidos por este método: 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
Método de Crank-Nicholson • Idea: media de diferencias centrales ui,j+1- ui,j = a[(ui+1,j+1- 2ui,j+1 + ui-1,j+1) + (ui+1,j- 2ui,j + ui-1,j)] /2 • Pasos 2(1+a)ui,j+1-a(ui+1,j+1 + ui-1,j+1) = 2(1-a)ui,j + a(ui+1,j + ui-1,j) • Convergencia para todo a
Ecuación del Calor. Método de Crank-Nicholson • Matriz del sistema: • Término independiente del primer paso:
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 elípticas • Ecuación de Laplace uxx + uyy = 0, 0 < x < a, 0 < y <b • Condiciones de contorno u(x,0), u(x,b), u(0,y), u(a,y) • Discretización
Ecuación de Laplace • Ecuación en diferencias: a=k/h a2(ui-1,j + ui+1,j) + ui,j-1 + ui,j+1- 2(a2+1)ui,j = 0 • Matriz del sistema: grande , dispersa • Caso h = k : ui-1,j + ui+1,j + ui,j-1 + ui,j+1 = 4ui,j
Ec. de Laplace: Métodos iterativos • Método de Jacobi • Método de Gauss-Seidel • Criterio de parada
Método de Sobrerrelajación • Idea: ponderar el desplazamiento de Gauss-Seidel • Pasos • Si w = 1 coincide con Gauss-Seidel
Ecuación de Laplace. Ejemplo uxx+ uyy=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 • e = 0.01 • Ajuste de las condiciones de contorno:
Método de Jacobi. • Iteraciones: 8 • Operaciones en coma flotante: 1142
Método de Gauss-Seidel. • Iteraciones: 11 • Operaciones en coma flotante: 1378
Método de Sobrerrelajación. • Factor de relajación: w = 1.2 • Iteraciones: 8 • Operaciones en coma flotante: 1802
Algoritmos iterativos por bloques • Iteración por bloques fila Para j = 1, 2, … , m-1, resolver el sistema • Iteración por bloques columna • Método implícito de direcciones alternadas
Método de Direcciones Alternadas. • Iteraciones: 5 • Operaciones en coma flotante: 1468
Errores máximos. • Solución: u(x,y) = x·y