Está en la página 1de 41

Mtodos de Diferencias Finitas

para
Ecuaciones en Derivadas Parciales

Ecuaciones en Derivadas Parciales

Introduccin

Diferencias finitas

Convergencia y estabilidad

Ecuaciones hiperblicas: ecuacin de Ondas

Ecuaciones parablicas: ecuacin del Calor

Ecuaciones elpticas: ecuacin de Laplace

Introduccin

EDP de orden 2, lineales de coeficientes


constantes.
Auxx+Buxy+Cuyy+Dux+Euy+Fu=G
Ecuacin

de Ondas utt c2uxx = 0

Ecuacin

del Calor ut cuxx = 0, c>0

Ecuacin

de Laplace

uxx uyy = 0

Condiciones iniciales y de contorno

Diferencias finitas

Discretizacin:

Mtodos explcitos
Sencillos
Inestables

Mtodos implcitos
Ms

complejos
Estables

EDP

EDF
h

yj+1

yj

u i,j

yj1
x i1

x i x i+1

Diferencias primeras
Hacia adelante
u x (xi , y j )

u i 1, j u i , j
h

Error
u x (xi , y j )

u( x i h, y j ) u( x i , y j )

u i 1, j u i , j

Hacia atrs
u x (xi , y j )

h
u xx ( x i h, y j ),
2

u( x i , y j ) u( x i h, y j )
h

0 1

u i , j u i 1, j
h

Diferencias primeras (cont.)

Diferencias simtricas
u x (xi , y j )

u( x i h, y j ) u( x i h, y j )
2h

u i 1, j u i 1, j
2h

Error
u( x h, y) u( x h, y) h 2
u x ( x, y)

u xxx (, y),
2h
6
]x h, x h[

Diferencias segundas

Diferencias simtricas
u xx ( x i , y j )

u x ( x i h, y j ) u x ( x i , y j )
h

u i 1, j 2 u i , j u i 1, j
h2

Error
u( x h, y) 2 u( x, y) u( x h, y) h
u xx ( x, y)
u xxxx (, y)
2
k
12
]x h, x h[
2

Convergencia y estabilidad
~
u ( x, y)

EDP

F(x,y,u)=0

EDF

Gi,j(h,k,u)=0, para cada (i,j)

Convergencia

Consistencia

Solucin:

u h ,k ( x i , y j )

u h ,k ( x i , y j )

h ,k 0

u( x i , y j )

G i , j ( h, k , ~
u ) h ,k
0
Control del error de redondeo

Estabilidad:

Consistencia + Estabilidad

Convergencia

Ecuaciones hiperblicas
< x < L,

Ecuacin de
Ondas

utt = cuxx ,

Condiciones
iniciales

u(x, 0) = f(x)

ut(x, 0) = g(x)

Condiciones
de contorno

u(0,t) = l(t)

u(L,t) = r(t)

t>0

Ecuacin en diferencias finitas


ui , j1 2 ui , j ui , j1
u
2 u i , j u i 1, j
2 i 1, j
c
2
k
h2

Ec. de Ondas: Mtodo explcito

Condiciones iniciales
ui,0 = fi

ui,1 ui,1 = 2kgi

Paso 1
ui,1 = 2 (fi1+fi+1)/2 + (12)fi + kgi

Pasos siguientes
ui,j+1 = 2(ui+1,j + ui1,j) +2(1 2)ui,j ui,j1

Convergencia 1

Ecuacin de ondas. Mtodo explcito.


u = cu , < x < L, t > 0
Ejemplo
tt

xx

c = 1, L=T=4,
u(x, 0) = 2|x2|

nx=4, nt=8,
ut(x, 0) = 0

u(0,t) = 0

u(L,t) = 0

Condicin de convergencia :

Instante t = 0:

ck 1 0.5 1

1
h
1
2

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 + kg(xi)

donde 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 frmula genrica


ui,j+1 = a2(ui-1,j + ui+1,j) + 2(1 a2)ui,j ui,j1

con 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,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 anlogamente

t=0
t = 0.5
t=1
t = 1.5
t=2
t = 2.5
t=3
t = 3.5
t=4

x=0
0
0
0
0
0
0
0
0
0

x=1
x=2
1.0000
2.0000
1.0000
1.7500
0.9375
1.1250
0.6875
0.4063
0.1953 -0.1719
-0.4375 -0.5664
-0.9932 -0.8965
-1.2764 -1.2749
-1.2401 -1.6541

x=3
1.0000
1.0000
0.9375
0.6875
0.1953
-0.4375
-0.9932
-1.2764
-1.2401

x=4
0
0
0
0
0
0
0
0
0

Ec. de Ondas: Mtodo implcito

Idea

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
Pasos
(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

para todo

Algoritmo del mtodo implcito

Truco ecuacin implcita

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

Sistema Aw = v,
v = (u1,j,u2,j,...,unx1,j)'
tridiagonal
ui,j+1 = wi ui,j1

Factorizacin LU
Uw = z

Lz = v

Mtodo implcito.

Resolucin del sistema

Sustitucin

1
16

1
16

1
16

0 x1 1

7
1
16 x1 4
1
5 x
8
1

u1, 2 x1 u1, 0 1.9184 1 0.9184

u2, 2 x1 u2, 0 3.1837 2 1.1837


u x u 1.9184 1 0.9184

3 , 2 1 3, 0

Factorizacin LU

0.625
0
0

L 0.0625 0.61875
0

0
0.0625 0.6186

0
1 0.1

U 0
1
0.10
0
0
1

t=0
t = 0.5
t=1
t = 1.5
t=2
t = 2.5
t=3
t = 3.5
t=4

x=0
0
0
0
0
0
0
0
0
0

x=1
1.0000
1.0000
0.9184
0.6926
0.2912
0.2449
0.7996
1.2231
1.3966

x=2
2.0000
1.7500
1.1837
0.4824
0.1699
0.6647
0.9953
1.2214
1.3981

x=3
1.0000
1.0000
0.9184
0.6926
0.2912
0.2449
0.7996
1.2231
1.3966

x=4
0
0
0
0
0
0
0
0
0

Ecuaciones parablicas
Ecuacin
ut = cuxx, 0 < x < L, t > 0
del Calor
Condicin
u(x, 0) = f(x)
inicial
Condiciones
u(0, t) =T0
u(L, t) = TL
de contorno
Ecuacin en diferencias
ui , j1 ui , j
u i 1, j 2 u i , j u i 1, j
c
k
h2

Ec. del Calor: Mtodo explcito

Condicin inicial
ui,0 = f(xi)

Condiciones de contorno
u0,j = T0

unx,t = TL

para j>0

Pasos siguientes
ui,j+1 = (ui+1,j+ui1,j) +(12)ui,j

Convergencia

1/2

ptimo = 1/6

Ecuacin del Calor. Mtodo explcito.


Ejemplo

Hallar la temperatura para t = 0.3 de una barra de


1m cuyos extremos se mantienen a 20C y a 40C.
La temperatura inicial de la barra es de 100C y el
coeficiente c = 0.1. Tomar x = 0.2 y t = 0.1.
Justificar la aplicabilidad del mtodo explcito.

ck 0.1 0.1 1 1
2

h
0.04
4 2

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.1
u1,1 = (u0,0 + u2,0)/4 + u1,0/2

u2,1
u4,1

= (60+100)/4 + 100/2 = 90
= u3,1 = 100
= (u3,0 + u5,0)/4 + u4,0/2
= (100+70)/4 + 100/2 = 92.5

Instante t = 0.2 :
u1,2 = 75
u3,2 = 98.125

u2,2 = 97.5
u4,2 = 81.25

Instante t = 0.3:
u1,3 = 66.875
u3,3 = 93.75

u2,3 = 92.0313
u4,3 = 75.1563

Ec. del Calor: Mtodo implcito

Idea: Diferencias hacia atrs


ui , j ui , j1
u i 1, j 2 u i , j ui 1, j
c
2
k
h

Pasos
(1)ui,j (ui1,j + ui+1,j) = ui,j1

Convergencia
para todo

Ecuacin del Calor. Mtodo implcito


Se verifica la condicin de convergencia :
= 1/4 < 1/2
Diagonal principal: 1 + 2 = 3/2,
Diagonales contiguas = 1/4.
Para t = 0.1: 3
2 14
u1,1 u1, 0 u0, 0

14

14

14
3

14

u 2, 0

u2,1

1
u 3, 0
4 u3,1

u u
3 u
4 ,1
5, 0
2
4, 0

Valores obtenidos por este mtodo:


t = 0.1
t = 0.2
t = 0.3

x = 0.2
86.2237
76.3776
69.0598

x = 0. 4
97.3423
93.3707
88.8487

x = 0.6
97.8301
94.4771
90.5494

x = 0.8
89.6384
82.1718
76.5394

Mtodo de Crank-Nicholson

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

Pasos
2(1+)ui,j+1 (ui+1,j+1 + ui1,j+1) =
2(1)ui,j + (ui+1,j + ui1,j)

Convergencia

para todo

Ecuacin del Calor. Mtodo de


Crank-Nicholson

Matriz del sistema:

14

14

1
2

14

del primer
Trmino independiente
5
1 paso:

4
2

100
60 100

3 100 1 100 100


2 100 4 100 100

100
100 70

Valores obtenidos por Crank-Nicholson:

t = 0.1
t = 0.2
t = 0.3

x = 0.2 x = 0.4
87.8683 98.6826
76.0999 95.1069
68.2003 90.2963

x = 0.6 x = 0.8
98.9578 90.8958
96.0470 82.0380
91.9748 76.0250

Ecuaciones elpticas

Ecuacin de Laplace
uxx + uyy = 0,

0 < y <b

Condiciones de contorno
u(x,0),

0 < x < a,

u(x,b),

Discretizacin
u i 1, j 2 u i , j u i1, j
h

u(0,y),

u(a,y)

u i , j1 2 u i , j u i , j1
k

Ecuacin de Laplace

Ecuacin en diferencias: =k/h

2(ui-1,j + ui+1,j) + ui,j-1 + ui,j+1 2(2+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: Mtodos iterativos

Mtodo de Jacobi

u (i ,kj) 2 u (i k1,1j) u (i k1,1j) u (i ,kj11) u (i ,kj11)

2 2 2

Mtodo de Gauss-Seidel

u (i ,kj) 2 u (i k1) , j u (i k1,1j) u (i ,kj)1 u (i ,kj11)

2 2 2

Criterio de parada

max u (i ,kj) u (i ,kj1)


i, j

Mtodo de Sobrerrelajacin
Idea:
ponderar el desplazamiento de Gauss-Seidel
Pasos

u (i ,kj) 2 u (i k1) , j u (i k1,1j) u (i ,kj)1 u(i ,kj11)


u

(k)
i, j

(1 ) u

( k 1)
i, j

(k)

ui , j

Si = 1 coincide con Gauss-Seidel

2 2 2

Ecuacin de Laplace.
Ejemplo
u + u =0,
xx

yy

< x < 1

n=4
u(x, 0) = 0

< y < 1,
m=4,
u (x, 1) = 100x

u(0, y) = 0

u(1, y) = 100y

= 0.01

Ajuste de las condiciones de contorno:


u

(0)
i ,j

25

i 1,...,m-1

j 1,...,n-1

Mtodo de Jacobi.
Iteraciones: 8
Operaciones en coma flotante: 1142

x = 0.25
x = 0.5
x = 0.75

y = 0.25 y = 0. 5 y = 0.75
6.2561 12.5031 18.7500
12.5031 25.0000 37.4969
18.7500 37.4969 56.2439

Mtodo de Gauss-Seidel.
Iteraciones: 11
Operaciones en coma flotante: 1378

x = 0.25
x = 0.5
x = 0.75

y = 0.25 y = 0. 5 y = 0.75
6.2447 12.4947 18.7473
12.4947 24.9947 37.4973
18.7473 37.4973 56.2487

Mtodo de Sobrerrelajacin.
Factor de relajacin: = 1.2
Iteraciones: 8
Operaciones en coma flotante: 1802

x = 0.25
x = 0.5
x = 0.75

y = 0.25 y = 0. 5 y = 0.75
6.2514 12.5008 18.7502
12.5008 25.0003 37.5002
18.7502 37.5002 56.2500

Algoritmos iterativos por bloques

Iteracin por bloques fila


Para j = 1, 2, , m-1, resolver el sistema
2 u (i k1) , j 2 2 2 u (i ,kj) 2 u (i k1) , j u (i ,kj)1 u (i ,kj11)

i 1, 2, ..., n

Iteracin por bloques columna


Mtodo implcito de direcciones alternadas

Mtodo de Direcciones Alternadas.


Iteraciones: 5
Operaciones en coma flotante: 1468

x = 0.25
x = 0.5
x = 0.75

y = 0.25 y = 0. 5 y = 0.75
6.2490 12.4991 18.7497
12.4989 24.9990 37.4996
18.7495 37.4995 56.2498

Errores mximos.

Solucin:
u(x,y) = xy

Mtodo
Jacobi
GaussSeidel
Sobrerrelajacin = 1.2
Direcciones alternadas

y = 0.25
x = 0.25
6.2500
x = 0.5
12.5000
x = 0.75 18.7500

Iteraciones
8
12
8
5

y = 0. 5
12.5000
25.0000
37.5000

Operaciones
1142
1378
1802
1468

y = 0.75
18.7500
37.5000
56.2500

Error mximo
0.0061
0.0053
0.0014
0.0011

FIN

También podría gustarte