diferencias finitas para la ecuacion de calor en...

12
Diferencias Finitas Para la Ecuacion de Calor en 1D La ecuación a resolver es la ecuación de calor: u t −γ( x,t ) 2 u x 2 = f ( x,t ) x ∈[ a,b ] t ∈[ t 0, t f ] u (a,t )=α(t ) Condición de frontera en a u ( b,t )=β( t ) Condición de frontera en b u ( x,t 0 )=u 0 ( x ) Condición inicial Donde la incógnita es la función u ( x,t ) . Primero discretizamos el intervalo espacial [ a,b ] en N +1 intervalos de igual longitud h : h = b a N +1 lo que genera N +2 nodos dados por: x i =a +ih i =0,. .. ,N +1 Ahora discretizamos el intervalo temporal [ t 0, t n ] en T +1 intervalos de igual longitud Δ t : Δ t = t f t 0 T +1 lo que genera T +2 nodos dados por: t n =t 0 +n Δ t n =0,... ,T +1

Upload: vohuong

Post on 06-Oct-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Diferencias Finitas Para la Ecuacion de Calor en 1D

La ecuación a resolver es la ecuación de calor:

∂u∂ t

−γ(x , t)∂

2u∂ x2=f (x , t) x∈[a ,b] t∈[t 0, t f ]

u (a , t)=α(t ) Condición de frontera en a

u (b , t)=β( t) Condición de frontera en b

u(x , t0)=u0( x) Condición inicial

Donde la incógnita es la función u (x , t) .

Primero discretizamos el intervalo espacial [a , b] en N+1 intervalos de igual longitud h :

h=b−aN+1

lo que genera N+2 nodos dados por:

x i=a+ih i=0,. .. ,N+1

Ahora discretizamos el intervalo temporal [t 0, t n] en T+1 intervalos de igual longitud Δ t :

Δ t=t f−t 0

T+1

lo que genera T+2 nodos dados por:

t n=t 0+nΔ t n=0,... , T+1

Page 2: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

En el siguiente desarrollo se utiliza la notación:

uin=u (xi , t

n)

Usando diferencias finitas centrales para discretizar la derivada en el espacio en el nodo x i y diferencias finitas hacia atras para discretizar la derivada temporal en el tiempo t n se obtiene la ecuación:

u in−ui

n−1

Δ t−γ i

n ui+1n

−2u in+ui−1

n

h2 =f in para el nodo (x i , t

n)

esta ecuación es válida para todos los nodos de la discretización i=1,. .., N y n=1,...T+1

Ordenando algunos términos se tiene:

uin+Δ t

γin

h2 (−ui+1n

+2u in−ui−1

n)=Δ t f i

n+ui

n−1

Si nos fijamos en los nodos i=1 e i=N

u1n+Δ t

γin

h2 (−u2n+2u1

n−u0

n)=Δ t f 1

n+u1

n−1

uNn+Δ t

γNn

h2 (−uN+1n

+2uNn−uN−1

n)=Δ t f N

n+uN

n−1

En estas ecuaciones se pueden utilizar las condiciones de frontera:

u0n=u (x0, t

n)=u(a , tn)=α(t n

)

uN+1n

=u( xN+1 , tn)=u(b , tn)=β(t n

)

Entonces para los casos i=1 e i=N se tienen las ecuaciones

u1n+Δ t

γ1n

h2 (−u2n+2u1

n)=Δ t f 1

n+u1

n−1+Δ t

γ1n

h2 α(t n)

uNn+Δ t

γNn

h2 (2uNn−uN−1

n)=Δ t f N

n+u1

n−1+Δ t

γNn

h2 β(t n)

Page 3: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Si fijamos el indice temporal n y recorremos todos los nodos espaciales (excepto las fronteras), se tiene el siguiente sistema lineal de ecuaciones de tamaño N×N donde las incógnitas son los valoresui

n para i=1,. .., N

u1n+Δ t

γ1n

h2 (−u2n+2u1

n)=Δ t f 1

n+u1

n−1+Δ t

γ1n

