Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales

Post on 26-Oct-2014

136 views 2 download

Transcript of 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

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