Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales

41
Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales

Transcript of Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales

Page 1: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

Métodos de Diferencias Finitas para

Ecuaciones en Derivadas Parciales

Métodos de Diferencias Finitas para

Ecuaciones en Derivadas Parciales

Page 2: 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

Page 3: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 4: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 5: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 6: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 7: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 8: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 9: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 10: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 11: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 12: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 13: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 14: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 15: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 16: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 17: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 18: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 19: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 20: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 21: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 22: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 23: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 24: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 25: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 26: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 27: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 28: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 29: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 30: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

, , , , , ,

Page 31: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 32: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 33: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 34: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 35: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 36: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 37: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 38: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

,( )

,( )

,( )

,( )

,( )

, , ...,

Page 39: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 40: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

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

Page 41: Métodos de Diferencias Finitas  para  Ecuaciones en Derivadas Parciales

F I NF I N