h2 α(t n)

uin+Δ t

γin

h2 (−ui+1n

+2u in−ui−1

n)=Δ t f i

n+ui

n−1 para i=2,. .. ,N−1

uNn+Δ t

γNn

h2 (2uNn−uN−1

n)=Δ t f N

n+u1

n−1+Δ t

γNn

h2 β(t n)

En forma matricial este sistema de ecuaciones puede escribirse como:

[(1 0 0 ⋯ 00 1 0 ⋯ 00 0 1 ⋯ 0⋮ ⋮ ⋮ ⋱ ⋮0 0 0 ⋯ 1

)+ Δ th2 (

2 γ1n

−γ1n 0 ⋯ 0

−γ2n 2γ2

n−γ2

n⋯ 0

0 −γ3n 2 γ3

n⋯ 0

⋮ ⋮ ⋮ ⋱ ⋮

0 0 ⋯ −γNn 2 γN

n)](

u1n

u2n

u3n

uNn)=(

Δ t f 1n+u1

n−1+

Δ t γ1n

h2 α( tn)

Δ t f 2n+u2

n−1

Δ t f 3n+u3

n−1

Δ t f Nn+uN

n−1+

Δ t γNn

h2 β(t n))

Realizando la suma de matrices

(1+2

Δ t γ1n

h2 −Δ t γ1

n

h2 0 ⋯ 0

−Δ t γ2

n

h2 1+2Δ t γ2

n

h2 −Δ t γ2

n

h2 ⋯ 0

0 −Δ t γ3

n

h2 1+2Δ t γ3

n

h2 ⋯ 0

⋮ ⋮ ⋮ ⋱ ⋮

0 0 ⋯ −Δ t γN

n

h2 1+2Δ t γN

n

h2

)(u1

n

u2n

u3n

uNn)=(

Δ t f 1n+u1

n−1+

Δ t γ1n

h2 α(t n)

Δ t f 2n+u2

n−1

Δ t f 3n+u3

n−1

Δ t f Nn +uN

n−1+Δ t γN

n

h2 β(t n))

En una notación mas compacta:

[I+Δ t A]un=Δ t fn

+un−1+d n

donde

Sistema lineal al tiempo n

Page 4: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

I=(1 0 0 ⋯ 00 1 0 ⋯ 00 0 1 ⋯ 0⋮ ⋮ ⋮ ⋱ ⋮0 0 0 ⋯ 1

) A=1

h2 (2 γ1

n−γ1

n 0 ⋯ 0

−γ2n

2γ2n

−γ2n

⋯ 0

0 −γ3n 2 γ3

n⋯ 0

⋮ ⋮ ⋮ ⋱ ⋮

0 0 ⋯ −γNn 2 γN

n) un

=(u1

n

u2n

u3n

uNn) f n

=(f 1n

f 2n

f 3n

f Nn)

d n=(

Δ t γ1n

h2 α(tn)

00⋮

Δ t γNn

h2β(t n

))

Si abreviamos un poco mas, el sistema lineal se puede escribir (para n fija):

Bun=bn

donde B=I+Δ t A y bn=Δ t f n

+un−1+d n .

La solucón de este sistema representa la solucón al tiempo t n . Para conocer la solución en todos los tiempos de la discretización temporal se deben resolver T+1 sistemas lineales de forma secuencial, es decir:

Resolver primero el sistema para n=1 : Bu1=b1

Despúes, el sistema para n=2 : Bu2=b2

Asi sucesivamente ..... : ⋮hasta resolver el sistema : BuT+1

=bT+1

Resolviendo todos estos sistemas lineales se obtiene la solución para todos los tiempos y para todos los nodos del espacio. Si los valores de la discretización N y T no son muy grandes se puede guardar la solucón en un arreglo de la siguiente forma:

[x0 u0

0 u01

⋯ u0T+1

x1 u10 u1

1⋯ u1

T+1

⋮ ⋮ ⋮ ⋱ ⋮

x N+1 uN+10 uN+1

1⋯ uN+1

T+1 ]Nota importante: Si la funcion γ( x , t ) es constante γ=cte estonces solo hay que armar una matriz B y factorizarla una vez. De manegara general si γ( x , t ) no es constante entonces hay que construir la matriz B cada paso de tiempo y factorizarla cada paso de tiempo.

