Error de truncado en métodos que resultan del problema semi

Anuncio
Error de truncado en métodos que resultan del problema
semi-discreto
Martín Maas
Análisis Numérico - Segundo Cuatrimestre 2016
Para obtener métodos de resolución numérica de una ecuación en derivadas parciales como
(1)
Ut = Uxx
∂
un enfoque es considerar primero una malla espacial (con h = ∆x) y aproximar ∂x
2 con una
p
matriz A. Si la aproximación es de orden h , tenemos que para cualquier función U , vale
2
Uxx = AU + Chp
(2)
donde C = C(x, t) es independiente de h. Posteriormente, planteamos el problema semi-discreto
(3)
u0 = Au
al que se puede aplicar cualquier método para resolución de ecuaciones diferenciales ordinarias
(incluyendo el uso de paquetes de software como las rutinas ode45,ode23s de Matlab). Por
ejemplo, podemos utilizar un método multipaso de m pasos denido por los parámetros αi , βi , y
k = ∆t, y obtenemos el esquema de diferencias nitas:
m
X
αi un+i = k
i=0
m
X
βi Aun+i .
i=0
El error de truncado T satisface
kT =
m
X
αi U n+i − k
i=0
m
X
βi AU n+i
(4)
i=0
Nos interesa estimar T utilizando que U es la solución exacta de (1). Para ello consideremos
la expansión de Taylor en el tiempo
(ik)2
+ · · · + O(k q+1 ).
2
Reemplazando en (4) y separando las diferentes potencias de k, se obtiene (llamando U (tn , ·)
al vector U (tn , xj ))
U (tn+i , ·) = U (tn , ·) + Ut (tn , ·)(ik) + Utt (tn , ·)
1
kT =
m
X
αi U (tn , ·)
i=0
m
X
+k
iαi Ut (tn , ·) − βi AU (tn , ·)
i=0
(5)
..
.
m q
X
iq−1 βi ∂ q−1
i αi ∂ q
U
(t
,
·)
−
AU (tn , ·)
+k
n
q! ∂tq
(q − 1)! ∂tq−1
q
i=0
q+1
+ O(k
)
Si tuvieramos Ut = AU (es decir, la solución exacta del sistema de ecuaciones ordinarias (3)),
la condición sobre los αi , βi para tener orden r en el tiempo, sería que se anulen los coecientes
dq =
m q
X
i αi
q!
i=0
−
iq−1 βi
,
(q − 1)!
para
1 ≤ q ≤ r,
junto con d0 = m
i=0 αi .
Pero no se tiene Ut = AU , sino Ut = Uxx . Intercalando AU en (1), y utilizando (2), se obtiene
P
(6)
Podemos obtener expresiones de la forma Utt = AUt +O(hp ) tomando derivadas temporales en la
expresión anterior (suponiendo que la constante C = C(x, t) en (2) admite derivadas temporales).
Reemplazando estas expresiones en (5) vemos que los mismos términos que corresponden a los
coecientes dq = 0 se anulan (igual que en el caso de ordinarias), resultando
Ut = AU + O(hp ).
T ∼ O(hr ) + O(hp ).
Ejemplos
Algunos métodos para Ut = Uxx , tanto explícitos como implícitos, de orden O(h2 ) y diferentes
precisiones en ∆t (que puede determinarse de la manera descripta) son:
(a) Crank-Nicolson (Adams-Moulton de 1 paso):
un+1
− unj
j
∆t
=
1
n
2 δxx (uj )
+ 12 δxx (unj )
(∆x)2
(b) Adams-Bashforth de 2 pasos:
un+1
− unj
j
∆t
=
3
n
2 δxx (uj )
− 12 δxx (un−1
)
j
(∆x)2
(c) Método totalmente implícito de 2 pasos (BDF2):
3 n+1
1
uj − 2unj + ujn−1 = rδxx (un+1
)
j
2
2
2
Descargar