Métodos Numéricos en EDP
Enviado por tabique13 • 26 de Febrero de 2016 • Práctica o problema • 613 Palabras (3 Páginas) • 333 Visitas
Métodos Numéricos en EDP
Máster en Ingeniería Matemática UC3M Curso 2012 Lino Gustavo Garza Gaona, Javier Andrés González Pizarro
Práctica 1
Ejercicio 1. Programa un método en diferencias finitas explícito y otro implícito que calcule la solución aproximada en t = 1 de la siguiente ecuación del calor no homogénea con datos de contorno Dirichlet homogéneos, ⎧
ut = uxx + sen(2πx), (x, t) ∈ (0, 1) × (0, 1),⎨ u(0, t) = u(1, t) = 0 t ∈ (0, 1),
⎩
u(x, 0) = sen(πx), x ∈ (0, 1).
Calcula la solución exacta y, para distintos valores del paso espacial h, el error cometido (en t = 1) en norma dos,
⎛⎞
1/2
J−1
f
hh
||V||2 =
|V0|2 + |Vj|2 + |Vj|2
.
⎝⎠
22
j=1
Haz una gráfica en la que se representen esos errores frente al número de nodos y comprueba empíricamente que el método es de orden 2.
Solución
Para encontrar la solución exacta buscamos una solución que se pueda escribir en la forma
∞
f
u(x, t) = un(t) sen(nπx).
n=1
Definimos para nuestro problema F(x, t) = sen(2πx)y f (x) = sen(πx) y suponemos que las podemos escribir como
∞
f
f (x) = sen(πx) = an(t) sen(nπx)
n=1
con n = 1 a1(t) = 1, n = 2 a2(t) = 0, n ≥ 3 an(t) = 0, y
∞
f
F(x, t) = sen(2πx) = bn(t) sen(nπx)
n=1
con n = 1 b1(t) = 0, n = 2 b2(t) = 1, n ≥ 3 bn(t) = 0.
Reemplazando en la ecuación original obtenemos
∞∞∞
ff f
un(t) sen(nπx) = − un(t)(nπ)2 sen(nπx) + bn(t) sen(nπx), n=1 n=1 n=1
1
∞∞
f• •f
un(t) + un(t)(nπ)2 sen(nπx) = bn(t) sen(nπx). n=1 n=1
Resolvemos un(t) + (nπ)2un(t) = bn(t) ∀n ∈ N
si bn = 0(n = 1, n ≥ 3)
u + (nπ)2u = 0,
u = −(nπ)2u, u
= −(nπ)2 ,
u ln u = −(nπ)2t + c1,
−(nπ)2t
u = c1e.
Para n = 2, b2(t) = 1
u + (nπ)2u = 1,
multiplicamos por e(nπ)2t y obtenemos
(nπ)2t (nπ)2t (nπ)2 t
ue+ (nπ)2ue= e,
(nπ)2t(nπ)2 t
(eu) = e,
(nπ)2te(nπ)2 t
eu =+ c2,
(nπ)2 1
−(nπ)2t
un(t) =+ c2e.
(nπ)2
De la condición inicial u(x, 0) = f (x) se obtiene que un(0) = an ∀n ∈ N. Así, podemos obtener el valor de las constantes.
Para n = 1 tenemos u(0) = a1 = 1 ⇒ c1 = 1.
Para n = 2 tenemos 1
...