Page 5: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Ejemplo 1 (Condiciones de frontera homogeneas)Un ejemplo puede ser, que nosotros les proporcionemos los datos:

[a ,b ]=[0,1] [ t0 ,tn ]=[0,0.2 ]

γ(x , t)=116

f (x , t)=0

α(t)=0

β(t)=0

u0(x )=2sin( 2π x )Es decir, la ecuación a resolver es:

∂u∂ t

−1

16∂2 u∂ x2 =0 x∈[0,1 ] t∈[0,0.2]

u (0, t)=0 Condición de frontera en 0

u (1,0)=0 Condición de frontera en 1

u (x ,0)=2sin ( 2π x ) Condición inicial

Para esta ecuación existe solución analítica que se puede usar para comparar con los resultados de diferencias finitas. La solución analítica es:

u (x , t)=2e−(π2/4 )t sin( 2π x )

Si decimos que se utilice N=10 y T=5 para discretizar, entonces:

h=b−aN+1

=111

Δ t=tn−t0T +1

=0.26

Los nodos de la discretización del espacio son

[0, 0.09, 0.18, 0.27, 0.36, 0.45, 0.54, 0.63, 0.72, 0.81, 0.90, 1]

Los nodos de la discretización del tiempo son:

[0, 0.03, 0.06, 0.1, 0.13, 0.16, 0.2]

Page 6: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Las siguiente gráfica resulta al resolver la ecuación usando la discretizacion anterior para los diferentes tiempos.

t=0t=0.03

t=0.1

t=0.13t=0.16

t=0.06

t=0.2

Page 7: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Ejemplo 2 (Condiciones de frontera que varian en tiempo)

[a ,b ]=[0,1]

[t0 , tn ]=[0,3]

γ(x , t)=1

f (x , t )=e−t cos(2π x )(4 π2−1)

α(t)=e−t

β(t)=e−t

u0(x )=cos (2π x )

La solución analítica es:

u(x , t)=e−t cos (2π x )

Si N=20 y T=10. Las siguiente gráfica muestra la solución en el intervalo [0,3] para diferentes tiempos.

Page 8: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Si se gráfica en forma de superficie la solución se ve de la siguiente forma:

Page 9: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Ejemplo 3 (Condiciones de frontera que varian en tiempo)

[a ,b ]=[0,1]

[t0 , tn ]=[0,2π]

γ(x , t)=1

f (x , t)=cos(2π x )(4 π2 sin(t)+cos( t))

α(t)=sin (t)

β(t)=sin (t)

u0(x )=0

La solución analítica es:

u(x , t)=sin (t)cos(2π x )

Si N=20 y T=10. Las siguiente gráfica muestra la solución en el intervalo [0,1] para diferentes tiempos.

Page 10: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Si se grafica en forma de superficie la solucion se ve de la siguiente forma:

Page 11: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Ejemplo 4. ( γ( x , t ) no es constante)[a ,b]=[π ,3π]

[t0 , tn ]=[0,0.5 ]

γ(x , t)=x (t+1)

f (x , t )=x

(t+1)3 [cos( x(t+1)

2 )+2sin( x( t+1)2 )]

α(t)=cos ( π

( t+1)2 )

β(t)=cos( 3π

( t+1)2 )u0

(x )=cos (x)

La solución analítica es:

u(x , t)=cos( x

(t+1)2 )

Si N=20 y T=20. Las siguiente grafica muestra la solucion en el intervalo [π ,3π ] para diferentes tiempos

Page 12: Diferencias Finitas Para la Ecuacion de Calor en 1Dsistemas.fciencias.unam.mx/~gcontreras/joomla15/images/stories/... · En el siguiente desarrollo se utiliza la notación: ui n=u(x

Si se gráfica en forma de superficie la solución se ve de la siguiente forma: