SlideShare une entreprise Scribd logo
1  sur  70
Télécharger pour lire hors ligne
Índice general
1. Métodos numéricos para ecuaciones diferenciales ordinarias 3
1.1. Método en diferencias finitas . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1. Análisis del error . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2. Ejemplos de sistemas . . . . . . . . . . . . . . . . . . . . . . 18
1.3. El método de Heun y el método del punto medio . . . . . . . . . . 24
1.4. Métodos explícitos de Runge-Kutta . . . . . . . . . . . . . . . . . . . 40
2. Métodos numéricos para ecuaciones en derivadas parciales (EDPs) 49
2.1. Clasificación de EDPs de segundo orden . . . . . . . . . . . . . . . . 49
2.2. Métodos numéricos para problemas parabólicos . . . . . . . . . . . 50
2.2.1. Método explícito . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2.2. Método implícito . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.2.3. Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . 59
2.3. Estabilidad, consistencia y convergencia . . . . . . . . . . . . . . . . 61
A. Analisis numérico matricial 65
A.1. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A.2. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1
2
Capítulo 1
Métodos numéricos para
ecuaciones diferenciales
ordinarias
La inmensa mayoría de las ecuaciones diferenciales no se pueden resolver
de forma analítica explícita, por lo que resulta esencial diseñar algoritmos
numéricos que permitan hallar una aproximación numérica precisa. Los
esfuerzos de investigación en este sentido han proporcionado un vasto
abanico de esquemas numéricos que permiten hallar soluciones aproximadas
para una gran variedad de ecuaciones diferenciales. Además, hoy en día
uno puede elegir entre una amplia despensa de software que proporcionan
resultados precisos y fiables en periodos de tiempo moderadamente cortos.
No obstante, todos esos paquetes y los métodos que subyacen tienen sus
limitaciones, y quienes los utilizan deben ser capaces de reconocer cuando
el software trabaja correctamente y cuando genera resultados espurios.
En este capítulo nos ocuparemos de presentar los métodos numéricos
básicos para resolver problemas de valores iniciales (PVI). Lo cierto es que
los métodos esenciales que vamos a considerar raramente se utilizan en
la práctica, incluso para ecuaciones diferenciales relativamente sencillas,
puesto que existen métodos más sofisticados, especializados y versátiles.
Pero cualquier desarrollo avanzado se construye sobre esquemas básicos y
las ideas que subyacen de éstos.
Los problemas representativos con los que se enfrenta un analista numérico
de ecuaciones diferenciales ordinarias aparecen ya en las ecuaciones de
primer orden más simples. Nuestro objetivo es calcular una aproximación a
3
4
la solución para el problema de Cauchy:
y (t) = f(t, y(t)), y(t0) = y0, (1.1)
donde y(t) es una función real definida en un intervalo I, y f(t, y) es una
función definida en I × R.
Por el bien de la simplicidad, centraremos nuestra atención en el caso
escalar; sin embargo, todas las fórmulas y resultados se pueden adaptar a
sistemas de primer orden solo con reemplazar las funciones escalares y(t) y
f(t, y) por funciones vectoriales. Por otra parte, sabemos que las ecuaciones
diferenciales de orden superior se reducen a sistemas equivalentes de primer
orden.
Por no ser objeto de este tema, no entraremos a estudiar en profundidad
los diferentes resultados teóricos que aseguran, bajo ciertas hipótesis, la
existencia, unicidad o regularidad de las soluciones de los problemas de
Cauchy. No obstante recordamos a continuación uno de los teoremas clásicos
de existencia y unicidad.
Teorema 1.1 (de Cauchy-Lipschitz) Sea f(t, x) una función
continua sobre I × R y lipschitciana respecto a la segunda de sus
variables, esto es,
∃ L > 0 / |f(t, x) − f(t, y)| ≤ L|x − y|, ∀t ∈ I, ∀x, y ∈ R,
entonces el problema de Cauchy (1.1) admite una única solución.
Observación 1.2 La condición de Lipschitz es relativamente suave sobre
la función. Obsérvese que si la derivada parcial de f(t, x) respecto de la
segunda variable es una función continua, la condición de Lipschitz se
traduce en que dicha derivada permanezca acotada.
En numerosos problemas físicos la variable t representa el tiempo y el
intervalo I se suele considerar desde [t0, t0 + α]. Por ello el instante t0 se
denomina instante inicial y la condición impuesta en ese instante y(t0) = y0
se denomina condición inicial.
5
1.1. Método en diferencias finitas
Uno de los métodos más versátiles para resolver ecuaciones diferenciales
ordinarias es el método de diferencias finitas, que consiste, básicamente,
en aproximar las derivadas de una función en un punto mediante una
combinación de las imágenes de la función en puntos del entorno (los
puntos de la malla). La herramienta que nos proporciona tales fórmulas,
denominadas de “diferencias finitas", es el desarrollo de Taylor de una
función en un punto. En primer lugar hallemos la fórmula de aproximación
de la primera derivada:
y(t + h) = y(t) + y (t)h +
1
2
y (ξ)h2
, ξ ∈ [t, t + h],
donde hemos utilizado la fórmula del resto de Cauchy. Despejando y (t) de
la ecuación anterior podemos hallar su valor
y (t) =
y(t + h) − y(t)
h
−
1
2
y (ξ)h,
de donde obtenemos la aproximación
y (t) ≈
y(t + h) − y(t)
h
.
La fórmula anterior se denomina diferencia progresiva de la primera
derivada. Obsérvese que el error de la aproximación es proporcional a h,
que lo expresaremos diciendo que es una aproximación de primer orden.
Cuando interese poner de manifiesto el orden de aproximación omitiremos
el resto de Cauchy escribiendo simplemente
y (t) =
y(t + h) − y(t)
h
+ O(h),
donde el término O(h) se refiere a que el término proporcional a h está
acotado por un múltiplo constante de h cuando h tiende a cero. Realizando
el desarrollo de Taylor de y(t − h) y procediendo de forma similar se obtiene
una nueva fórmula de aproximación para y (t), pero esta vez en función de
los valores de u en el nodo t y t − h,
y (t) =
y(t) − y(t − h)
h
+ O(h).
En este caso, la fórmula aproximación obtenida se denomina diferencia
regresiva de la primera derivada. Las diferencias progresivas y regresivas
son aproximaciones de primer orden a la primera derivada en t. Pero no son
6
éstas las únicas posibilidades para aproximar la primera derivada. Consideremos
los siguientes desarrollos de Taylor:
y(t + h) = y(t) + y (t)h +
1
2
y (t)h2
+ O
(
h3
)
,
y(t − h) = y(t) − y (t)h +
1
2
y (t)h2
+ O
(
h3
)
,
donde el resto de Taylor es proporcional a h3
. Si restamos las formulas
anteriores obtenemos
y(t + h) − y(t − h) = 2y (t)h + O
(
h3
)
,
de donde se obtiene fácilmente
y (t) =
y(t + h) − y(t − h)
2h
+ O(h2
).
Luego he aquí otra fórmula de aproximación a la primera derivada en t,
pero en este caso de segundo orden, denominada diferencia central de
la primera derivada.
Tratemos de hallar ahora una aproximación a la segunda derivada en un
punto t. Tengamos en cuenta los siguientes desarrollos de Taylor:
y(t + h) = y(t) + y (t)h +
1
2
y (t)h2
+
1
6
y(3)
(t)h3
+ O
(
h4
)
,
y(t − h) = u(t) − y (t)h +
1
2
y (t)h2
−
1
6
y(3)
(t)h3
+ O
(
h4
)
.
(1.2)
Si en lugar de restar, los sumamos deducimos la identidad
y(t + h) + y(t − h) = 2y(t) + y (t)h2
+ O
(
h4
)
,
de donde podemos despejar sin dificultad y (t),
y (t) =
y(t + h) − 2y(t) + y(t − h)
h2
+ O(h2
).
Despreciando el término O(h2
) hemos obtenido una aproximación de orden
2 para la segunda derivada de la función y en el punto t. Tal aproximación
se denomina diferencia central de la segunda derivada. Para obtener
aproximaciones de derivadas de orden superior tendríamos que proceder
de forma análoga, y necesitaríamos evaluar la función en más puntos
del entorno. Observemos que para aproximar la primera derivada hemos
necesitado evaluar la función en dos puntos; para aproximar la segunda
derivada hemos evaluado la función en tres puntos. En general, aproximar
la derivada n-ésima necesitaríamos evaluar la función en al menos n + 1
puntos distintos.
7
1.2. Método de Euler
Nuestra meta consiste en calcular una aproximación a la única solución
para el problema de valor inicial (1.1). En primer lugar, introducimos una
malla de puntos (puntos nodales) comenzando en el instante inicial t0 y
acabando en el tiempo final tN = t0 + α de la forma
t0 < t1 < t2 < · · · < tk < · · · < tN
donde la distancia entre un nodo y otro hk = tk+1 − tk esté suficientemente
cerca. Por comodidad, utilizaremos una separación uniforme entre los puntos
del mallado, esto es, hk = h fijo para todo k. Este requisito simplifica el
análisis sin afectar significativamente al estudio general para pasos no
uniformes. En este caso, el punto k-ésimo de la malla está dado por
tk = t0 +kh. El propósito es construir un algoritmo recursivo que proporcione
aproximaciones uk ≈ y(tk) de la solución real en los puntos nodales k =
0, 1, 2, . . . elegidos. Los valores de y(t) en los puntos internodales se pueden
calcular mediante cualquier procedimiento de interpolación, por ejemplo, los
splines cúbicos. El polinomio de Taylor de primer orden permite aproximar
el valor de la función y(t) alrededor de cualquier nodo tk:
y(t) ≈ y(tk) + (t − tk)y (tk) = y(tk) + (t − tk)f(tk, y(tk)),
donde hemos reemplazado la derivada y (t) por el término que aparece en
la ecuación (1.1) objeto de estudio. En particular, si tomamos t = tk+1,
podemos aproximar el valor del siguiente punto nodal de la malla
y(tk+1) ≈ y(tk) + (tk+1 − tk)f(tk, y(tk)). (1.3)
En la práctica solamente sabemos la aproximación uk al valor y(tk), luego
estamos obligados a reemplazar uk por y(tk) en la fórmula (1.3), por lo tanto
obtenemos el esquema iterativo:
uk+1 = uk + hf(tk, uk). (1.4)
Esta simple idea es el punto de partida del método de Euler. Este método
es el esquema numérico unipaso más simple para integrar una ecuación
diferencial ordinaria. Con el fin de comprender mejor el método de Euler
en la práctica, es conveniente testearlo con algún problema sencillo que
sepamos resolver, lo que permite estudiar el error de nuestra aproximación
con la solución real.
8
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Método de Euler
sol aprox
sol exacta
Figura 1.1: y + u = 2 cos t, u(0) = 2
1.2.1. Análisis del error
Antes de continuar, examinaremos algunos aspectos relacionados con el
error en un esquema numérico. Un método numérico unipaso general se
puede escribir como
uk+1 = uk + hg(h, tk, uk), (1.5)
donde g es una función conocida que, mediante iteraciones, proporciona
la solución aproximada uk ≈ y(tk) en el instante tk, siendo el tamaño del
paso h = tk+1 − tk (que por propósitos didácticos lo consideramos fijo). En
cualquier esquema de integración numérica hay distintos de errores que
clasificaremos en tres tipos:
Error local: Es aquel cometido en el paso actual del algoritmo. Incluso
cuando somos capaces de hallar el valor exacto de la solución uk =
y(tk) en el instante tk, la aproximación numérica en el instante tk+1 es
ciertamente no exacta, y se introduce un error en el valor calculado
uk+1 ≈ y(tk+1). Esencialmente, hay dos subtipos de errores locales: el
error de truncamiento (o error de consistencia) y el error de
redondeo. El error de redondeo es consecuencia de la falta de precisión
de la aritmética computacional y, en ocasiones, puede ocasionar graves
alteraciones en la aproximación. El error de truncamiento se debe a
la aproximación que realizamos en el instante tk+1 a partir de su valor,
9
aún cuando sea exacto, en el instante tk. Debido a su relevancia, el
error de truncamiento será analizado cuidadosamente más adelante.
Error inicial: Se manifiesta cuando la condición inicial u0 ≈ y(t0) no se
puede calcular con exactitud debido, fundamentalmente, a las limitaciones
en la aritmética computacional. Por ejemplo, si y(t0) = π, necesariamente
tenemos que tomar una aproximación de π y, en consecuencia, introducimos
algún error inicial que dependerá del número de decimales exactos que
tomemos en π.
Error global: Es la diferencia entre el valor aproximado uk y el valor exacto
y(tk) en el nodo tk. Los errores locales tienden a acumularlo, puesto que,
en general, no partimos del valor exacto en el instante tk−1. De hecho,
ni siquiera podemos garantizar el valor exacto en la condición inicial
u0 ≈ y(t0) el el caso de que haya error inicial.
Resumiendo, conforme iteramos nuestro esquema numérico el error se
propaga en cada paso. Por simplicidad, pongámosnos en una situación
favorable y supongamos que la condición inicial es exacta u0 = y(t0), y que
los errores de redondeo no juegan un papel significativo (aunque uno debe
siempre tenerlos en cuenta en la computación). En ese caso el error local
juega un papel fundamental hasta tal punto que, bajo ciertas hipótesis, si
tenemos dominado el error local, podemos dominar también la propagación
del error global. Así pues, analizaremos el error local en detalle. Para medir
el error local que va de tk a tk+1 basta con comparar la solución exacta
y(tk+1) con su aproximación numérica bajo la hipótesis de que uk = y(tk).
Naturalmente, en la práctica, este caso nunca se da, por lo que el error
local es una cantidad artificial que, por sí sola, no ilustra correctamente el
funcionamiento del método.
Definición 1.3 Se denomina error local de discretización de un
método numérico de la forma (1.5) al valor:
Ek+1 = (yk+1 − yk) − hg(h, tk, yk), k = 0, 1, 2, . . .
El valor τk+1 = 1
h
Ek+1 se denomina error de truncación o error de
consistencia
10
Obsérvese que el error de discretización en el instante tk+1 nos proporciona
la diferencia entre el valor exacto de la solución en dicho punto yk+1 = y(tk+1)
y el valor que se obtendría al aproximar este valor mediante el esquema
numérico (1.5) si se partiese de la solución exacta en el instante tk.
Es fácil deducir la ecuación
yk+1 − yk
h
− g(h, tk, yk) =
1
h
Ek+1 = τk+1,
así pues, el error de truncación (consistencia) es la cantidad por la cual
el método de discretización aplicado sobre el valor exacto en los puntos
nodales no satisface la ecuación diferencial (1.1).
Definición 1.4 Se dice que un esquema numérico de la forma (1.5)
es consistente con la ecuación diferencial ordinaria (1.1) si se
verifica que
l´ım
h→0
N∑
k=1
|Ek| = 0.
Además, diremos que el método es consistente de orden p si para
cualquier valor de h positivo e inferior a un cierto paso máximo h∗
,
se cumple que
N∑
k=1
|Ek| ≤ C · hp
,
donde C es una constante.
Observación 1.5 Observemos que si |Ek| ≤ M ·hp+1
para todo k, entonces
el método es consistente de orden p. En efecto,
N∑
k=1
|Ek| ≤ NMhp+1
=
α
h
Mhp+1
= αMhp
.
En la práctica, y siempre y cuando tengamos un orden de derivación
conveniente, podemos calcular el orden de consistencia de un esquema
numérico desarrollando en Taylor (respecto de h) la solución exacta, esto
es,
y(tk+1) = y(tk) + hy (tk) +
h2
2
y (tk) +
h3
6
y (tk) + · · ·
= yk + hf(tk, yk) +
h2
2
f(1)
(tk, yk) +
h3
6
f(2)
(tk, yk) + · · ·
(1.6)
11
donde hemos denotado
f(k)
(t, y) =
d
dt
[f(k−1)
(t, y)], f(0)
(t, y) = f(t, y).
Por ejemplo, los primeros términos son
f(1)
(t, y) =
d
dt
[f(t, y)] =
∂f
∂t
(t, y) + f(t, y)
∂f
∂y
(t, y),
f(2)
(t, y) =
d
dt
[f(1)
(t, y)] =
∂2
f
∂t2
(t, y) +
∂f
∂t
(t, y)
∂f
∂y
(t, y)
+ f(t, y)
((
∂f
∂y
(t, y)
)2
+ 2
∂2
f
∂t ∂y
(t, y)
)
+ f(t, y)2 ∂2
f
∂y2
(t, y),
f(3)
(t, y) =
∂3
f
∂t3
(t, y) + 3
∂f
∂t
(t, y)
∂2
f
∂t ∂y
(t, y) +
∂f
∂y
(t, y)
∂2
f
∂t2
(t, y) +
∂f
∂t
(t, y)
(
∂f
∂y
(t, y)
)2
f(t, y)
((
∂f
∂y
(t, y)
)3
+ 5
∂2
f
∂t ∂y
(t, y)
∂f
∂y
(t, y) + 3
(
∂f
∂t
(t, y)
∂2
f
∂y2
(t, y) +
∂3
f
∂t2 ∂y
(t, y)
))
f(t, y)2
(
4
∂f
∂y
(t, y)
∂2
f
∂y2
(t, y) + 3
∂3
f
∂t ∂y2
(t, y)
)
+ f(t, y)3 ∂3
f
∂y3
(t, y)
Por otra parte, desarrollamos en Taylor la función g(h, t, y) respecto de
la variable h alrededor del punto 0
g(h, t, y) = g(0, t, y) + h
∂g
∂h
(0, t, y) +
h2
2
∂2
g
∂h2
(0, t, y) + · · · (1.7)
Finalmente, utilizando (1.6) y (1.7) obtenemos:
Ek+1 = (yk+1 − yk) − hg(h, tk, yk)
= h (f(tk, yk) − g(0, tk, yk)) +
h2
2
(
f(1)
(tk, yk) − 2
∂g
∂h
(0, tk, yk)
)
h3
6
(
f(2)
(tk, yk) − 3
∂2
g
∂h2
(0, tk, yk)
)
+
h4
24
(
f(3)
(tk, yk) − 4
∂3
g
∂h3
(0, tk, yk)
)
+ . . .
(1.8)
Así pues, bajo condiciones de regularidad convenientes sobre las derivadas,
el orden de consistencia del esquema numérico será de orden p siempre y
cuando
f(m)
(tk, yk) = (m + 1)
∂(m)
g
∂h(m)
(0, tk, yk), m < p, fp
(tk, yk) = (p + 1)
∂p
g
∂hp
(0, tk, yk),
ya que, en ese caso, el error de discretización tiene orden p + 1.
Ejemplo 1.1 En el método de Euler uk+1 = uk + hf(tk, uk) se verifica que g(h, tk, yk) =
f(tk, yk), de donde g(0, tk, yk) = f(tk, yk) y ∂g
∂h
(0, tk, yk) = 0. Entonces el método de Euler
es de orden de consistencia 1 (a menos que f(1)
(t, y) = 0).
12
Definición 1.6 Dado un método numérico de la forma (1.5), se
denomina error del método la diferencia ek = yk −uk (k=0,1,. . . ,N).
Se dice que el método es convergente cuando
l´ım
h→0
(
sup
0≤k≤N
{|ek|}
)
= 0.
Diremos que el método es convergente de orden p si se verifica:
sup
0≤k≤N
{|ek|} ≤ K · hp
.
En principio, el error de consistencia y el error del método son conceptos
independientes. De hecho la propiedad de consistencia, por lo general, suele
ser más fácil de constatar que la convergencia. Mostraremos que, bajo
hipótesis adecuadas, la consistencia de orden p implica la convergencia de
orden p. Consideremos un método genérico unipaso uk+1 = uk + hg(h, tk, uk)
que trata de aproximar la solución de la ecuación (1.1). Si conocemos el
valor exacto yk en el instante tk, entonces el valor exacto en el intante tk+1
es
yk+1 = yk + hg(h, tk, yk) + Ek+1,
siendo Ek+1 el error de discretización. Restando esta última expresión al
esquema numérico que aproxima a la ecuación obtenemos:
yk+1 − uk+1
ek+1
= yk − uk
ek
+h (g(h, tk, yk) − g(h, tk, uk)) + Ek+1.
Ahora tomamos valor absoluto
|ek+1| ≤ |ek| + h · |g(h, tk, yk) − g(h, tk, uk)| + |Ek+1|.
Asumamos que g(h, t, y) es continua en t y h, y lipschitziana en la variable
y con constante de Lipschitz L, que generalmente se relaciona con la
constante de Lipschitz para f. Entonces
|ek+1| ≤ |ek| + hL|yk − uk| + |Ek+1| = (1 + Lh)|ek| + |Ek+1|. (1.9)
Necesitamos el siguiente lema técnico para continuar acotando el error.
13
Lema 1.7 Sea L > 0 una constante y sean {ak}N
k=0 y {bk}N
k=1
sucesiones no-negativas satisfaciendo
ak+1 ≤ (1 + Lh)ak + bk+1, k = 0, 1, . . . , N − 1, h > 0.
Entonces se verifica la desigualdad:
ak+1 ≤ eL(tk+1−t0)
a0 +
k∑
i=0
eL(tk+1−ti+1)
bi+1,
donde tk = t0 + kh, k = 0, 1, . . . , N.
Aplicamos el Lema 1.7 a nuestro caso particular; A = L, ak = |ek| y
bk = |Ek|, entonces:
|ek+1| ≤ eL(tk+1−t0)
· |e0| +
k∑
i=0
≤L(tk+1−t0)
eL(tk+1−ti+1)
|Ei+1|
≤ eL(tk+1−t0)
(
|e0| +
N∑
k=1
|Ek|
)
.
Si asumimos que el error inicial e0 = 0 y que el método es consistente de
orden p, concluimos que
|ek+1| ≤ eL(tk+1−t0)
Chp
= K · hp
.
Así pues, bajo hipótesis convenientes, hemos probado que si el esquema
numérico tiene orden p como medida de error local, entonces el error global
está acotado por un múltiplo de hp
. En otras palabras, si suponemos que
no hay errores de redondeo ni error inicial, el valor calculado uk y la solución
real y(tk) en el instante tk se puede acotar por:
|y(tk) − uk| ≤ K · hp
,
donde la constante K > 0 puede depender del tiempo tk y la solución
particular y(t). En resumen, cuanto más alto es el orden, más preciso será
nuestro esquema numérico, y el paso se puede elegir más grande para
conseguir la precisión deseada a la solución real. Sin embargo, a mayor
14
orden, se requieren mayores esfuerzos computacionales en cada paso. Luego
se debe tratar de equilibrar el orden del método con la elección del paso de
forma que el balance total sea óptimo.
Como consecuencia, el siguiente resultado nos proporciona una cota
para el error en el método de Euler en el caso de que no hayan errores
de redondeo, esto es, si suponemos que podemos realizar los cálculos con
precisión infinita.
Teorema 1.8 Sea F una función continua lipschitziana respecto
de la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0 +
α], x, y ∈ R y donde L es una constante real positiva. Supongamos
además que la solución y es de clase C2
en [t0, t0 + α] y que existe una
constante M > 0 tal que |y (t)| < M. Entonces
|y(tk) − uk| ≤
hM
2L
(
eL(tk−t0)
− 1
)
.
No obstante, sabedores de que la influencia del error de redondeo puede
llegar a ser notable bajo ciertas circunstancias, sería interesante saber como
afectan los errores de redondeo al error global. En la práctica el análisis
de la repercusión del error de redondeo es bastante complicado, pero en el
caso del método de Euler y simulando la misma técnica que se utiliza en
la demostración del Teorema 1.8 se demuestra la siguinte acotación.
15
Teorema 1.9 Sea f una función continua lipschitziana respecto
de la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0 +
α], x, y ∈ R y donde L es una constante real positiva. Supongamos
además que existe una constante M > 0 tal que |y (t)| < M, y que en
cada paso el error de redondeo al evaluar el método de Euler es εk.
Entonces
|y(tk) − uk| ≤
(
hM
2L
+
ε
hL
)
(
eL(tk−t0)
− 1
)
+ ε0eL(tk−t0)
,
donde ε es una cota superior de εk y ε0 es el error de redondeo del
dato inicial.
La lectura esencial de este resultado es que el error no está acotado
cuando h tiende a cero debido al factor ε
hL
. Por tanto los resultados obtenidos
son poco fiables para pasos cuya longitud es menor que un cierto umbral.
El umbral viene dado por el valor de h que minimiza la expresión
hM
2L
+
ε
hL
,
que tomando la primera derivada e igualando a cero obtenemos el valor
óptimo h ≈
√
2ε
M
. En cualquier caso debe tenerse en cuenta que los errores
de redondeo afectan solamente cuando los pasos son muy pequeños.
Sistemas de ecuaciones
Consideremos ahora el sistema de ecuaciones bidimensional
dx
dt
= f (t, x, y) ,
dy
dt
= g (t, x, y) ,
x (t0) = x0, y (t0) = y0
. (1.10)
Tanto la definición de solución como los resultados de existencia y
unicidad de soluciones son similares al caso de una ecuación, por lo que
pasaremos directamente al estudio de los métodos numéricos.
16
Usando, al igual que antes
dx
dt
(t) ≈
x (t + h) − x (t)
h
,
dy
dt
(t) ≈
y (t + h) − y (t)
h
obtenemos el método de Euler:
uk+1 = uk + hf (tk, uk, vk) ,
vk+1 = vk + hg (tk, uk, vk) ,
k = 0, 1, 2, ..., N − 1,
donde uk ≈ x (tk) , vk ≈ y (tk) .
En el caso general de un sistema de n ecuaciones
dy1
dt
= f1 (t, y1, y2, ..., yn) ,
...
dyn
dt
= fn (t, y1, y2, ..., yn) ,
y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn,
. (1.11)
el esquema resultante sería el siguiente:
u1,k+1 = u1,k + hf1 (tk, u1,k, ..., un,k) ,
...
un,k+1 = un,k + hfn (tk, u1,k, ..., un,k) ,
k = 0, 1, 2, ..., N − 1.
Ejemplo 1.2 Resolvamos el sistema
x = x + 2y,
y = 3x + 2y
x (0) = 6, y (0) = 4,
en el intervalo [0, 0,04] con h = 0,02.
Solución.-
u1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28,
v1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,
17
u2 = 6,28 + 0,02 ∗ (6,28 + 2 ∗ 4,52) = 6. 586 4,
v2 = 4,52 + 0,02 ∗ (3 ∗ 6,28 + 2 ∗ 4,52) = 5. 077 6.
Como la solución exacta de este problema es x (t) = 2e−t
+ 4e4t
, y (t) =
−2e−t
+ 6e4t
obtenemos que
x (0,04) = 2e−0,04
+ 4e4∗0,04
= 6. 615 622 362 ,
y (0,04) = −2e−0,04
+ 6e4∗0,04
= 5. 119 486 348.
Por tanto, el error cometido es:
Error =
√
(6. 586 4 − 6. 615 622 )2
+ (5. 077 6 − 5. 119 486)2
= 5. 107 × 10−2
.
En lo que respecta a las ecuaciones de orden dos
x = f (t, x, x )
estas se convierten en un sistema bidimensional mediante el cambio de
variable y = x :
y = f (t, x, y) ,
x = y.
A partir de aquí empleamos los métodos vistos para sistemas. En general,
podemos tranformar una ecuación de orden n
y(n)
= f
(
t, y, y , ..., y(n−1)
)
en un sistema mediante los cambios de variable y1 = y, y2 = y , y3 = y , ..., yn =
y(n−1)
:
y1 = y2,
y2 = y3,
...
yn = f (t, y1, y2, ..., yn) .
18
Ejemplo 1.3 Dado el problema
x + 4x + 5x = 0, x (0) = 3, x (0) = −5
lo transformamos en
x = y,
y = −4y + 5x,
x (0) = 3, y (0) = −5.
1.2.2. Ejemplos de sistemas
El péndulo
Consideramos una bola de masa m atada de una varilla rígida de longitud
l y masa despreciable que pende del techo. Las varilla puede oscilar con
libertad sobre el plano vertical, pero sometida a la fuerza de la gravedad (ver
la figura 1.2). Consideraremos primero por simplicidad que la resistencia
del aire se puede despreciar.
La variable x es el ángulo entre la varilla y el eje vertical. La ecuación
diferencial se puede obtener a partir del principio de la cantidad de movimiento
angular: la razón de cambio de la cantidad de movimiento angular es igual
al momento de la fuerza. Como
Cantidad de movimiento angular=ml2 dx
dt
,
Momento de la fuerza=lF = −lmg sin (x) ,
tenemos la ecuación
ml2 d2
x
dt2
= −lmg sin (x) ,
d2
x
dt2
= −
g
l
sin (x) .
Si lo transformamos en un sistema poniendo y = x tendremos
dx
dt
= y,
dy
dt
= −
g
l
sin (x) .
Los puntos fijos son
y = 0, sin (x) = 0
(0, 0) , (±π, 0) , (±2π, 0) , ..., (±nπ, 0) , ...
19
El punto (0, 0) es estable (se producen pequeñas oscilaciones alrededor del
punto), mientras que (π, 0) es inestable. Todos los demás son réplicas de
estos dos: (±2nπ, 0) son estables y (± (2n + 1) π, 0) son inestables.
El diagrama de fases de este sistema, calculado usando el método de
Euler (con g = 10, l = 50), se puede ver en la figura 1.3. Vemos que
alrededor de los puntos fijos (±2nπ, 0) existen soluciones periódicas. Éstas
corresponden al movimiento oscilatorio del péndulo, que aparecen cuando
la velociad inicial no es demasiado grande. En cambio, si la velocidad inicial
es grande, entonces el péndulo da vueltas completas, y el valor de la variable
x ya no está acotado.
Si tenemos en cuenta el rozamiento, entonces la ecuación es la siguiente:
d2
x
dt2
= −
g
l
sin (x) − c
dx
dt
.
Transformada en sistema quedaría
dx
dt
= y,
dy
dt
= −
g
l
sin (x) − cy.
Ahora las soluciones se comportan de manera bastante diferente. Al
haber disipación de la energía (casi) todas las soluciones convergen en
espiral a uno de los puntos fijos (±2nπ, 0). Dependiendo de la velocidad
inicial (es decir, de la fuerza a la que hemos impulsado el péndulo) puede
dar varias vueltas antes de estabilizarse y comenzar a oscilar en torno a la
posición de equilibrio.
Usando los parámetros g = 10, l = 50, c = 1 hemos calculado varias
soluciones por el método de Euler.
En la figura 1.4 podemos ver la solución correspondiente a las condiciones
iniciales x0 = −2, y0 = 2. En este caso vemos que el péndulo oscila perdiendo
energía alrededor del punto (0, 0).
En la figura 1.5 tenemos la solución con condiciones iniciales x0 = 0,
y0 = 15. Al ser la velocidad inicial grande el péndulo da dos vueltas enteras
y después comienza a oscilar perdiendo energía alrededor del punto de
equilibrio (4π, 0) .
Finalmente, en la figura 1.6 las condiciones iniciales son x0 = 0, y0 = 40.
La velocidad inicial es tan grande que el péndulo da seis vueltas completas
20
antes de perder suficiente energía y estabilizarse oscilando alrededor del
punto de equilibrio (12π, 0) .
El sistema de Lorenz
El sistema de Lorenz es un modelo, bastante simplificado, del tiempo
atmosférico, que fue desarrollado por el meteorólogo Edwar N. Lorenz.
El sistema es el siguiente:



dx
dt
= σ (y − x) ,
dy
dt
= ρx − y − xz,
dz
dt
= −βz + xy,
donde σ, ρ, β son parámetros.
Se puede calcular sin dificultad que este sistema tiene tres puntos fijos
dados por:
(0, 0, 0) ,
(√
β (ρ − 1),
√
β (ρ − 1), ρ − 1
)
,
(
−
√
β (ρ − 1), −
√
β (ρ − 1), ρ − 1
)
.
Este sistema tan simplificado no nos sirve para una predicción real de
la temperatura atmosférica. Sin embargo, se ha hecho famoso por otra
razón: dio pie a un nuevo campo de las matemáticas llamada caos. Para
determinados parámetros del sistema, las soluciones de no parecen seguir
ningún patrón fijo, formando curvas que giran alrededor de los puntos fijos
del sistema. Éstas permanecen en una zona acotada alrededor de los puntos
fijos, pero no permanecen mucho tiempo cerca de ninguno de ellos. Por
tanto, existe una región del espacio que atrae todas las soluciones, pero la
dinámica dentro de esta región no sigue una pauta fija, ni ningún patrón
reconocible. A ésta se le ha llamado Atractor Extraño.
La característica fundamental de los sistemas caóticos es la sensibilidad
a las condiciones iniciales. Dicho sin mucha precisión, esto significa que,
dada cualquier condición inicial, siempre existirá otra condición inicial, tan
cerca de ella como queramos, cuya solución diverge de la primera.
Ejemplos de tales sistemas incluyen la atmósfera terrestre, las placas
tectónicas, los fluidos en régimen turbulento y los crecimientos de población.
Usando el método de Euler vamos a obtener algunas soluciones de este
sistema para estudiar su comportamiento.
21
Vamos a ver primero algunas soluciones correspondientes a los siguientes
parámetros:
σ = 10, ρ = 10, β =
8
3
.
Para estos parámetros no hay caos. Las soluciones numéricas muestran
que las soluciones convergen a uno de los puntos fijos a medida que el
tiempo avanza. En este caso los puntos fijos son
(0, 0, 0) ,
(√
24,
√
24, 9
)
,
(
−
√
24, −
√
24, 9
)
.
Por, ejemplo, si las condiciones iniciales son x0 = 1, y0 = 0, z0 = 2
obtenemos las soluciones que se ven en las gráficas ?? y ??. Vemos que la
solución converge al punto fijo
(√
24,
√
24, 9
)
.
Si probamos con una condición inicial más alejada, por ejemplo x0 =
1, y0 = 0, z0 = 50 la solución converge al mismo punto, como se ve en la
gráfica 1.7.
Si elegimos las condiciones iniciales x0 = −10, y0 = −1, z0 = 3 la solución
converge al punto fijo
(
−
√
24, −
√
24, 9
)
, como se ve en la figura 1.8.
El comportamiento que hemos visto en este ejemplo se mantiene mientras
el parámetro ρ se eencuentra entre los siguientes valores
1 < ρ < 24,74...
Si ρ < 1, entonces todas las soluciones convergen al punto fijo (0, 0, 0). En
cambio, si ρ > 24,74..., entonces aparecen las trayectorias caóticas.
Veamos las soluciones correspondientes a los siguientes parámetros:
σ = 10, ρ = 28, β =
8
3
.
Las proyecciones de la solución correspondiente a las condiciones iniciales
x0 = 1, y0 = 0, z0 = 1 se puede ver en las gráficas 1.9, 1.10, 1.11.
En tres dimensiones la gráfica se puede ver en la figura 1.12.
Las soluciones presentan el mismo comportamiento aunque las condiciones
iniciales sean muy diferentes. Por ejemplo, si x0 = 1, y0 = −8, z0 = 90 la
solución en el plano XZ se ve en la figura 1.13. Se ve que la solución final
forma una figura parecida, que se encuentra en la misma zona.
22
Finalmente veremos algún ejemplo de la dependencia sensible a las
condiciones iniciales.
Vamos a coger la condición inicial x0 = 1, y0 = 0,0001, z0 = 1, que se
diferencia muy poco de la condición x0 = 1, y0 = 0, z0 = 1. En la figuras 1.14,
1.15 podemos observar que las soluciones en ambos casos son distintas,
aunque se comportan de forma parecida en lo que respecta a la forma del
dibujo. Esto se ve mucho más claro si comparamos una de las variables
en distintos momentos del tiempo. En la figura 1.16 podemos ver cómo
al principio las dos soluciones son muy parecidas, pero a partir de un
determinado momento las soluciones divergen y se comportan de forma
muy distinta. Podemos comparar los valores de las dos soluciones en la
siguiente tabla:
t x0 (t) x1 (t) Diferencia: x0 (t) − x1 (t)
0,1 1,1475 1,1475 0
1 −3,7134 −3,7135 0,0001
5 −8,2256 −8,2239 −0,0017
10 7,8278 7,8793 −0,0514
12 3,2356 3,8000 −0,5644
12,05 2,9522 3,7479 −0,7957
12,2 4,9132 6,5235 −1,6103
14 5,3422 −8,4479 13,7901
20 2,9567 −11,0626 14,0193
30 4,1114 3,0029 1,1085
35 −1,3976 4,5331 −5,9307
23
Figuras
Figura 1.2: Péndulo
24
−2 0 2 4 6 8 10
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
x
dx/dt
Figura 1.3: Diagrama de fases del péndulo
1.3. El método de Heun y el método del punto medio
El método de Euler funciona, pero tiene varios inconvenientes: es un
método de baja precisión que necesita de pasos temporales muy pequeños
para alcanzar resultados aceptables, además converge lentamente hacia la
solución. Conocidas las limitaciones del método de Euler vamos a presentar
una batería de esquemas numéricos, comenzando por el método de Heun,
que mejorarán gradualmente su eficiencia. Una de las claves para diseñar
algoritmos más sofisticados es replantear el principio teórico sobre el que
25
−2 −1.5 −1 −0.5 0 0.5 1 1.5
−3
−2
−1
0
1
2
3
4
5
x
dx/dt
Figura 1.4: Péndulo con rozamiento, x0 = −2, y0 = 2
se sustenta el método de Euler (que consistía en la aproximación de las
derivadas por diferencias finitas) por otro (equivalente) que intercambie la
derivación por integración. La prueba de la existencia y unicidad para una
ecuación diferencial de primer orden se basa en su reformulación como una
ecuación integral, concretamente obtenemos el siguiente resultado.
26
0 2 4 6 8 10 12 14
−4
−2
0
2
4
6
8
10
12
14
16
x
dx/dt
Figura 1.5: Péndulo con rozamiento, x0 = 0, y0 = 15
Proposición 1.10 La solución y(t) del problema de valor inicial
y (t) = f(t, y(t)), y(t0) = y0
coincide con la solución de la ecuación integral
y(t) = y(t0) +
∫ t
t0
f(s, y(s))ds. (1.12)
27
0 5 10 15 20 25 30 35 40
−5
0
5
10
15
20
25
30
35
40
x
dx/dt
Figura 1.6: Péndulo con rozamiento, x0 = 0, y0 = 40
La prueba de este resultado es una aplicación inmediata del Teorema
Fundamental del Cálculo, que se obtiene integrando ambos términos de la
ecuación diferencial:
y(t) − y(t0) =
∫ t
t0
y (s)ds =
∫ t
t0
f(s, y(s))ds.
Este resultado sugiere reconsiderar métodos numéricos que se centren
en la resolución de la ecuación integral. Hay numerosas razones por las que
se prefiere considerar la ecuación integral (1.12) en lugar de la ecuación
diferencial. En general, la derivación tiene un comportamiento peor que
la integración; en muchas ocasiones, la derivada de funciones con buenas
propiedades pueden tener un mal carácter, en cambio, las integrales de
28
−1 0 1 2 3 4 5 6 7 8 9
0
5
10
15
20
25
30
35
40
45
50
x
z
Figura 1.7: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 50, σ = 10, ρ =
10, β = 8
3
funciones que poseen un mal comportamiento se suavizan. Por otra parte,
observemos que la ecuación integral no requiere de ninguna condición inicial
adicional.
Partiremos de la ecuación integral (1.12) en cada subintervalo [tk, tk+1]
y(tk+1) = y(tk) +
∫ tk+1
tk
f(s, y(s))ds,
de tal forma que podemos calcular el valor de la solución en el punto tk+1 a
partir del valor en tk, más la integral a lor largo del subintervalo. Obsérvese
que, en particular, si aproximamos la integral en cada subintervalo por la
regla del punto inicial
∫ tk+1
tk
f(s, u(s))ds ≈ (tk+1 − tk)f(tk, y(tk)) = hf(tk, y(tk)),
29
−10 −9 −8 −7 −6 −5 −4 −3 −2
3
4
5
6
7
8
9
10
11
12
13
x
z
Figura 1.8: Proyección XZ, x0 = −10, y0 = −1, z0 = 3, σ = 10, ρ = 10, β = 8
3
obtenemos de nuevo la aproximación numérica del método de Euler
y(tk+1) ≈ y(tk) + hf(tk, y(tk)),
lo que arroja una reinterpretación equivalente. Este punto de vista pone
en evidencia la tosquedad del método de Euler, puesto que se utiliza una
aproximación de la integral que geométricamente representa el área del
rectángulo de anchura h y altura f(tk, y(tk)), lejos ésta de ser una estimación
precisa de la integral. Es sabido por el lector que existen métodos mucho
más sofisticados de integración numérica que aplicados a este enfoque sin
duda proporcionarán algoritmos por lo menos más precisos, estaría por ver
si además serían más eficientes computacionalmente. Por el momento
comenzaremos por la aproximación numérica que proporciona el método
del trapecio, que aproxima la integral mediante el área del trapecio que
se obtiene al unir los puntos f(tk, y(tk)) y f(tk+1, y(tk+1)),
∫ tk+1
tk
f(s, y(s))ds ≈
1
2
h (f(tk, y(tk)) + f(tk+1, y(tk+1))) .
30
−20 −15 −10 −5 0 5 10 15 20 25
−30
−20
−10
0
10
20
30
x
y
Figura 1.9: Sistema de Lorenz, Proyección XY, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =
28, β = 8
3
La aproximación del valor actualizado que obtenemos en este caso es:
y(tk+1) ≈ y(tk) +
1
2
h (f(tk, y(tk)) + f(tk+1, y(tk+1))) , (1.13)
lo que da lugar a un esquema implícito, puesto que el valor actualizado
y(tk+1) aparece en los dos términos de la ecuación. El principal problema
que encontramos con este algoritmo es que si la función f es complicada
puede quedar una ecuación implícita compleja no lineal donde no sea
posible despejar explícitamente el valor y(tk+1). En ese caso debemos recurrir
a metodos numéricos de resolución de ecuaciones no lineales como el
método de Newton, etc. Otra alternativa (que se conoce como métodos
predictor-corrector) consiste en sustituir, en el lado derecho de la ecuación (1.13),
el valor y(tk+1) por una aproximación obtenida por otro método explícito,
por ejemplo el de Euler,
y(tk+1) ≈ pk+1 = y(tk) + hf(tk, y(tk)),
31
−30 −20 −10 0 10 20 30
0
10
20
30
40
50
60
y
z
Figura 1.10: Sistema de Lorenz, Proyección YZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =
28, β = 8
3
y obtenemos finalmente la aproximación
y(tk+1) ≈ uk+1 = yk +
1
2
h[f(tk, yk) + f(tk + h, pk+1)]
= yk +
1
2
h[f(tk, yk) + f(tk + h, yk + hf(tk, yk))]
El esquema numérico resultante es
uk+1 = uk +
1
2
h[f(tk, uk) + f(tk + h, uk + hf(tk, uk))],
que lo podemos desglosar es dos etapas:
pk+1 = uk + hf(tk, uk),
uk+1 = uk +
h
2
(f(tk, uk) + f(tk+1, pk+1)) .
Este esquema se conoce como el método de Heun o método de Euler
mejorado. Mediante este planteamiento hemos ganado que el método sea
32
−20 −15 −10 −5 0 5 10 15 20 25
0
10
20
30
40
50
60
x
z
Figura 1.11: Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8
3
explícito, pero ¿realmente mejoramos el orden de consistencia respecto al
método de Euler?
Ejercicio 1.1 Probar que el método de Heun es de segundo orden.
Notemos que si analizamos el error global nos aparecerá, al igual que en
el método de Euler, el sumando adicional ε
h
, donde ε es el error máximo de
redondeo en cada paso, por lo que para mantener el orden de convergencia
necesitamos que ε ≤ ch3
. El valor de h óptimo será de la forma h = Cte ∗ ε
1
3 .
Mediante la técnica utilizada para obtener el método de Heun es posible
elaborar innumerables esquemas numéricos de acuerdo a dos formas de
actuación:
Cambiando el método numérico de aproximación de la integral.
Empleando métodos explícitos diferentes para la estimación intermedia
de pk+1.
33
−20 −15 −10 −5 0 5 10 15 20 25
−40
−20
0
20
40
0
10
20
30
40
50
60
Figura 1.12: Sistema de Lorenz, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8
3
Por ejemplo, consideremos ahora la regla del punto medio, que aproxima
la integral mediante el área del rectángulo cuya altura es la imagen en el
punto medio tk + h
2
del intervalo [tk, tk+1]
∫ tk+1
tk
f(s, y(s))ds ≈ hf(tk +
h
2
, y(tk +
h
2
)).
De nuevo, estimamos el valor de y(tk + h
2
) mediante el método de Euler
y(tk +
h
2
) ≈ pk+ 1
2
= y(tk) +
1
2
hf(tk, y(tk)).
El esquema numérico resultante adopta la expresión
uk+1 = uk + hf(tk +
h
2
, uk +
1
2
hf(tk, uk)),
que se conoce como método del punto medio y es un esquema de
segundo orden (compruébese).
34
−20 −15 −10 −5 0 5 10 15 20
0
10
20
30
40
50
60
70
80
90
x
z
Figura 1.13: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ =
28, β = 8
3
Ejemplo 1.4 Resolvamos
y =
t − y
2
y (0) = 1
en el intervalo [0, 2] con h = 1 y h = 1
2
.
Solución.- La solución exacta de este problema es y (t) = t − 2 + 3e− t
2 .
Vamos a compararla con la aproximación por el método de Heun.
Solución aproximada
1) h = 1 :
35
−30 −20 −10 0 10 20 30
0
10
20
30
40
50
60
y
z
−30 −20 −10 0 10 20 30
0
10
20
30
40
50
60
y
z
Figura 1.14: Sistema de Lorenz, Proyección YZ, σ = 10, ρ = 28, β = 8
3 ,
x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1
p1 = 1 + 0−1
2
= 1
2
,
u1 = 1 + 1
2
(
0−1
2
+
1− 1
2
2
)
= 7
8
= 0,875,
p2 = 0,875 + 1−0,875
2
= 0,937 5,
u2 = 0,875 + 1
2
(1−0,875
2
+ 2−0,937 5
2
)
= 1. 171 875.
y (2) = 3e−1
= 1. 103 638,
Error = |1. 103 638 − 1. 171 875| = 0,068 237.
2)h = 0,5 :
p1 = 1 + 0,5 ∗ 0−1
2
= 0,75,
36
−20 −15 −10 −5 0 5 10 15 20 25
0
10
20
30
40
50
60
x
z
−25 −20 −15 −10 −5 0 5 10 15 20 25
0
10
20
30
40
50
60
x
z
Figura 1.15: Sistema de Lorenz, Proyección XZ, σ = 10, ρ = 28, β = 8
3 ,
x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1
u1 = 1 + 0,5
2
∗
(0−1
2
+ 0,5−0,75
2
)
= 0,843 75,
p2 = 0,843 75 + 0,5 ∗ 0,5−0,843 75
2
= 0,757 812 5,
u2 = 0,843 75 + 0,5
2
∗
(0,5−0,843 75
2
+ 1−0,757 812 5
2
)
= 0,831 054 687 5,
p3 = 0,831 054 687 5 + 0,5 ∗ 1−0,831 054 687 5
2
= 0,873 291 015 6,
u3 = 0,831 054 687 5 + 0,5
2
∗
(1−0,831 054 687 5
2
+ 1,5−0,873 291 015 6
2
)
= 0,930 511 474 6,
p4 = 0,930 511 474 6 + 0,5 ∗ 1,5−0,930 511 474 6
2
= 1. 072 883 606,
u4 = 0,930 511 474 6 + 0,5
2
∗
(1,5−0,930 511 474 6
2
+ 2−1. 072 883 606
2
)
= 1. 117 587 09.
Error=|1. 117 587 − 1. 103 638 | = 0,013 949.
37
0 5 10 15 20 25 30 35
−25
−20
−15
−10
−5
0
5
10
15
20
25
t
x
Figura 1.16: Sistema de Lorenz, σ = 10, ρ = 28, β = 8
3 ,
x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1
Comparación de los errores:
Error (h = 1)
Error (h = 0,5)
=
0,068 237
0,013 949
= 4. 9.
Consideremos ahora el sistema de ecuaciones bidimensional
x (t) = f (t, x, y) ,
y (t) = g (t, x, y) ,
x (t0) = x0, y (t0) = y0.
.
38
El método de Heun para a este sistema quedaría de la siguiente forma:
qk+1 = xk + hf (tk, xk, yk) ,
pk+1 = yk + hg (tk, xk, yk) ,
xk+1 = xk +
h
2
(f (tk, xk, yk) + f (tk+1, qk+1, pk+1)) ,
yk+1 = yk +
h
2
(g (tk, xk, yk) + g (tk+1, qk+1, pk+1)) ,
k = 0, 1, 2, ..., N − 1,
donde xk x (tk) , yk y (tk) .
En el caso general de un sistema de n ecuaciones
y1(t) = f1 (t, y1, y2, ..., yn) ,
...
yn(t) = fn (t, y1, y2, ..., yn) ,
y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn,
.
el esquema resultante sería el siguiente:
p1,k+1 = y1,k + hf1 (tk, y1,k, ..., yn,k) ,
...
pn,k+1 = yn,k + hfn (tk, y1,k, ..., yn,k) ,
y1,k+1 = y1,k +
h
2
(f1 (tk, y1,k, ..., yn,k) + f1 (tk+1, p1,k+1, ..., pn,k+1)) ,
...
yn,k+1 = yn,k +
h
2
(fn (tk, y1,k, ..., yn,k) + fn (tk+1, p1,k+1, ..., pn,k+1)) ,
k = 0, 1, 2, ..., N − 1.
Ejemplo 1.5 Resolvamos el sistema
x = x + 2y,
y = 3x + 2y
x (0) = 6, y (0) = 4,
en el intervalo [0, 0,04] con h = 0,02.
Solución.-
q1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28,
p1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,
39
x1 = 6 +
0,02
2
∗ (6 + 2 ∗ 4 + 6,28 + 2 ∗ 4,52) = 6. 293 2,
y1 = 4 +
0,02
2
∗ (3 ∗ 6 + 2 ∗ 4 + 3 ∗ 6,28 + 2 ∗ 4,52) = 4. 538 8,
q2 = 6. 293 2 + 0,02 ∗ (6. 293 2 + 2 ∗ 4. 538 8) = 6. 600 616,
p2 = 4. 538 8 + 0,02 ∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8) = 5. 097 944,
x2 = 6. 293 2 +
0,02
2
∗ (6,293 2 + 2 ∗ 4,538 8 + 6,600 616 + 2 ∗ 5. 097 944) = 6. 614 873 04,
y2 = 4. 538 8 +
0,02
2
∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8 + 3 ∗ 6. 600 616 + 2 ∗ 5. 097 944) = 5. 118 349 36.
Como la solución exacta de este problema es x (t) = 2e−t
+ 4e4t
, y (t) =
−2e−t
+ 6e4t
obtenemos que
x (0,04) = 2e−0,04
+ 4e4∗0,04
= 6. 615 622 362 ,
y (0,04) = −2e−0,04
+ 6e4∗0,04
= 5. 119 486 348.
El error sería:
Error =
√
(6. 614 873 04 − 6. 615 622 )2
+ (5. 118 349 36 − 5. 119 486)2
= 1. 361 × 10−3
.
Ejercicio 1.2 Resolver la siguiente ecuación diferencial por el método de
Heun:
y = t2
− y, y(0) = 1,
Realizar los siguientes pasos:
1. Tomar h = 0,2 y realizar dos pasos. Luego tomar h = 0,1 y realizar
cuatro pasos.
2. Comparar la solución exacta y(t) = −e−t
+t2
−2t+2 con las dos aproximaciones
en t = 0,4.
3. ¿Se comporta el error global de las aproximaciones como se espera
cuando h se divide entre dos?
(Sol: a) h = 0,2, y (0,4) 0,69488; h = 0,1, y (0,4) 0,69094; b) Error(h =
0,2)=0.0052; Error(h = 0,1)=0.00126; c) Sí)
40
Ejercicio 1.3 El modelo matemático de cierto circuito (condensador e
inductancia) es
Q + Q = sen (t) ,
Q (0) = 0, Q (0) = 0,
donde Q (t) representa la carga en el momento t.
1. Usar el método de Heun con h = 0,1 para determinar el valor de Q (0,2).
2. Calcular el error cometido sabiendo que la solución exacta es:
Q (t) = sin (t) −
1
2
t cos (t) .
(Sol: Q (0,2) 0,000998335, Q (0,2) = 0,001328, Error = 0,000 329 665 )
1.4. Métodos explícitos de Runge-Kutta
El método de Heun y el método del punto medio son casos particulares
de una familia general de métodos conocidos con el nombre de Runge-Kutta,
en honor a sus creadores Carle Runge y Martin Kutta a finales del siglo
XIX. La idea es generalizar los métodos que hemos presentado de acuerdo
al siguiente esquema numérico general:
uk+1 = uk + h
m∑
i=1
aif(tk,i, uk,i), (1.14)
donde cada tk,i denota un punto en el k-ésimo subintervalo [tk, tk+1] y uk,i ≈
y(tk,i) se interpreta como una aproximación en el punto tk,i que se suele
calcular por una fórmula similar más simple del mismo tipo. Los parámetros
ai así como los parámetros que intervienen para calcular cada aproximación
intermedia uk,i se elige de modo que el método alcance el orden de consistencia
deseado.
Desarrollemos los principios teóricos que fundamentan el método.
Supongamos que tenemos la partición t0 < t1 < · · · < tN = t0 + α, y
deseamos calcular el valor actualizado de y en el punto tk+1 basándonos
en la ecuación integral
y(tk+1) = y(tk) +
∫ tk+1
tk
f(s, y(s))ds. (1.15)
41
Consideremos una sucesión de puntos nodales en el subintervalo [tk, tk+1]
tk ≤ tk,1 ≤ tk,2 ≤ · · · ≤ tk,r ≤ tk+1,
donde cada tk,i = tk + cih con 0 ≤ ci ≤ 1, que actuarán como soporte para
las fórmulas de integración que utilicemos a lo largo del procedimiento.
Estimaremos la integral mediante una fórmula de integración sobre la
partición anterior. De acuerdo con la ecuación integral (1.15), obtenemos
una aproximación de la forma
yk+1 ≈ yk + h
r∑
i=1
aif(tk,i, yk,i),
donde ωi = hai son los pesos de la fórmula de cuadratura, y yk,i son los
valores de y en el punto tk,i. Para estimar el paso intermedio yk,i tendremos
en cuenta, de nuevo, alguna otra fórmula de integración sobre los puntos
nodales que quedan a la izquierda,
yk,i = yk +
∫ tk,i
tk
f(s, y(s))ds ≈ uk,i = yk + h
i−1∑
j=1
bijf(tk,j, yk,j).
donde hbi,j son los nuevos pesos ortorgados a los puntos tk,j con 2 ≤ j ≤ i−1.
Una vez elegidas las constantes ai, bij y ci, obtenemos el esquema explícito
recursivo:



uk,1 = uk,
uk,2 = uk + hb21f(tk,1, uk,1),
uk,3 = uk + hb31f(tk,1, uk,1) + hb32f(tk,2, uk,2),
...
...
uk,r = uk + h
∑r−1
j=1 brjf(tk,j, uk,j),
uk+1 = uk + h
∑r
i=1 aif(tk,i, uk,i), tk,i = tk + cih, 0 ≤ ci ≤ 1.
(1.16)
Cuando queremos implementarlo en la computadora, conviene reescribir el
esquema (1.16) del siguiente modo:



k1 = f(tk,1, uk,1) = f(tk + c1h, uk),
k2 = f(tk,2, uk,2) = f(tk + c2h, uk + hb21k1),
k3 = f(tk,3, uk,3) = f(tk + c3h, uk + h(b31k1 + b32k2)),
...
...
kr = f(tk,r, uk,r) = f(tk + crh, uk + h
∑r−1
j=1 brjkj),
uk+1 = uk + h (a1k1 + a2k2 + · · · + arkr) .
(1.17)
42
Utilizaremos la siguiente representación matricial para las constantes








c1 0 0 · · · 0
c2 b21 0 · · · 0
...
...
... ...
...
cr br1 br2 · · · 0
a1 a2 · · · ar








Definición 1.11 El número r se denomina número de etapas del
método.
Observación 1.12
Habitualmente la constante c1 suele ser 0, y en ese caso k1 = f(tk, uk).
La función g(h, tk, uk) del término general (1.5) para el esquema de
Runge-Kutta es:
g(h, tk, uk) = a1k1 + a2k2 + · · · + arkr.
Debido a la facilidad, flexibilidad y diversidad en cuanto en el diseño de
los esquemas numéricos de Runge-Kutta según los parámetros fijados, estos
tienen un vasto alcance en una gran variedad de ecuaciones diferenciales
ordinarias, y son los más populares y extendidos en el software computacional.
El objetivo cuando se diseña un método de Runge-Kutta es elegir las
constantes ai, bij y ci adecuadas con el mínimo número de etapas posibles
para conseguir el orden de consistencia deseado. Si queremos conseguir
orden de consistencia 2 se necesitan al menos dos etapas, mientras que
si deseamos orden 4 necesitamos elaborar un método de cuatro etapas.
Se puede probar que no existen métodos de Runge-Kutta para los que el
número de etapas sea igual al orden del método cuando el método tiene
orden de consistencia mayor que 4. Así, para un método de orden 5 se
necesitan al menos r = 6 estapas; y para orden 7 al menos 10 etapas.
Como curiosidad, el método de orden 10 con menos etapas es para r = 17.
A continuación estudiamos los más conocidos según el número de etapas
y el orden de consistencia.
43
Métodos de una etapa
La matriz general del método de una etapa es
(
c1 0
a1
)
. El esquema
numérico general es
k1 = f(tk + c1h, uk),
uk+1 = uk + ha1k1 = uk + ha1f(tk + c1h, uk),
de donde g(h, tk, yk) = a1k1 = a1f(tk + c1h, yk). Calculamos la derivada de
g(h, tk, yk) respecto de h:
∂g
∂h
(h, tk, yk) = c1
∂f
∂t
(tk, yk).
Entonces f(0)
(tk, yk) = g(0, tk, yk) cuando a1 = 1. Además f(1)
(tk, yk) = 2∂g
∂h
(0, tk, yk)
cuando c1 = 1/2. En definitiva, cuando a1 = 1 y c1 = 0 obtenemos el método
de Euler. Además, el esquema tiene orden de consistencia 2 si ∂f
∂y
= 0 (la
función f solo depende del tiempo) y c1 = 1/2.
Métodos de dos etapas
La matriz general del método es



c1 0 0
c2 b21 0
a1 a2


 .
El esquema numérico general es
k1 = f(tk + c1h, uk),
k2 = f(tk + c2h, uk + hb21k1)
= hf(tk + c2h, uk + hb21f(tk + c1h, uk),
uk+1 = uk + h(a1k1 + a2k2) = uk + a1hf(tk + c1h, uk)
+ a2hf(tk + c2h, uk + hb21f(tk + hc1, uk)).
Por tanto,
g(h, tk, yk) = a1k1 + a2k2 = a1f(tk + c1h, yk) + a2f(tk + c2h, yk + hb2,1f(tk + hc1, yk)),
Para obtener métodos de orden de consistencia 2 debemos igualar los
coeficientes de los desarrollos de Taylor, obteniendo las identidades
a1 + a2 = 1, a1c1 + a2c2 =
1
2
, a2b21 =
1
2
.
44
Este sistema tiene 5 incógnitas y tan solo 3 ecuaciones, por lo que admite
infinitas soluciones. Las soluciones particulares más conocidas son:
Método de Heun:



0 0 0
1 1 0
1/2 1/2


 de donde resulta
k1 = f(tk, uk), k2 = f(tk + h, uk + hk1),
uk+1 = uk + h(
1
2
k1 +
1
2
k2) = uk +
h
2
(f(tk, uk) + f(tk + h, uk + hf(tk, uk))) .
Método del punto medio:



0 0 0
1/2 1/2 0
0 1


, que sustituyendo en el esquema
general se obtiene
k1 = f(tk, uk), k2 = f(tk +
h
2
, uk +
h
2
k1),
uk+1 = uk + hk2 = uk + hf(tk +
h
2
, uk +
h
2
f(tk, uk)).
Se puede probar que no existen constantes tales que el orden del método
sea mayor que 2.
Métodos de más etapas
Podemos proseguir elaborando métodos y escogiendo constantes adecuadas
para obtener la consistencia de mayor orden para un mismo número de
etapas. En la práctica, los métodos de orden demasiado alto son bastantes
costosos computacionalmente debido a que hay que evaluar la función
demasiadas veces. Los métodos de Runge-Kutta de orden cuarto son unos
de los integradores de paso fijo más utilizados en Ingeniería para obtener
resultados precisos en problemas sin demasiada complejidad. Sin duda, el
método más popular cuando todavía se computaban los métodos numéricos
a mano viene dado en forma matricial por la matriz
M =







0 0 0 0 0
1/2 1/2 0 0 0
1/2 0 1/2 0 0
1 0 0 1 0
1/6 2/6 2/6 1/6







.
45
El método desarrollado queda,
k1 = f(tk, uk),
k2 = f(tk +
h
2
, uk +
h
2
k1),
k3 = f(tk +
h
2
, uk +
h
2
k2),
k4 = f(tk + h, uk + hk3)
uk+1 = uk +
h
6
(k1 + 2k2 + 2k3 + k4).
Ejemplo 1.6 Estimar el valor de la solución de la ecuación diferencial
y = t + y, y(0) = 1
en el punto t = 0,2 mediante el método de Heun de orden 2 y el método de Runge-Kutta
de orden 4 utilizando un paso igual a h = 0,2.
Finalmente, si tenemos un sistema de ecuaciones diferenciales de la
forma
x = f(t, x, y), y = g(t, x, y),
x(0) = x0, y(0) = y0,
no resulta complicado adaptar el método de Runge-Kutta:



k1 = f(tk + c1h, uk, vk),
l1 = g(tk + c1h, uk, vk),
k2 = f(tk + c2h, uk + hb21k1, vk + hb21l1),
l2 = g(tk + c2h, uk + hb21k1, vk + hb21l1),
k3 = f(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)),
l3 = g(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)),
...
...
kr = f(tk + crh, uk + h
∑r−1
i=1 briki, vk + h
∑r−1
i=1 brili),
lr = g(tk + crh, uk + h
∑r−1
i=1 briki, vk + h
∑r−1
i=1 brili),
uk+1 = uk + h(a1k1 + a2k2 + · · · + akkk),
vk+1 = vk + h(a1l1 + a2l2 + · · · + aklk).
(1.18)
La generalización a un sistema de m ecuaciones diferenciales es tediosa,
pero inmediata.
46
Ejercicio 1.4 Calcular la solución en t = 0,5 de la ecuación diferencial
y = −2(tan t)y, y(0) = 1
mediante el método de Runge-Kutta de cuarto orden usando h = 0,5 y
h = 0,25. Comparar los resultados obtenidos entre sí y con la solución exacta
y(t) = cos2
t.
Ejercicio 1.5 Encontrar una solución de un método de tres etapas que
dé lugar a un método explícito de orden 3, con c1 = 0, c2 = c3 y a2 = a3.
Ejercicio 1.6 Realizar en MatLab una rutina tal que dada una función
f(t, y), un paso h, una condición inicial y0 y un método de Runge-Kutta en
la forma matricial que lo caracteriza, ejecute el algoritmo de Runge-Kutta
N pasos.
Ejercicio 1.7 (Circuito de Chua)
dx
dt
= α
(
y − x + bx +
1
2
(a − b) (|x + 1| − |x − 1|)
)
,
dy
dt
= x − y + z,
dz
dt
= −βy.
Estudiar numéricamente (mediante el método de Runge-Kutta con h =
0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.
Ver cuándo se produce un comportamiento caótico.
Por ejemplo, el caos aparece con los siguientes parámetros:
α = 9, β =
100
7
, a =
8
7
, b =
5
7
,
x0 = 0, y0 = 0, z0 = 0,6.
En cambio, si
α = 3, β =
100
7
, a =
8
7
, b =
5
7
,
x0 = 0, y0 = 0, z0 = 0,6,
entonces las soluciones convergen a un punto fijo en espiral.
Si
α = 11, β =
100
7
, a =
8
7
, b =
5
7
,
x0 = 0, y0 = 0, z0 = 0,6,
entonces las soluciones son espirales que se van alejando del origen cada
vez más (el módulo tiende a infinito).
47
Ejercicio 1.8 (Ecuación de Duffing)
x + cx − x + x3
= A cos (ωt) .
En forma de sistema nos queda:
{
x = y,
y = x − x3
− cy + A cos (ωt) .
Estudiar numéricamente (mediante el método de Runge-Kutta con h =
0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.
Ver cuándo se produce un comportamiento caótico.
Por ejemplo, ver los siguientes casos:
1. c = A = 0. Las órbitas son trayectorias periódicas.
2. c = 0,2, A = 0. Las órbitas convergen en espiral a los puntos fijos.
3. c = 0,2, A > 0, ω = 1.
Probar con distintos valores de A : 0,2, 2, 20, 100, 300. Ver cómo el caos
aparece. Primero hay trayectorias periódicas simples, luego se hacen
más complicadas y después aparecen trayectorias caóticas.
Ejercicio 1.9 (Oscilador de Ueda)
x + cx + x3
= Asen (t) .
En forma de sistema nos queda:
{
x = y,
y = −x3
− cy + Asen (t) .
Estudiar numéricamente (mediante el método de Runge-Kutta con h =
0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.
Ver cuándo se produce un comportamiento caótico.
Por ejemplo, ver los siguientes casos:
1. c = A = 0. Las órbitas son trayectorias periódicas.
2. c = 1, A = 0. Las órbitas convergen en espiral al punto fijo (0, 0).
48
3. c = 0,05, A > 0.
Probar con distintos valores de A : 0,05, 0,4, 7,5, 20. Ver cómo el caos
aparece. Primero hay trayectorias periódicas simples, luego se hacen
más complicadas y después aparecen trayectorias caóticas.
Ejercicio 1.10 (Atractor de Rossler)



x = − (y + z) ,
y = x + 0,2y,
z = 0,2 + xz − cz.
Estudiar numéricamente (mediante el método de Runge-Kutta con h =
0,001) distintas soluciones, variando los parámetros y las condiciones iniciales.
Ver cuándo se produce un comportamiento caótico.
Por ejemplo, ver los siguientes casos:
1. c = 2,5. Las órbitas convergen a una trayectoria periódica.
2. c = 5, c = 5,7, c = 8, c = 100. Hay trayectorias caóticas.
Capítulo 2
Métodos numéricos para
ecuaciones en derivadas
parciales (EDPs)
En este capítulo se desarrollan los métodos numéricos de resolución de
la ecuaciones en derivadas parciales. En particular, se estudian los métodos
explícito, implícito y de Crank-Nicholson, analizando el orden de precisión
en cada uno de ellos según el tamaño de los pasos espacial y temporal, así
como las condiciones de estabilidad que se requieren en cada caso.
2.1. Clasificación de EDPs de segundo orden
Los modelos más importantes de ecuaciones en derivadas parciales de
segundo orden que aparecen en las aplicaciones a la Física y a la Ingeniería
se clasifican en tres tipos: elípticas, parábolicas e hiperbólicas. Dada una
EDPs de segundo orden
avxx + bvxy + cvyy + dvx + evy + fv = g, (2.1)
diremos que (2.1) es:
Elíptica: si b2
−4ac < 0. El ejemplo clásico de ecuación elíptica es el problema
de Poisson
∇2
v(x, y) = g(x, y), (x, y) ∈ Ω, v|∂Ω = h,
donde ∇2
= ∂xx + ∂yy representa el operador laplaciano.
49
50
Parabólica: si b2
− 4ac = 0. El ejemplo clásico de ecuación parabólica es la
ecuación del calor
vt(x, t) = Dvxx(x, t), D > 0,
Hiperbólica: si b2
− 4ac > 0. El ejemplo clásico de ecuación hiperbólica es
la ecuación de ondas
vtt(x, t) = c2
vxx(x, t).
2.2. Métodos numéricos para problemas parabólicos
El ejemplo clásico de una ecuación parabólica sencilla y con mayor campo
de aplicación en una dimensión es la ecuación del calor o ecuación de
difusión. El problema es encontrar la función v(x, t) (que puede representar
una temperatura, concentración de una sustancia, etc.) que satisface el
problema



∂tv(x, t) = D∂xxv(x, t), 0 < x < L, t > 0,
v(x, 0) = f(x), 0 ≤ x ≤ L, (Condiciones iniciales)
v(0, t) = α(t), v(L, t) = β(t), t ≥ 0 (Condiciones de frontera),
(2.2)
donde D es la constante de difusión y f(0) = α(0) y f(L) = β(0). La
ecuación del calor aparece en los modelos matemáticos relacionados con
problemas de difusión y Mecánica de Fluidos, y muchas de las propiedades
y comentarios que estudiaremos para ella se pueden trasladar a otras
ecuaciones parabólicas.
Esta ecuación modeliza la conducción del calor en una barra cilíndrica de
longitud L cuya sección transvesal es uniforme, pequeña y de un material
homogéneo. La función v (x, t) mide la temperatura de la barra en cada
momento del tiempo t > 0 y en cada punto del espacio x ∈ [0, L]. D > 0
es una constante que depende de las características físicas de la barra.
La solución de esta EDPs se expresa en forma de serie para ciertos tipos
de condiciones iniciales f (x). Nuestro objetivo en este tema es desarrollar
métodos numéricos que permitan obtener la solución del problema de forma
aproximada.
51
2.2.1. Método explícito
Aplicaremos las fórmulas de las diferencias finitas sobre los puntos de
una malla uniforme rectangular (xj, tn) con
xj = jh, j = 0, 1, 2, . . . , J + 1, tn = nk, n = 0, 1, 2, . . .
donde h = ∆x es el tamaño del salto en la variable x y k = ∆t es el tamaño
del paso temporal. Utilizaremos la notación vn
j = v(xj, tn) y un
j ≈ v(xj, tn)
para el valor exacto y la aproximación numérica en el punto nodal (xj, tn),
respectivamente.
Puesto que la ecuación del calor es una ecuación de evolución, una
primera aproximación es plantearla como un esquema explícito de forma
progresiva en el tiempo, de modo que podamos calcular, para todo j, los
valores un+1
j a partir de los valores en el instante de tiempo anterior un
j .
Calculemos las fórmulas en diferencias que utilizaremos para aproximar
∂tv(x, t) y ∂2
xx(x, t).
vn+1
j = v(xj, tn + k) = v(xj, tn) + k∂tv(xj, tn) +
k2
2
∂2
ttv(xj, ξn)
= vn
j + k(vt)n
j +
k2
2
vtt(xj, ξn),
donde ξn ∈ (tn, tn+1). Por tanto:
∂tv(xj, tn) = (vt)n
j =
vn+1
j − vn
j
k
+
k
2
vtt(xj, ξn). (2.3)
Por otra parte tenemos
vn
j+1 = vn
j + h(vx)n
j +
h2
2
(vxx)n
j +
h3
6
(vxxx)n
j +
h4
24
vxxxx(ξ1
j , tn),
vn
j−1 = vn
j − h(vx)n
j +
h2
2
(vxx)n
j −
h3
6
(vxxx)n
j +
h4
24
vxxxx(ξ2
j , tn).
Sumando las dos identidades precedentes y despejando (vxx)n
j obtenemos la
fórmula en diferencias centrada
(vxx)n
j =
vn
j−1 − 2vn
j + vn
j+1
h2
+
h2
12
vxxxx(ξj, tn). (2.4)
En virtud de las ecuaciones (2.3) y (2.4) llegamos a la identidad
(vt − D vxx)n
j =
vn+1
j − vn
j
k
− D
vn
j−1 − 2vn
j + vn
j+1
h2
+ Rn
j , (2.5)
donde
Rn
j =
k2
2
vtt(xj, ξn) −
h2
12
vxxxx(ξj, tn) = O(k) + O(h2
).
52
Teniendo en cuenta que v satisface la ecuacion (2.2) y despreciando los
términos O(h2
) y O(k), la fórmula anterior sugiere el esquema en diferencias
finitas:
un+1
j − un
j
k
=
D
(
un
j−1 − 2un
j + un
j+1
)
h2
.
Observación 2.1 Si v(x, t) es una solución de la ecuación en derivadas
parciales (2.2) y, por consiguiente, el lado izquierdo de la ecuación (2.5) se
anula, entonces v(x, t) satisface la ecuación en diferencias en primer orden
respecto de k y en segundo orden respecto de h. Por tanto, la ecuación (2.5)
muestra la medida de aproximación de la ecuación en diferencias finitas a
la ecuación en derivadas parciales (2.2). Pero debemos avisar que esto, en
general, no es una medida de aproximación de la solución de la ecuación en
diferencias finitas a la solución de la ecuación en derivadas parciales, sino
que para ello se necesitan condiciones adicionales que presentaremos más
adelante cuando realicemos el análisis del error.
Podemos despejar un+1
j explícitamente en términos de los valores en el
paso temporal anterior
un+1
j = un
j +
Dk
h2
(un
j−1 − 2un
j + un
j+1) = run
j−1 + (1 − 2r)un
j + run
j+1,
donde r = Dk
h2 , j = 1, . . . , J y n = 0, 1, 2, . . .. Finalmente, imponiendo las
condiciones iniciales y las condiciones de frontera queda la ecuación en
diferencias finitas:



un+1
j = run
j−1 + (1 − 2r)un
j + run
j+1, j = 1, 2, . . . , J, n = 0, 1, 2, . . . ,
u0
j = f(xj), j = 0, 1, . . . , J + 1,
un
0 = α(tn) = αn
, un
J+1 = β(tn) = βn
, ∀n = 0, 1, 2, . . . .
(2.6)
Matricialmente podemos escribir el sistema recurrente anterior como










un+1
1
un+1
2
un+1
3
...
un+1
J−1
un+1
J










=











1 − 2r r 0 · · · 0 0
r 1 − 2r r · · · 0 0
0 r 1 − 2r r
...
...
...
...
...
...
...
...
0 0 · · · r 1 − 2r r
0 0 · · · · · · r 1 − 2r





















un
1
un
2
un
3
...
un
J−1
un
J










+










rαn
0
0
...
0
rβn










,
que en forma compacta lo expresaremos por
u(n+1)
= A · u(n)
+ b(n)
,
53
donde u(n)
, b(n)
∈ RJ×1
y A ∈ RJ×J
. Obsérvese que la matriz A de coeficientes
del sistema recursivo es tridiagonal.
Ejemplo 2.1 Hallar la solución de la ecuación del calor en el intervalo [0, T] = [0, 10]
para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y que
v (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1.
Solución.-
1) t = 0,1 :
u1
1 = 0 + 0,1
4
(0 − 2 ∗ 0 + 100) = 2. 5,
u1
2 = 0 + 0,1
4
(0 − 2 ∗ 0 + 0) = 0,
u1
3 = 0 + 0,1
4
(0 − 2 ∗ 0 + 0) = 0,
u1
4 = 0 + 0,1
4
(50 − 2 ∗ 0 + 0) = 1. 25.
2) t = 0,2 :
u2
1 = 2,5 + 0,1
4
(0 − 2 ∗ 2,5 + 100) = 4. 875,
u2
2 = 0 + 0,1
4
(0 − 2 ∗ 0 + 2,5) = 0,062 5,
u2
3 = 0 + 0,1
4
(1,25 − 2 ∗ 0 + 0) = 0,031 25,
u2
4 = 1,25 + 0,1
4
(50 − 2 ∗ 1,25 + 0) = 2. 437 5.
En el paso 99 obtenemos u99
= (100, 68,5809, 45,8036, 36,3011, 39,3871, 50,0000).
De aquí:
100) t = 10 :
u100
1 = 68,5809 + 0,1
4
(45,8036 − 2 ∗ 68,5809 + 100) = 68. 796 9,
u100
2 = 45,8036 + 0,1
4
(36,3011 − 2 ∗ 45,8036 + 68,5809) = 46. 135 4,
u100
3 = 36,3011 + 0,1
4
(39,3871 − 2 ∗ 36,3011 + 45,8036) = 36. 615 8,
u100
4 = 39,3871 + 0,1
4
(36,3011 − 2 ∗ 39,3871 + 50) = 39. 575 2.
La solución, a medida que el tiempo tiende a infinito converge a la recta
que une los puntos de la frontera (0, 100) y (10, 50). En la siguiente tabla
y gráficos podemos ver las soluciones numéricas correspondientes a varios
momentos del tiempo:
54
2 4 6 8 10
20
40
60
80
100
Figura 2.1: Ecuación del calor
x/t 0,1 5 10 50 100 150
0 100 100 100 100 100 100
2 2,5 53,4341 68. 796 9 89,5523 89,9963 89,99997
4 0 24,7168 46. 135 4 79,2755 79,9940 79,99995
6 0 17,4521 36. 615 8 69,2755 69,9940 69,99995
8 1,25 27,9807 39. 575 2 59,5523 59,9963 59,99997
10 50 50 50 50 50 50
2 4 6 8 10
20
40
60
80
100
Figura 2.2: Ecuación del calor
55
En la siguiente tabla tenemos los resultados (para el momento T = 10)
de aplicar el método con distintos pasos:
x h = 0,5, k = 0,1 h = 1, k = 0,5 h = 2, k = 0,1
0 100 100 100
2 68,9029 69,9181 68. 796 9
4 46,1479 47,6968 46. 135 4
6 36,4898 37,9302 36. 615 8
8 39,456 40,2958 39. 575 2
10 50 50 50
x h = 2, k = 2 h = 1, k = 1
0 100 100
2 71,875 100150
4 48,4375 99150
6 40,6250 71100
8 40,6250 52850
10 50 50
Vemos que en el caso de la última columna los resultados están muy
lejos de los correctos. En la siguiente tabla podemos ver que un pequeño
desfase en el cumplimiento de la condición tiene grandes consecuencias en
los resultados:
x
h = 0,5, k = 0,13
T = 10,01
h = 0,5, k = 0,125
0 100 100
2 13,5211 69,070
4 −39,761 46,405
6 −45,191 36,7316
8 −9,085 39,598
10 50 50
2.2.2. Método implícito
Los algoritmos implícitos se emplean para evitar los problemas de estabilidad
que hemos visto en el caso anterior. Estos permiten utilizar pasos espaciales
56
pequeños (para obtener mejor precisión) sin necesidad de usar un paso
temporal excesivamente pequeño.
Las aproximaciones que usaremos para las derivadas serán similares a
las de antes. La diferencia estriba en que la aproximación la realizaremos
en el punto (xj, tn+1). Para la derivada temporal utilizaremos la diferencia
regresiva:
vn
j = v(xj, tn+1 − k) = vn+1
j − k(vt)n+1
j +
k2
2
(vtt)(xj, ξn),
donde ξn ∈ (tn, tn+1). Entonces,
(vt)n+1
j =
vn+1
j − vn
j
k
+
k
2
vtt(xj, ξn).
Para la aproximación de la derivada segunda espacial se utilizará de nuevo
la diferencia central, pero evaluada en el punto (xj, tn+1), esto es,
(vxx)n+1
j =
vn+1
j−1 − 2vn+1
j + vn+1
j+1
h2
+
h2
12
vxxxx(ξj, tn+1).
Así pues, obtenemos
(vt − D vxx)n+1
j =
vn+1
j − vn
j
k
− D
vn+1
j−1 − 2vn+1
j + vn+1
j+1
h2
+ O(k) + O(h2
). (2.7)
Si tenemos en cuenta que v satisface la ecuacion (2.2) y despeciamos los
términos O(h2
) y O(k), la fórmula anterior sugiere el esquema en diferencias
finitas
un+1
j − un
j
k
=
D
(
un+1
j−1 − 2un+1
j + un+1
j+1
)
h2
.
Mediante cálculos similares al esquema explícito, llegamos a la siguiente
ecuación en diferencias implícita:



−run+1
j−1 + (1 + 2r)un+1
j − run+1
j+1 = un
j , j = 1, 2, . . . , J, n = 0, 1, 2, . . . ,
u0
j = f(xj), j = 0, 1, . . . , J + 1,
un
0 = α(tn) = αn
, un
J+1 = β(tn) = βn
, ∀n = 0, 1, 2, . . . .
(2.8)
Al escribir esta ecuación en forma matricial obtenemos











1 + 2r −r 0 · · · 0 0
−r 1 + 2r −r · · · 0 0
0 −r 1 + 2r −r
...
...
...
...
...
...
...
...
0 0 · · · −r 1 + 2r −r
0 0 · · · · · · −r 1 + 2r





















un+1
1
un+1
2
un+1
3
...
un+1
J−1
un+1
J










=










un
1
un
2
un
3
...
un
J−1
un
J










+










r(αn+1
)
0
0
...
0
r(βn+1
)










57
que la escribiremos por Q · u(n+1)
= u(n)
+ b(n+1)
.
Vemos pues que en cada paso n este método requiere un número mayor
de operaciones que en el algoritmo explícito, ya que tenemos que resolver un
sistema de ecuaciones. Sin embargo, es importante observar que la matriz
Q es tridiagonal, lo que permite resolver el sistema de forma muy eficiente.
Este tipo de sistemas requiere una cantidad de operaciones de orden O (J),
muy inferior al caso general, donde se necesita efectuar operaciones de
orden O (J3
) . Por tanto, el incremento en el número de operaciones por paso
va a ser pequeño. Además, como veremos más adelante, este incremento
en la cantidad de operaciones se ve ampliamente compensado por el hecho
de que no vamos a necesitar imponer un paso temporal pequeño, por lo
que el cómputo global de operaciones va a resultar mejor que en el método
explícito.
Un aspecto importante es saber si el sistema de ecuaciones obtenido
tiene una única solución. Eso lo sabremos al estudiar los valores propios de
la matriz Q, que son todos positivos. Por tanto, Q es invertible, el sistema
tiene una única solución y el método se puede implementar correctamente.
Ejemplo 2.2 Hallar la solución de la ecuación del calor en el intervalo [0, T] = [0, 10]
para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y que
v (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1.
Solución.
Tenemos que r = 0,1
4
= 0,025, 1 + 2r = 1,05, uj
0 = 100, uj
5 = 50, r ∗ uj
0 = 2,5,
r ∗ uj
5 = 1,25.
1) t = 0,1 :





1,05 −0,025 0 0
−0,025 1,05 −0,025 0
0 −0,025 1,05 −0,025
0 0 −0,025 1,05










u1
1
u1
2
u2
3
u1
4





=





2,5
0
0
1,25





,





u1
1
u1
2
u2
3
u1
4





=





2. 382 32
5. 742 97 × 10−2
2. 972 89 × 10−2
1. 191 18





.
Observamos que, a diferencia del método explícito, todos los valores de u han cambiado
y son distintos de cero ya en la primera iterada.
58
2) t = 0,2 :





1,05 −0,025 0 0
−0,025 1,05 −0,025 0
0 −0,025 1,05 −0,025
0 0 −0,025 1,05










u1
1
u1
2
u2
3
u1
4





=





4. 882 32
0,057 429 7
0,029 728 9
2. 441 18





,





u1
1
u1
2
u2
3
u1
4





=





4. 653 82
0,167 59
8. 770 87 × 10−2
2. 327 02





.
En el paso 99 obtenemos u99
= (100, 68,3262, 45,47296, 36,0324, 39,23398, 50,0000). De
aquí:
100) t = 10





1,05 −0,025 0 0
−0,025 1,05 −0,025 0
0 −0,025 1,05 −0,025
0 0 −0,025 1,05










u1
1
u1
2
u2
3
u1
4





=





70. 826 2
45. 472 96
36. 032 4
40. 483 98





,





u1
1
u1
2
u2
3
u1
4





=





68. 544 1
45. 804 9
36. 345 8
39. 421 5





.
Al igual que en el anterior algoritmo, resumimos en la siguiente tabla las soluciones
numéricas correspondientes a varios momentos del tiempo:
x/t 0,1 5 10 50 100 150
0 100 100 100 100 100 100
2 2. 382 32 52,9651 68. 544 1 89,5314 89,99595 89,99997
4 5. 742 97 × 10−2
24,5002 45. 804 9 79,2417 79,99345 79,99994
6 2. 972 89 × 10−2
17,3798 36. 345 8 69,2417 69,99345 69,99994
8 1. 191 18 27,8062 39. 421 5 59,5313 59,99595 59,99997
10 50 50 50 50 50 50
Los resultados son similares a los obtenidos con el método explícito.
59
La gran ventaja de este método en relación al explícito reside en que es estable para
valores cualesquiera de k y h. Además, el algoritmo es convergente con la misma rapidez
que el algoritmo explícito, es decir, de orden O(k + h2
). Por tanto, podemos reducir el
tamaño del paso h, y así obtener mejor precisión, sin necesidad de utilizar valores excesi-
vamente pequeños de k. De esta forma conseguimos una buena precisión sin aumentar de
forma inaceptable el número de operaciones.
Veamos ahora qué resultados se obtienen con los pasos h = 1, k = 1 y h = 0,5,
k = 0,13 :
x
h = 0,5, k = 0,13
T = 10,01
h = 1, k = 1
0 100 100
2 68,6343 67,4761
4 45,7749 44,2870
6 36,1806 34,9968
8 39,2908 38,6295
10 50 50
A diferencia del método explícito, con estos parámetros obtenemos
resultados aceptables.
Aunque este método presenta claras ventajas con respecto al anterior
sigue sin ser un método completamente satisfactorio. La razón reside en
que, al ser el orden de convergencia O(k + h2
), predomina el error temporal
sobre el espacial (al tener k menor orden), por lo que de poco nos sirve
disminuir el paso h con el objetivo de obtener mejor precisión. Fijémonos
en que para conseguir precisión h2
debemos escoger k ∼ h2
, con lo que nos
aparece el mismo problema que en el algoritmo explícito. Veamos pues un
método que no adolece de ninguno de estos problemas.
2.2.3. Método de Crank-Nicholson
En el método anterior hemos apreciado que el error en el discretizado era
de primer orden en k y de segundo orden en h. En este epígrafe trataremos
de encontrar un método que mejore el anterior a segundo orden respecto de
k. Una idea para alcanzar este objetivo podría ser aproximar por la fórmula
de diferencia central de dos puntos la derivada temporal
(vt)n
j =
vn+1
j − vn−1
j
2k
+ O(k2
).
60
La idea expuesta parece buena, pero desafortunadamente conduce a un
método numérico que es siempre inestable, por lo que no ha de utilizarse
nunca. Parece que la diferencia progresiva es la más adecuada, pero ésta se
puede ver también como una diferencia centrada en el punto intermedio,
esto es,
(vt)
n+ 1
2
j = vt(xj, tn +
k
2
) =
vn+1
j − vn
j
k
+ O(
k2
4
).
Ahora el problema reside en aproximar la derivada segunda espacial en
este punto intermedio tn + k
2
. Estimaremos este valor utilizando una mezcla
ponderada de la derivada segunda en los nodos (xj, tn) y (xj, tn+1),
(vxx)
n+ 1
2
j = vxx(xj, tn +
k
2
) ≈ (1 − θ)vxx(xj, tn) + θvxx(xj, tn+1),
≈ (1 − θ)
vn
j−1 − 2vn
j + vn
j+1
h2
+ θ
vn+1
j−1 − 2vn+1
j + vn+1
j+1
h2
,
donde θ ∈ [0, 1].
En definitiva la ecuación en derivadas parciales (2.2) se discretiza en el
punto (xj, tn + k/2) mediante el esquema numérico
un+1
− un
j
k
= D(1 − θ)
un
j−1 − 2un
j + un
j+1
h2
+ Dθ
un+1
j−1 − 2un+1
j + un+1
j+1
h2
.
Se puede probar que cuando θ = 1/2, el error en la discretización (error de
truncación) es de orden 2 en la variable temporal y de orden 2 en la variable
espacial, esto es, O(k2
+ h2
).
En ese caso el método se denomina método de Crank-Nicolson y
adquiere al forma
2(un+1
j − un
j ) = D
k
h2
[(un
j−1 − 2un
j + un
j+1) + (un+1
j−1 − 2un+1
j + un+1
j+1 )],
reordenando términos e imponiendo las condiciones iniciales y de frontera
obtenemos el esquema numérico



−run+1
j−1 + 2(1 + r)un+1
j − run+1
j+1 = run
j−1 + 2(1 − r)un
j + run
j+1, j = 1, . . . , J,
un+1
0 = αn+1
, un+1
J+1 = βn+1
, n ≥ 0, u0
j = fj, j = 0, 1, . . . , J, J + 1.
(2.9)
Matricialmente, el esquema anterior se escribe
61











2(1 + r) −r 0 · · · 0 0
−r 2(1 + r) −r · · · 0 0
0 −r 2(1 + r) −r
...
...
...
...
... ... ...
...
0 0 · · · −r 2(1 + r) −r
0 0 · · · · · · −r 2(1 + r)





















un+1
1
un+1
2
un+1
3
...
un+1
J−1
un+1
J










=











2(1 − r) r 0 · · · 0 0
r 2(1 − r) r · · · 0 0
0 r 2(1 − r) r
...
...
...
...
...
...
...
...
0 0 · · · r 2(1 − r) r
0 0 · · · · · · r 2(1 − r)





















un
1
un
2
un
3
...
un
J−1
un
J










+










r(αn
+ αn+1
)
0
0
...
0
r(βn
+ βn+1
)










,
que de forma compacta se reescribe como
Q · u(n+1)
= Q1 · u(n)
+ c(n)
.
2.3. Estabilidad, consistencia y convergencia
Sea u(n)
= (un
1 , un
2 , . . . , un
J )T
los valores nodales en el instante tn que se
obtienen al hacer correr un cierto esquema numérico
u(n+1)
= Au(n)
+ b(n)
(2.10)
para obtener una aproximación numérica de una EDPs. Consideremos
v(n)
= (vn
1 , . . . , vn
J )T
los valores nodales en el tiempo tn de la solución exacta
y denotemos por e(n)
= u(n)
− v(n)
el error cometido en la aproximación
numérica. Diremos que el método numérico es estable cuando Am
esté
uniformemente acotada para todo k y m verificando mk ≤ T. En otras
palabras, cuando la diferencia entre los valores aproximados y los reales
permanezcan acotados en todo nivel del tiempo.
El que un esquema numérico sea consistente con un problema de
contorno significa, que para pasos en la discretización suficientemente
pequeños, la solución exacta del problema verifica el esquema numérico con
un error tan pequeño como se desee. Finalmente, para que un esquema sea
62
convergente se debe verificar que para una discretización suficientemente
fina, el error en
j en cada nodo pueda hacerse tan pequeño como se quiera
en cualquier paso del tiempo.
Definición 2.2 Un esquema en diferencias finitas de la
forma (2.10) que aproxima a una ecuación diferencial en derivadas
parciales es un esquema convergente en el tiempo t si
v(n)
− u(n)
→ 0,
cuando h, k → 0, siempre y cuando (n + 1)k → t. Diremos que la
convergencia es de orden (p, q) si
v(n)
− u(n)
= O(hp
) + O(kq
).
Definición 2.3 Un esquema en diferencias finitas de la
forma (2.10) es consistente a una ecuación diferencial en derivadas
parciales si la solución v(x, t) satisface
v(n+1)
= Av(n)
+ b(n)
+ kτ(n)
, donde τ(n)
→ 0,
cuando h, k → 0. Además, se dice que es consistente de orden (p, q)
si
τ(n)
= O(hp
) + O(kq
).
La cantidad τ(n)
se denomina error de truncamiento o error de
consistencia.
Observación 2.4 Tanto en la definición convergencia como en la de
consistencia, la norma · que utilizamos cambia conforme el paso h es
más pequeño, puesto que el espacio de vectores nodales crece en dimensión.
63
Definición 2.5 Diremos que un esquema numérico de la
forma (2.10) es estable si Am
≤ C, para todo k y n con mk ≤ T.
Consideremos un esquema en diferencias finitas dado matricialmente
por (2.10)
u(n+1)
= Au(n)
+ b(n)
.
Supongamos que v = v(x, t) es una solución exacta de ecuación (2.2) que
satisface la ecuación anterior salvo por un término (error residual) que
denotaremos por E(n)
,
v(n+1)
= Av(n)
+ b(n)
+ E(n)
.
Restando las dos ecuaciones anteriores obtenemos
v(n+1)
− u(n+1)
= A(v(n)
− u(n)
) + E(n)
.
Definimos el error global e(n)
= v(n)
− u(n)
, entonces:
e(n+1)
= Ae(n)
+ E(n)
= A(Ae(n−1)
+ E(n−1)
) + E(n)
= A2
e(n−1)
+ AE(n−1)
+ E(n)
= . . . . . .
= A(n+1)
e(0)
+
n∑
m=0
Am
E(n−m)
.
Asumiremos dos condiciones: que no hay error inicial (e(0)
= 0), y que
la norma de las potencias m-ésimas de la matriz A están uniformemente
acotada, esto es, Am
≤ C (estabilidad):
e(n+1)
=
n∑
m=0
Am
E(n−m)
≤
n∑
m=0
Am
E(n−m)
≤ C
n∑
m=0
E(m)
.
Supongamos que nuestro esquema en diferencias finitas es consistente de
orden (p, q) con la EDPs. Entonces E(m)
= kτ(m)
, y para cada m = 0, 1, . . . , n
64
podemos encontrar una constante Km verificando τ(m)
≤ Km(hp
+ kq
).
Consideremos K(t) = m´ax0≤m≤n Km. Por la propia construcción, se verifica
que τ(m)
≤ K(t) para todo 0 ≤ m ≤ n, de donde concluimos:
e(n+1)
≤ Ck
n∑
m=0
τ(m)
≤ Ck(n + 1)K(t)(hp
+ kq
).
Pero cuando k → 0 entonces k(n+1) → t, y así conseguimos convergencia de
orde (p, q). En definitiva, hemos probado parcialmente el célebre teorema
de Lax, que enunciamos de manera simplificada.
Teorema 2.6 (Lax) Un esquema numérico en diferencias finitas
del tipo (2.10) consistente a una EDPs es convergente si, y solo si,
es estable.
Apéndice A
Analisis numérico matricial
A.1. Normas vectoriales
Para introducir nociones de consistencia y convergencia es necesario
utilizar normas vectoriales con la finalidad de medir el error de la aproximación.
Definición A.1 Una norma en un espacio vectorial real V es una
aplicación
· : V → R
verificando:
(1) u ≥ 0 para todo u ∈ V , y u = 0 si, y solo si, u = 0.
(Positividad).
(2) λu = |λ| u , para todo λ ∈ R y u ∈ V . (Homogeneidad).
(3) u+v ≤ u + v , para todo u, v ∈ V . (Desigualdad Triangular).
Para nuestros propósitos, consideraremos el espacio vectorial V = Rm×1
y definiremos las normas más utilizadas para tema que nos ocupa. Una
elección común es la norma del supremo (o norma del infinito), denotada
por · ∞:
u ∞ = sup
1≤i≤m
|ui|.
65
66
Es fácil comprobar que se verfican todas las propiedades requeridas. En la
práctica es muy valioso obtener una cota de la norma del supremo, puesto
que en ese caso tenemos acotadas todas las componentes del error por
ella. Para algunos problemas, sin embargo, puede ser más apropiado y fácil
de calcular cotas para otras normas. Son frecuentes las siguientes:
u 1 =
m∑
i=1
|ui|, (1-norma)
u 2 =
m∑
i=1
|ui|2, (2-norma o norma euclídea)
Ellos son casos particulares de una familia general de p-normas, definidas
por
u p =
( m∑
i=1
|ui|p
)1/p
.
La norma del supremo se obtiene cuando hacemos tender p → ∞ de la
p-norma.
Cuando se trata de comparar dos vectores, uno que representa los valores
nodales exactos de una función, y otro que representa valores aproximados,
(donde los nodos están separados uniformemente por una longitud h > 0),
es mucho más apropiado utilizar la norma 2,h definida por
u 2,h = h
m∑
i=1
|ui|2.
Un hecho importante que relaciona todas estas normas es que son equivalentes.
Definición A.2 Dos normas · y · ∗ se dice que son equivalentes
si existen constantes a, b > 0 tales que
a u ≤ u ∗ ≤ b u , para todo u ∈ Rm×1
De manera informal, la equivalencia viene a decir que si una sucesión de
vectores converge a 0 respecto de una norma cualquiera de ellas, entonces la
67
sucesión tambien converge a 0 respecto de todas las demás, y si una cierta
cantidad está acotada bajo una norma, automáticamente está acotada bajo
todas las demás normas equivalentes (quizás cambie la cota). De hecho,
en dimensión finita, todas las normas son equivalentes.
A.2. Normas matriciales
Proposición A.3 Sea · : Rm×1
→ R una norma vectorial cualquiera
y definamos con el mismo nombre la aplicación
· : Rm×m
−→ R
A A := sup
u∈Rm×1
Au
u
(A.1)
Entonces · es una norma definida en el conjunto de las matrices
cuadradas Rm×m
. Además se verifican las siguientes propiedades:
(a) Au ≤ A u para todo A ∈ Rm×m
y u ∈ Rm×1
.
(b) AB ≤ A B para todo A, B ∈ Rm×m
.
Definición A.4 Cualquier norma · : Rm×m
→ R inducida por una
norma vectorial mediante (A.1) se denomina norma matricial.
Definimos el radio espectral de una matriz A como
ρ(A) = m´ax
1≤j≤m
{|λj|} ,
donde λj son los valores propios de A.
68
Proposición A.5 Si ρ(A) denota el radio espectral de una matriz A,
entonces para cualquier norma matricial · se verifica la desigualdad
ρ(A) ≤ A .
Prueba. El radio espectral se define como el m´ax {|λ1|, . . . , |λm|}, donde λi
son los valores propios de A. Sea u ∈ Rm×1
es vector propio asociado a un
valor propio λi, entonces
|λi| u = λiu = Au ≤ A u .
Dividiendo por u en la desigualdad anterior obtenemos que |λi| ≤ A
para todo i ∈ {1, . . . , m} y, por tanto,
ρ(A) = m´ax {|λi|} ≤ A
.
Proposición A.6 Para las normas vectoriales · 1, · ∞ y · 2
obtenemos las siguientes normas matriciales:
(a) A 1 = m´ax1≤j≤m
∑m
i=1 |aij|.
(b) A ∞ = m´ax1≤i≤m
∑m
j=1 |aij|.
(c) A 2 =
√
ρ(AT A).
69
Teorema A.7 Consideremos el sistema lineal recursivo
u(n+1)
= A · u(n)
. (A.2)
Son equivalentes:
(I) La sucesión de vectores u(n)
está uniformemente acotada en
norma para cualquier condición inicial u(0)
,
u(n)
≤ C1(= cte), para todo n ∈ N, u(0)
∈ Rm×1
.
(II) Las potencias de A están uniformemente acotadas,
Am
≤ C2(= cte), para todo m ∈ N.
En las condiciones equivalentes del teorema anterior, diremos que el
sistema recursivo (o la matriz A) es estable.
Teorema A.8 Si el radio espectral verifica ρ(A) ≤ 1, y A no tiene
valores propios defectivos (esto es, su multiplicidad algebraica es
diferente a la multiplicidad geométrica) de módulo 1, entonces la
matriz A es estable.
70
Teorema A.9 Una matriz tridiagonal de dimensión m × m de la
forma
T =











b c 0 · · · 0 0
a b c · · · 0 0
0 a b c
...
...
...
...
...
...
...
...
0 0 · · · a b c
0 0 · · · · · · a b











,
tiene valores propios
λj = b + 2c
√
a
c
cos(
πj
m + 1
), j = 1, 2, . . . , m.

Contenu connexe

Tendances

Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...
Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...
Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...Oscar Lopez
 
Ejercicios resueltos edo exactas
Ejercicios resueltos edo exactasEjercicios resueltos edo exactas
Ejercicios resueltos edo exactasYerikson Huz
 
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)Yerikson Huz
 
Ejercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasEjercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasYerikson Huz
 
Ejercicios sobre Transformada de Laplace
Ejercicios sobre Transformada de LaplaceEjercicios sobre Transformada de Laplace
Ejercicios sobre Transformada de LaplaceJeickson Sulbaran
 
Ecuaciones diferenciales homogeneas
Ecuaciones diferenciales homogeneasEcuaciones diferenciales homogeneas
Ecuaciones diferenciales homogeneasAlexCoeto
 
265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)Manuel Miranda
 
Solucionario ecuaciones diferenciales
Solucionario ecuaciones diferencialesSolucionario ecuaciones diferenciales
Solucionario ecuaciones diferencialesDaniel Mg
 
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIORTema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIORfederico paniagua
 
Solucionario de dennis g zill ecuaciones diferenciales
Solucionario de dennis g zill   ecuaciones diferencialesSolucionario de dennis g zill   ecuaciones diferenciales
Solucionario de dennis g zill ecuaciones diferencialesjhonpablo8830
 
Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Xavier Davias
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Diego Salazar
 
Que es el wronskiano
Que es el wronskianoQue es el wronskiano
Que es el wronskianoEIYSC
 
Solucionario ecuaciones2
Solucionario ecuaciones2Solucionario ecuaciones2
Solucionario ecuaciones2ERICK CONDE
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5thomasbustos
 
Transformada de laplace (tablas)
Transformada de laplace (tablas)Transformada de laplace (tablas)
Transformada de laplace (tablas)MateoLeonidez
 
Formulas integrales
Formulas integralesFormulas integrales
Formulas integralesFabian Efe
 

Tendances (20)

Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...
Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...
Solucionario de ejercicios y problemas de ecuaciones diferenciales ordinarias...
 
Ejercicios resueltos edo exactas
Ejercicios resueltos edo exactasEjercicios resueltos edo exactas
Ejercicios resueltos edo exactas
 
Formulario de termodinámica I
Formulario de termodinámica IFormulario de termodinámica I
Formulario de termodinámica I
 
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
Ecuaciones diferenciales lineales de primer orden y aplicaciones(tema 1)
 
Ejercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasEjercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneas
 
Ejercicios sobre Transformada de Laplace
Ejercicios sobre Transformada de LaplaceEjercicios sobre Transformada de Laplace
Ejercicios sobre Transformada de Laplace
 
Ecuaciones diferenciales homogeneas
Ecuaciones diferenciales homogeneasEcuaciones diferenciales homogeneas
Ecuaciones diferenciales homogeneas
 
265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)
 
Solucionario ecuaciones diferenciales
Solucionario ecuaciones diferencialesSolucionario ecuaciones diferenciales
Solucionario ecuaciones diferenciales
 
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIORTema 2 	ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
Tema 2 ECUACIONES DIFERENCIALES LINEALES DE ORDEN SUPERIOR
 
Solucionario de dennis g zill ecuaciones diferenciales
Solucionario de dennis g zill   ecuaciones diferencialesSolucionario de dennis g zill   ecuaciones diferenciales
Solucionario de dennis g zill ecuaciones diferenciales
 
Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano
 
Que es el wronskiano
Que es el wronskianoQue es el wronskiano
Que es el wronskiano
 
Solucionario ecuaciones2
Solucionario ecuaciones2Solucionario ecuaciones2
Solucionario ecuaciones2
 
Ejercicios unidad 5
Ejercicios unidad 5Ejercicios unidad 5
Ejercicios unidad 5
 
ejercicios-resueltos-interpolacion-polinomial
ejercicios-resueltos-interpolacion-polinomialejercicios-resueltos-interpolacion-polinomial
ejercicios-resueltos-interpolacion-polinomial
 
Transformada de laplace (tablas)
Transformada de laplace (tablas)Transformada de laplace (tablas)
Transformada de laplace (tablas)
 
Transformada de una Derivada
Transformada de una DerivadaTransformada de una Derivada
Transformada de una Derivada
 
Formulas integrales
Formulas integralesFormulas integrales
Formulas integrales
 

En vedette

MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...
MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...
MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...Marco Antonio
 
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...Carlos Aguilar
 
Inroduccion Algebra lineal Howard Anton 5ta. Edicion
Inroduccion Algebra lineal Howard Anton 5ta. EdicionInroduccion Algebra lineal Howard Anton 5ta. Edicion
Inroduccion Algebra lineal Howard Anton 5ta. EdicionErwin Navarro
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015aJoanny Ibarbia Pardo
 
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingeniería
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingenieríaEcuación diferencial de transferencia de calor y sus aplicaciones en ingeniería
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingenieríajalexanderc
 
Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor Laura Nitola
 

En vedette (6)

MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...
MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...
MÉTODO DE RUNGE KUTTA DE 4 ORDEN PARA RESOLVER UNA ECUACIÓN DIFERENCIAL DE SE...
 
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...
Solución de Ecuaciones Diferenciales Ordinarias por los Métodos de Euler, Run...
 
Inroduccion Algebra lineal Howard Anton 5ta. Edicion
Inroduccion Algebra lineal Howard Anton 5ta. EdicionInroduccion Algebra lineal Howard Anton 5ta. Edicion
Inroduccion Algebra lineal Howard Anton 5ta. Edicion
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015a
 
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingeniería
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingenieríaEcuación diferencial de transferencia de calor y sus aplicaciones en ingeniería
Ecuación diferencial de transferencia de calor y sus aplicaciones en ingeniería
 
Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor Deducciones y demostraciones - Transferencia de Calor
Deducciones y demostraciones - Transferencia de Calor
 

Similaire à Métodos numéricos para ecuaciones diferenciales ordinarias

Metodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesMetodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesDantalian Gremory
 
“método de euler y runge kutta”
“método de euler y runge kutta”“método de euler y runge kutta”
“método de euler y runge kutta”Astorgo
 
Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales Kike Prieto
 
Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)Armany1
 
Ecuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasEcuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasKike Prieto
 
Ecuaciones Diferenciales Ordinarias.pptx
Ecuaciones Diferenciales Ordinarias.pptxEcuaciones Diferenciales Ordinarias.pptx
Ecuaciones Diferenciales Ordinarias.pptxAUGUSTOBOURGEAT
 
Metodo de ecuaciones diferenciales
Metodo de ecuaciones diferencialesMetodo de ecuaciones diferenciales
Metodo de ecuaciones diferencialesJoonser
 
Mtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalMtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalAmbarS
 
Mtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalMtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalAmbarS
 
Solucion numerica de ecuaciones diferenciales ordinarias 2
Solucion numerica de ecuaciones diferenciales ordinarias 2Solucion numerica de ecuaciones diferenciales ordinarias 2
Solucion numerica de ecuaciones diferenciales ordinarias 2cesar91
 
ejercicios-resueltos.pdf
ejercicios-resueltos.pdfejercicios-resueltos.pdf
ejercicios-resueltos.pdfnayitmejia
 

Similaire à Métodos numéricos para ecuaciones diferenciales ordinarias (20)

Metodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesMetodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferenciales
 
Trabajo Range-Kutta
Trabajo Range-KuttaTrabajo Range-Kutta
Trabajo Range-Kutta
 
Ecuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasEcuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinarias
 
“método de euler y runge kutta”
“método de euler y runge kutta”“método de euler y runge kutta”
“método de euler y runge kutta”
 
10 sep edo_2009_1
10 sep edo_2009_110 sep edo_2009_1
10 sep edo_2009_1
 
Metodos numericos
Metodos numericosMetodos numericos
Metodos numericos
 
2011 runge kutta
2011 runge kutta2011 runge kutta
2011 runge kutta
 
Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales Ecuaciones diferenciales parciales
Ecuaciones diferenciales parciales
 
Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)Derivación numérica (Series de Taylor)
Derivación numérica (Series de Taylor)
 
Ecuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinariasEcuaciones diferenciales ordinarias
Ecuaciones diferenciales ordinarias
 
Ecuaciones Diferenciales Ordinarias.pptx
Ecuaciones Diferenciales Ordinarias.pptxEcuaciones Diferenciales Ordinarias.pptx
Ecuaciones Diferenciales Ordinarias.pptx
 
Metodo de ecuaciones diferenciales
Metodo de ecuaciones diferencialesMetodo de ecuaciones diferenciales
Metodo de ecuaciones diferenciales
 
Ecuaciones diferenciales 1
Ecuaciones diferenciales 1Ecuaciones diferenciales 1
Ecuaciones diferenciales 1
 
Mtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalMtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo final
 
Mtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo finalMtodo de runge..trabajo[1]... listo final
Mtodo de runge..trabajo[1]... listo final
 
Solucion numerica de ecuaciones diferenciales ordinarias 2
Solucion numerica de ecuaciones diferenciales ordinarias 2Solucion numerica de ecuaciones diferenciales ordinarias 2
Solucion numerica de ecuaciones diferenciales ordinarias 2
 
ejercicios-resueltos EDO.pdf
ejercicios-resueltos EDO.pdfejercicios-resueltos EDO.pdf
ejercicios-resueltos EDO.pdf
 
ejercicios-resueltos EDO.pdf
ejercicios-resueltos EDO.pdfejercicios-resueltos EDO.pdf
ejercicios-resueltos EDO.pdf
 
ejercicios-resueltos.pdf
ejercicios-resueltos.pdfejercicios-resueltos.pdf
ejercicios-resueltos.pdf
 
ejercicios-resueltos MAT300.pdf
ejercicios-resueltos MAT300.pdfejercicios-resueltos MAT300.pdf
ejercicios-resueltos MAT300.pdf
 

Plus de Jaime Martínez Verdú

Informe difusión y acceso de información
Informe difusión y acceso de informaciónInforme difusión y acceso de información
Informe difusión y acceso de informaciónJaime Martínez Verdú
 
Diapositivas apuntes cuestiones de ensayos no destructivos
Diapositivas apuntes cuestiones de ensayos no destructivosDiapositivas apuntes cuestiones de ensayos no destructivos
Diapositivas apuntes cuestiones de ensayos no destructivosJaime Martínez Verdú
 
Teoría, Prácticas y Exámenes de Control Inteligente
Teoría, Prácticas y Exámenes de Control InteligenteTeoría, Prácticas y Exámenes de Control Inteligente
Teoría, Prácticas y Exámenes de Control InteligenteJaime Martínez Verdú
 
Prácticas y exámenes de control óptimo (subida a slide share)
Prácticas y exámenes de control óptimo (subida a slide share)Prácticas y exámenes de control óptimo (subida a slide share)
Prácticas y exámenes de control óptimo (subida a slide share)Jaime Martínez Verdú
 
Prácticas y exámenes de control estocastico y de mínima varianza
Prácticas y exámenes de control estocastico y de mínima varianzaPrácticas y exámenes de control estocastico y de mínima varianza
Prácticas y exámenes de control estocastico y de mínima varianzaJaime Martínez Verdú
 
Apuntes y prácticas de tecnología energética
Apuntes y prácticas de tecnología energéticaApuntes y prácticas de tecnología energética
Apuntes y prácticas de tecnología energéticaJaime Martínez Verdú
 
Diapositivas Visión por Computador: Visión 3D
Diapositivas Visión por Computador: Visión 3DDiapositivas Visión por Computador: Visión 3D
Diapositivas Visión por Computador: Visión 3DJaime Martínez Verdú
 
Respuestas a preguntas frecuentes rd235 2013
Respuestas a preguntas frecuentes rd235 2013Respuestas a preguntas frecuentes rd235 2013
Respuestas a preguntas frecuentes rd235 2013Jaime Martínez Verdú
 
Física de la visión (Teoría y Prácticas)
Física de la visión (Teoría y Prácticas)Física de la visión (Teoría y Prácticas)
Física de la visión (Teoría y Prácticas)Jaime Martínez Verdú
 

Plus de Jaime Martínez Verdú (20)

Apuntes ecomonía aplicada
Apuntes ecomonía aplicadaApuntes ecomonía aplicada
Apuntes ecomonía aplicada
 
Informe difusión y acceso de información
Informe difusión y acceso de informaciónInforme difusión y acceso de información
Informe difusión y acceso de información
 
Finanzas empresariales
Finanzas empresarialesFinanzas empresariales
Finanzas empresariales
 
Fiscalidad de la empresa
Fiscalidad de la empresaFiscalidad de la empresa
Fiscalidad de la empresa
 
Diapositivas apuntes cuestiones de ensayos no destructivos
Diapositivas apuntes cuestiones de ensayos no destructivosDiapositivas apuntes cuestiones de ensayos no destructivos
Diapositivas apuntes cuestiones de ensayos no destructivos
 
Teoría, Prácticas y Exámenes de Control Inteligente
Teoría, Prácticas y Exámenes de Control InteligenteTeoría, Prácticas y Exámenes de Control Inteligente
Teoría, Prácticas y Exámenes de Control Inteligente
 
Prácticas y exámenes de control óptimo (subida a slide share)
Prácticas y exámenes de control óptimo (subida a slide share)Prácticas y exámenes de control óptimo (subida a slide share)
Prácticas y exámenes de control óptimo (subida a slide share)
 
Qué estoy haciendo aquí
Qué estoy haciendo aquíQué estoy haciendo aquí
Qué estoy haciendo aquí
 
Prácticas y exámenes de control estocastico y de mínima varianza
Prácticas y exámenes de control estocastico y de mínima varianzaPrácticas y exámenes de control estocastico y de mínima varianza
Prácticas y exámenes de control estocastico y de mínima varianza
 
Apuntes y prácticas de tecnología energética
Apuntes y prácticas de tecnología energéticaApuntes y prácticas de tecnología energética
Apuntes y prácticas de tecnología energética
 
Diapositivas Visión por Computador: Visión 3D
Diapositivas Visión por Computador: Visión 3DDiapositivas Visión por Computador: Visión 3D
Diapositivas Visión por Computador: Visión 3D
 
Chua's circuit
Chua's circuitChua's circuit
Chua's circuit
 
Respuestas a preguntas frecuentes rd235 2013
Respuestas a preguntas frecuentes rd235 2013Respuestas a preguntas frecuentes rd235 2013
Respuestas a preguntas frecuentes rd235 2013
 
Presentación grúas auxiliares
Presentación grúas auxiliaresPresentación grúas auxiliares
Presentación grúas auxiliares
 
Trabajo sobre Grúas Auxiliares
Trabajo sobre Grúas AuxiliaresTrabajo sobre Grúas Auxiliares
Trabajo sobre Grúas Auxiliares
 
Prácticas de DERIVE
Prácticas de DERIVEPrácticas de DERIVE
Prácticas de DERIVE
 
Apuntes de prácticas de DERIVE
Apuntes de prácticas de DERIVEApuntes de prácticas de DERIVE
Apuntes de prácticas de DERIVE
 
Introducción de química
Introducción de químicaIntroducción de química
Introducción de química
 
Apuntes SITR
Apuntes SITRApuntes SITR
Apuntes SITR
 
Física de la visión (Teoría y Prácticas)
Física de la visión (Teoría y Prácticas)Física de la visión (Teoría y Prácticas)
Física de la visión (Teoría y Prácticas)
 

Dernier

Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 

Dernier (20)

Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 

Métodos numéricos para ecuaciones diferenciales ordinarias

  • 1. Índice general 1. Métodos numéricos para ecuaciones diferenciales ordinarias 3 1.1. Método en diferencias finitas . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1. Análisis del error . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2. Ejemplos de sistemas . . . . . . . . . . . . . . . . . . . . . . 18 1.3. El método de Heun y el método del punto medio . . . . . . . . . . 24 1.4. Métodos explícitos de Runge-Kutta . . . . . . . . . . . . . . . . . . . 40 2. Métodos numéricos para ecuaciones en derivadas parciales (EDPs) 49 2.1. Clasificación de EDPs de segundo orden . . . . . . . . . . . . . . . . 49 2.2. Métodos numéricos para problemas parabólicos . . . . . . . . . . . 50 2.2.1. Método explícito . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.2.2. Método implícito . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.3. Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . 59 2.3. Estabilidad, consistencia y convergencia . . . . . . . . . . . . . . . . 61 A. Analisis numérico matricial 65 A.1. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 A.2. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 1
  • 2. 2
  • 3. Capítulo 1 Métodos numéricos para ecuaciones diferenciales ordinarias La inmensa mayoría de las ecuaciones diferenciales no se pueden resolver de forma analítica explícita, por lo que resulta esencial diseñar algoritmos numéricos que permitan hallar una aproximación numérica precisa. Los esfuerzos de investigación en este sentido han proporcionado un vasto abanico de esquemas numéricos que permiten hallar soluciones aproximadas para una gran variedad de ecuaciones diferenciales. Además, hoy en día uno puede elegir entre una amplia despensa de software que proporcionan resultados precisos y fiables en periodos de tiempo moderadamente cortos. No obstante, todos esos paquetes y los métodos que subyacen tienen sus limitaciones, y quienes los utilizan deben ser capaces de reconocer cuando el software trabaja correctamente y cuando genera resultados espurios. En este capítulo nos ocuparemos de presentar los métodos numéricos básicos para resolver problemas de valores iniciales (PVI). Lo cierto es que los métodos esenciales que vamos a considerar raramente se utilizan en la práctica, incluso para ecuaciones diferenciales relativamente sencillas, puesto que existen métodos más sofisticados, especializados y versátiles. Pero cualquier desarrollo avanzado se construye sobre esquemas básicos y las ideas que subyacen de éstos. Los problemas representativos con los que se enfrenta un analista numérico de ecuaciones diferenciales ordinarias aparecen ya en las ecuaciones de primer orden más simples. Nuestro objetivo es calcular una aproximación a 3
  • 4. 4 la solución para el problema de Cauchy: y (t) = f(t, y(t)), y(t0) = y0, (1.1) donde y(t) es una función real definida en un intervalo I, y f(t, y) es una función definida en I × R. Por el bien de la simplicidad, centraremos nuestra atención en el caso escalar; sin embargo, todas las fórmulas y resultados se pueden adaptar a sistemas de primer orden solo con reemplazar las funciones escalares y(t) y f(t, y) por funciones vectoriales. Por otra parte, sabemos que las ecuaciones diferenciales de orden superior se reducen a sistemas equivalentes de primer orden. Por no ser objeto de este tema, no entraremos a estudiar en profundidad los diferentes resultados teóricos que aseguran, bajo ciertas hipótesis, la existencia, unicidad o regularidad de las soluciones de los problemas de Cauchy. No obstante recordamos a continuación uno de los teoremas clásicos de existencia y unicidad. Teorema 1.1 (de Cauchy-Lipschitz) Sea f(t, x) una función continua sobre I × R y lipschitciana respecto a la segunda de sus variables, esto es, ∃ L > 0 / |f(t, x) − f(t, y)| ≤ L|x − y|, ∀t ∈ I, ∀x, y ∈ R, entonces el problema de Cauchy (1.1) admite una única solución. Observación 1.2 La condición de Lipschitz es relativamente suave sobre la función. Obsérvese que si la derivada parcial de f(t, x) respecto de la segunda variable es una función continua, la condición de Lipschitz se traduce en que dicha derivada permanezca acotada. En numerosos problemas físicos la variable t representa el tiempo y el intervalo I se suele considerar desde [t0, t0 + α]. Por ello el instante t0 se denomina instante inicial y la condición impuesta en ese instante y(t0) = y0 se denomina condición inicial.
  • 5. 5 1.1. Método en diferencias finitas Uno de los métodos más versátiles para resolver ecuaciones diferenciales ordinarias es el método de diferencias finitas, que consiste, básicamente, en aproximar las derivadas de una función en un punto mediante una combinación de las imágenes de la función en puntos del entorno (los puntos de la malla). La herramienta que nos proporciona tales fórmulas, denominadas de “diferencias finitas", es el desarrollo de Taylor de una función en un punto. En primer lugar hallemos la fórmula de aproximación de la primera derivada: y(t + h) = y(t) + y (t)h + 1 2 y (ξ)h2 , ξ ∈ [t, t + h], donde hemos utilizado la fórmula del resto de Cauchy. Despejando y (t) de la ecuación anterior podemos hallar su valor y (t) = y(t + h) − y(t) h − 1 2 y (ξ)h, de donde obtenemos la aproximación y (t) ≈ y(t + h) − y(t) h . La fórmula anterior se denomina diferencia progresiva de la primera derivada. Obsérvese que el error de la aproximación es proporcional a h, que lo expresaremos diciendo que es una aproximación de primer orden. Cuando interese poner de manifiesto el orden de aproximación omitiremos el resto de Cauchy escribiendo simplemente y (t) = y(t + h) − y(t) h + O(h), donde el término O(h) se refiere a que el término proporcional a h está acotado por un múltiplo constante de h cuando h tiende a cero. Realizando el desarrollo de Taylor de y(t − h) y procediendo de forma similar se obtiene una nueva fórmula de aproximación para y (t), pero esta vez en función de los valores de u en el nodo t y t − h, y (t) = y(t) − y(t − h) h + O(h). En este caso, la fórmula aproximación obtenida se denomina diferencia regresiva de la primera derivada. Las diferencias progresivas y regresivas son aproximaciones de primer orden a la primera derivada en t. Pero no son
  • 6. 6 éstas las únicas posibilidades para aproximar la primera derivada. Consideremos los siguientes desarrollos de Taylor: y(t + h) = y(t) + y (t)h + 1 2 y (t)h2 + O ( h3 ) , y(t − h) = y(t) − y (t)h + 1 2 y (t)h2 + O ( h3 ) , donde el resto de Taylor es proporcional a h3 . Si restamos las formulas anteriores obtenemos y(t + h) − y(t − h) = 2y (t)h + O ( h3 ) , de donde se obtiene fácilmente y (t) = y(t + h) − y(t − h) 2h + O(h2 ). Luego he aquí otra fórmula de aproximación a la primera derivada en t, pero en este caso de segundo orden, denominada diferencia central de la primera derivada. Tratemos de hallar ahora una aproximación a la segunda derivada en un punto t. Tengamos en cuenta los siguientes desarrollos de Taylor: y(t + h) = y(t) + y (t)h + 1 2 y (t)h2 + 1 6 y(3) (t)h3 + O ( h4 ) , y(t − h) = u(t) − y (t)h + 1 2 y (t)h2 − 1 6 y(3) (t)h3 + O ( h4 ) . (1.2) Si en lugar de restar, los sumamos deducimos la identidad y(t + h) + y(t − h) = 2y(t) + y (t)h2 + O ( h4 ) , de donde podemos despejar sin dificultad y (t), y (t) = y(t + h) − 2y(t) + y(t − h) h2 + O(h2 ). Despreciando el término O(h2 ) hemos obtenido una aproximación de orden 2 para la segunda derivada de la función y en el punto t. Tal aproximación se denomina diferencia central de la segunda derivada. Para obtener aproximaciones de derivadas de orden superior tendríamos que proceder de forma análoga, y necesitaríamos evaluar la función en más puntos del entorno. Observemos que para aproximar la primera derivada hemos necesitado evaluar la función en dos puntos; para aproximar la segunda derivada hemos evaluado la función en tres puntos. En general, aproximar la derivada n-ésima necesitaríamos evaluar la función en al menos n + 1 puntos distintos.
  • 7. 7 1.2. Método de Euler Nuestra meta consiste en calcular una aproximación a la única solución para el problema de valor inicial (1.1). En primer lugar, introducimos una malla de puntos (puntos nodales) comenzando en el instante inicial t0 y acabando en el tiempo final tN = t0 + α de la forma t0 < t1 < t2 < · · · < tk < · · · < tN donde la distancia entre un nodo y otro hk = tk+1 − tk esté suficientemente cerca. Por comodidad, utilizaremos una separación uniforme entre los puntos del mallado, esto es, hk = h fijo para todo k. Este requisito simplifica el análisis sin afectar significativamente al estudio general para pasos no uniformes. En este caso, el punto k-ésimo de la malla está dado por tk = t0 +kh. El propósito es construir un algoritmo recursivo que proporcione aproximaciones uk ≈ y(tk) de la solución real en los puntos nodales k = 0, 1, 2, . . . elegidos. Los valores de y(t) en los puntos internodales se pueden calcular mediante cualquier procedimiento de interpolación, por ejemplo, los splines cúbicos. El polinomio de Taylor de primer orden permite aproximar el valor de la función y(t) alrededor de cualquier nodo tk: y(t) ≈ y(tk) + (t − tk)y (tk) = y(tk) + (t − tk)f(tk, y(tk)), donde hemos reemplazado la derivada y (t) por el término que aparece en la ecuación (1.1) objeto de estudio. En particular, si tomamos t = tk+1, podemos aproximar el valor del siguiente punto nodal de la malla y(tk+1) ≈ y(tk) + (tk+1 − tk)f(tk, y(tk)). (1.3) En la práctica solamente sabemos la aproximación uk al valor y(tk), luego estamos obligados a reemplazar uk por y(tk) en la fórmula (1.3), por lo tanto obtenemos el esquema iterativo: uk+1 = uk + hf(tk, uk). (1.4) Esta simple idea es el punto de partida del método de Euler. Este método es el esquema numérico unipaso más simple para integrar una ecuación diferencial ordinaria. Con el fin de comprender mejor el método de Euler en la práctica, es conveniente testearlo con algún problema sencillo que sepamos resolver, lo que permite estudiar el error de nuestra aproximación con la solución real.
  • 8. 8 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Método de Euler sol aprox sol exacta Figura 1.1: y + u = 2 cos t, u(0) = 2 1.2.1. Análisis del error Antes de continuar, examinaremos algunos aspectos relacionados con el error en un esquema numérico. Un método numérico unipaso general se puede escribir como uk+1 = uk + hg(h, tk, uk), (1.5) donde g es una función conocida que, mediante iteraciones, proporciona la solución aproximada uk ≈ y(tk) en el instante tk, siendo el tamaño del paso h = tk+1 − tk (que por propósitos didácticos lo consideramos fijo). En cualquier esquema de integración numérica hay distintos de errores que clasificaremos en tres tipos: Error local: Es aquel cometido en el paso actual del algoritmo. Incluso cuando somos capaces de hallar el valor exacto de la solución uk = y(tk) en el instante tk, la aproximación numérica en el instante tk+1 es ciertamente no exacta, y se introduce un error en el valor calculado uk+1 ≈ y(tk+1). Esencialmente, hay dos subtipos de errores locales: el error de truncamiento (o error de consistencia) y el error de redondeo. El error de redondeo es consecuencia de la falta de precisión de la aritmética computacional y, en ocasiones, puede ocasionar graves alteraciones en la aproximación. El error de truncamiento se debe a la aproximación que realizamos en el instante tk+1 a partir de su valor,
  • 9. 9 aún cuando sea exacto, en el instante tk. Debido a su relevancia, el error de truncamiento será analizado cuidadosamente más adelante. Error inicial: Se manifiesta cuando la condición inicial u0 ≈ y(t0) no se puede calcular con exactitud debido, fundamentalmente, a las limitaciones en la aritmética computacional. Por ejemplo, si y(t0) = π, necesariamente tenemos que tomar una aproximación de π y, en consecuencia, introducimos algún error inicial que dependerá del número de decimales exactos que tomemos en π. Error global: Es la diferencia entre el valor aproximado uk y el valor exacto y(tk) en el nodo tk. Los errores locales tienden a acumularlo, puesto que, en general, no partimos del valor exacto en el instante tk−1. De hecho, ni siquiera podemos garantizar el valor exacto en la condición inicial u0 ≈ y(t0) el el caso de que haya error inicial. Resumiendo, conforme iteramos nuestro esquema numérico el error se propaga en cada paso. Por simplicidad, pongámosnos en una situación favorable y supongamos que la condición inicial es exacta u0 = y(t0), y que los errores de redondeo no juegan un papel significativo (aunque uno debe siempre tenerlos en cuenta en la computación). En ese caso el error local juega un papel fundamental hasta tal punto que, bajo ciertas hipótesis, si tenemos dominado el error local, podemos dominar también la propagación del error global. Así pues, analizaremos el error local en detalle. Para medir el error local que va de tk a tk+1 basta con comparar la solución exacta y(tk+1) con su aproximación numérica bajo la hipótesis de que uk = y(tk). Naturalmente, en la práctica, este caso nunca se da, por lo que el error local es una cantidad artificial que, por sí sola, no ilustra correctamente el funcionamiento del método. Definición 1.3 Se denomina error local de discretización de un método numérico de la forma (1.5) al valor: Ek+1 = (yk+1 − yk) − hg(h, tk, yk), k = 0, 1, 2, . . . El valor τk+1 = 1 h Ek+1 se denomina error de truncación o error de consistencia
  • 10. 10 Obsérvese que el error de discretización en el instante tk+1 nos proporciona la diferencia entre el valor exacto de la solución en dicho punto yk+1 = y(tk+1) y el valor que se obtendría al aproximar este valor mediante el esquema numérico (1.5) si se partiese de la solución exacta en el instante tk. Es fácil deducir la ecuación yk+1 − yk h − g(h, tk, yk) = 1 h Ek+1 = τk+1, así pues, el error de truncación (consistencia) es la cantidad por la cual el método de discretización aplicado sobre el valor exacto en los puntos nodales no satisface la ecuación diferencial (1.1). Definición 1.4 Se dice que un esquema numérico de la forma (1.5) es consistente con la ecuación diferencial ordinaria (1.1) si se verifica que l´ım h→0 N∑ k=1 |Ek| = 0. Además, diremos que el método es consistente de orden p si para cualquier valor de h positivo e inferior a un cierto paso máximo h∗ , se cumple que N∑ k=1 |Ek| ≤ C · hp , donde C es una constante. Observación 1.5 Observemos que si |Ek| ≤ M ·hp+1 para todo k, entonces el método es consistente de orden p. En efecto, N∑ k=1 |Ek| ≤ NMhp+1 = α h Mhp+1 = αMhp . En la práctica, y siempre y cuando tengamos un orden de derivación conveniente, podemos calcular el orden de consistencia de un esquema numérico desarrollando en Taylor (respecto de h) la solución exacta, esto es, y(tk+1) = y(tk) + hy (tk) + h2 2 y (tk) + h3 6 y (tk) + · · · = yk + hf(tk, yk) + h2 2 f(1) (tk, yk) + h3 6 f(2) (tk, yk) + · · · (1.6)
  • 11. 11 donde hemos denotado f(k) (t, y) = d dt [f(k−1) (t, y)], f(0) (t, y) = f(t, y). Por ejemplo, los primeros términos son f(1) (t, y) = d dt [f(t, y)] = ∂f ∂t (t, y) + f(t, y) ∂f ∂y (t, y), f(2) (t, y) = d dt [f(1) (t, y)] = ∂2 f ∂t2 (t, y) + ∂f ∂t (t, y) ∂f ∂y (t, y) + f(t, y) (( ∂f ∂y (t, y) )2 + 2 ∂2 f ∂t ∂y (t, y) ) + f(t, y)2 ∂2 f ∂y2 (t, y), f(3) (t, y) = ∂3 f ∂t3 (t, y) + 3 ∂f ∂t (t, y) ∂2 f ∂t ∂y (t, y) + ∂f ∂y (t, y) ∂2 f ∂t2 (t, y) + ∂f ∂t (t, y) ( ∂f ∂y (t, y) )2 f(t, y) (( ∂f ∂y (t, y) )3 + 5 ∂2 f ∂t ∂y (t, y) ∂f ∂y (t, y) + 3 ( ∂f ∂t (t, y) ∂2 f ∂y2 (t, y) + ∂3 f ∂t2 ∂y (t, y) )) f(t, y)2 ( 4 ∂f ∂y (t, y) ∂2 f ∂y2 (t, y) + 3 ∂3 f ∂t ∂y2 (t, y) ) + f(t, y)3 ∂3 f ∂y3 (t, y) Por otra parte, desarrollamos en Taylor la función g(h, t, y) respecto de la variable h alrededor del punto 0 g(h, t, y) = g(0, t, y) + h ∂g ∂h (0, t, y) + h2 2 ∂2 g ∂h2 (0, t, y) + · · · (1.7) Finalmente, utilizando (1.6) y (1.7) obtenemos: Ek+1 = (yk+1 − yk) − hg(h, tk, yk) = h (f(tk, yk) − g(0, tk, yk)) + h2 2 ( f(1) (tk, yk) − 2 ∂g ∂h (0, tk, yk) ) h3 6 ( f(2) (tk, yk) − 3 ∂2 g ∂h2 (0, tk, yk) ) + h4 24 ( f(3) (tk, yk) − 4 ∂3 g ∂h3 (0, tk, yk) ) + . . . (1.8) Así pues, bajo condiciones de regularidad convenientes sobre las derivadas, el orden de consistencia del esquema numérico será de orden p siempre y cuando f(m) (tk, yk) = (m + 1) ∂(m) g ∂h(m) (0, tk, yk), m < p, fp (tk, yk) = (p + 1) ∂p g ∂hp (0, tk, yk), ya que, en ese caso, el error de discretización tiene orden p + 1. Ejemplo 1.1 En el método de Euler uk+1 = uk + hf(tk, uk) se verifica que g(h, tk, yk) = f(tk, yk), de donde g(0, tk, yk) = f(tk, yk) y ∂g ∂h (0, tk, yk) = 0. Entonces el método de Euler es de orden de consistencia 1 (a menos que f(1) (t, y) = 0).
  • 12. 12 Definición 1.6 Dado un método numérico de la forma (1.5), se denomina error del método la diferencia ek = yk −uk (k=0,1,. . . ,N). Se dice que el método es convergente cuando l´ım h→0 ( sup 0≤k≤N {|ek|} ) = 0. Diremos que el método es convergente de orden p si se verifica: sup 0≤k≤N {|ek|} ≤ K · hp . En principio, el error de consistencia y el error del método son conceptos independientes. De hecho la propiedad de consistencia, por lo general, suele ser más fácil de constatar que la convergencia. Mostraremos que, bajo hipótesis adecuadas, la consistencia de orden p implica la convergencia de orden p. Consideremos un método genérico unipaso uk+1 = uk + hg(h, tk, uk) que trata de aproximar la solución de la ecuación (1.1). Si conocemos el valor exacto yk en el instante tk, entonces el valor exacto en el intante tk+1 es yk+1 = yk + hg(h, tk, yk) + Ek+1, siendo Ek+1 el error de discretización. Restando esta última expresión al esquema numérico que aproxima a la ecuación obtenemos: yk+1 − uk+1 ek+1 = yk − uk ek +h (g(h, tk, yk) − g(h, tk, uk)) + Ek+1. Ahora tomamos valor absoluto |ek+1| ≤ |ek| + h · |g(h, tk, yk) − g(h, tk, uk)| + |Ek+1|. Asumamos que g(h, t, y) es continua en t y h, y lipschitziana en la variable y con constante de Lipschitz L, que generalmente se relaciona con la constante de Lipschitz para f. Entonces |ek+1| ≤ |ek| + hL|yk − uk| + |Ek+1| = (1 + Lh)|ek| + |Ek+1|. (1.9) Necesitamos el siguiente lema técnico para continuar acotando el error.
  • 13. 13 Lema 1.7 Sea L > 0 una constante y sean {ak}N k=0 y {bk}N k=1 sucesiones no-negativas satisfaciendo ak+1 ≤ (1 + Lh)ak + bk+1, k = 0, 1, . . . , N − 1, h > 0. Entonces se verifica la desigualdad: ak+1 ≤ eL(tk+1−t0) a0 + k∑ i=0 eL(tk+1−ti+1) bi+1, donde tk = t0 + kh, k = 0, 1, . . . , N. Aplicamos el Lema 1.7 a nuestro caso particular; A = L, ak = |ek| y bk = |Ek|, entonces: |ek+1| ≤ eL(tk+1−t0) · |e0| + k∑ i=0 ≤L(tk+1−t0) eL(tk+1−ti+1) |Ei+1| ≤ eL(tk+1−t0) ( |e0| + N∑ k=1 |Ek| ) . Si asumimos que el error inicial e0 = 0 y que el método es consistente de orden p, concluimos que |ek+1| ≤ eL(tk+1−t0) Chp = K · hp . Así pues, bajo hipótesis convenientes, hemos probado que si el esquema numérico tiene orden p como medida de error local, entonces el error global está acotado por un múltiplo de hp . En otras palabras, si suponemos que no hay errores de redondeo ni error inicial, el valor calculado uk y la solución real y(tk) en el instante tk se puede acotar por: |y(tk) − uk| ≤ K · hp , donde la constante K > 0 puede depender del tiempo tk y la solución particular y(t). En resumen, cuanto más alto es el orden, más preciso será nuestro esquema numérico, y el paso se puede elegir más grande para conseguir la precisión deseada a la solución real. Sin embargo, a mayor
  • 14. 14 orden, se requieren mayores esfuerzos computacionales en cada paso. Luego se debe tratar de equilibrar el orden del método con la elección del paso de forma que el balance total sea óptimo. Como consecuencia, el siguiente resultado nos proporciona una cota para el error en el método de Euler en el caso de que no hayan errores de redondeo, esto es, si suponemos que podemos realizar los cálculos con precisión infinita. Teorema 1.8 Sea F una función continua lipschitziana respecto de la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0 + α], x, y ∈ R y donde L es una constante real positiva. Supongamos además que la solución y es de clase C2 en [t0, t0 + α] y que existe una constante M > 0 tal que |y (t)| < M. Entonces |y(tk) − uk| ≤ hM 2L ( eL(tk−t0) − 1 ) . No obstante, sabedores de que la influencia del error de redondeo puede llegar a ser notable bajo ciertas circunstancias, sería interesante saber como afectan los errores de redondeo al error global. En la práctica el análisis de la repercusión del error de redondeo es bastante complicado, pero en el caso del método de Euler y simulando la misma técnica que se utiliza en la demostración del Teorema 1.8 se demuestra la siguinte acotación.
  • 15. 15 Teorema 1.9 Sea f una función continua lipschitziana respecto de la segunda variable, esto es, f(t, x)−f(t, y) ≤ L|x−y| , con t ∈ [t0, t0 + α], x, y ∈ R y donde L es una constante real positiva. Supongamos además que existe una constante M > 0 tal que |y (t)| < M, y que en cada paso el error de redondeo al evaluar el método de Euler es εk. Entonces |y(tk) − uk| ≤ ( hM 2L + ε hL ) ( eL(tk−t0) − 1 ) + ε0eL(tk−t0) , donde ε es una cota superior de εk y ε0 es el error de redondeo del dato inicial. La lectura esencial de este resultado es que el error no está acotado cuando h tiende a cero debido al factor ε hL . Por tanto los resultados obtenidos son poco fiables para pasos cuya longitud es menor que un cierto umbral. El umbral viene dado por el valor de h que minimiza la expresión hM 2L + ε hL , que tomando la primera derivada e igualando a cero obtenemos el valor óptimo h ≈ √ 2ε M . En cualquier caso debe tenerse en cuenta que los errores de redondeo afectan solamente cuando los pasos son muy pequeños. Sistemas de ecuaciones Consideremos ahora el sistema de ecuaciones bidimensional dx dt = f (t, x, y) , dy dt = g (t, x, y) , x (t0) = x0, y (t0) = y0 . (1.10) Tanto la definición de solución como los resultados de existencia y unicidad de soluciones son similares al caso de una ecuación, por lo que pasaremos directamente al estudio de los métodos numéricos.
  • 16. 16 Usando, al igual que antes dx dt (t) ≈ x (t + h) − x (t) h , dy dt (t) ≈ y (t + h) − y (t) h obtenemos el método de Euler: uk+1 = uk + hf (tk, uk, vk) , vk+1 = vk + hg (tk, uk, vk) , k = 0, 1, 2, ..., N − 1, donde uk ≈ x (tk) , vk ≈ y (tk) . En el caso general de un sistema de n ecuaciones dy1 dt = f1 (t, y1, y2, ..., yn) , ... dyn dt = fn (t, y1, y2, ..., yn) , y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn, . (1.11) el esquema resultante sería el siguiente: u1,k+1 = u1,k + hf1 (tk, u1,k, ..., un,k) , ... un,k+1 = un,k + hfn (tk, u1,k, ..., un,k) , k = 0, 1, 2, ..., N − 1. Ejemplo 1.2 Resolvamos el sistema x = x + 2y, y = 3x + 2y x (0) = 6, y (0) = 4, en el intervalo [0, 0,04] con h = 0,02. Solución.- u1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28, v1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,
  • 17. 17 u2 = 6,28 + 0,02 ∗ (6,28 + 2 ∗ 4,52) = 6. 586 4, v2 = 4,52 + 0,02 ∗ (3 ∗ 6,28 + 2 ∗ 4,52) = 5. 077 6. Como la solución exacta de este problema es x (t) = 2e−t + 4e4t , y (t) = −2e−t + 6e4t obtenemos que x (0,04) = 2e−0,04 + 4e4∗0,04 = 6. 615 622 362 , y (0,04) = −2e−0,04 + 6e4∗0,04 = 5. 119 486 348. Por tanto, el error cometido es: Error = √ (6. 586 4 − 6. 615 622 )2 + (5. 077 6 − 5. 119 486)2 = 5. 107 × 10−2 . En lo que respecta a las ecuaciones de orden dos x = f (t, x, x ) estas se convierten en un sistema bidimensional mediante el cambio de variable y = x : y = f (t, x, y) , x = y. A partir de aquí empleamos los métodos vistos para sistemas. En general, podemos tranformar una ecuación de orden n y(n) = f ( t, y, y , ..., y(n−1) ) en un sistema mediante los cambios de variable y1 = y, y2 = y , y3 = y , ..., yn = y(n−1) : y1 = y2, y2 = y3, ... yn = f (t, y1, y2, ..., yn) .
  • 18. 18 Ejemplo 1.3 Dado el problema x + 4x + 5x = 0, x (0) = 3, x (0) = −5 lo transformamos en x = y, y = −4y + 5x, x (0) = 3, y (0) = −5. 1.2.2. Ejemplos de sistemas El péndulo Consideramos una bola de masa m atada de una varilla rígida de longitud l y masa despreciable que pende del techo. Las varilla puede oscilar con libertad sobre el plano vertical, pero sometida a la fuerza de la gravedad (ver la figura 1.2). Consideraremos primero por simplicidad que la resistencia del aire se puede despreciar. La variable x es el ángulo entre la varilla y el eje vertical. La ecuación diferencial se puede obtener a partir del principio de la cantidad de movimiento angular: la razón de cambio de la cantidad de movimiento angular es igual al momento de la fuerza. Como Cantidad de movimiento angular=ml2 dx dt , Momento de la fuerza=lF = −lmg sin (x) , tenemos la ecuación ml2 d2 x dt2 = −lmg sin (x) , d2 x dt2 = − g l sin (x) . Si lo transformamos en un sistema poniendo y = x tendremos dx dt = y, dy dt = − g l sin (x) . Los puntos fijos son y = 0, sin (x) = 0 (0, 0) , (±π, 0) , (±2π, 0) , ..., (±nπ, 0) , ...
  • 19. 19 El punto (0, 0) es estable (se producen pequeñas oscilaciones alrededor del punto), mientras que (π, 0) es inestable. Todos los demás son réplicas de estos dos: (±2nπ, 0) son estables y (± (2n + 1) π, 0) son inestables. El diagrama de fases de este sistema, calculado usando el método de Euler (con g = 10, l = 50), se puede ver en la figura 1.3. Vemos que alrededor de los puntos fijos (±2nπ, 0) existen soluciones periódicas. Éstas corresponden al movimiento oscilatorio del péndulo, que aparecen cuando la velociad inicial no es demasiado grande. En cambio, si la velocidad inicial es grande, entonces el péndulo da vueltas completas, y el valor de la variable x ya no está acotado. Si tenemos en cuenta el rozamiento, entonces la ecuación es la siguiente: d2 x dt2 = − g l sin (x) − c dx dt . Transformada en sistema quedaría dx dt = y, dy dt = − g l sin (x) − cy. Ahora las soluciones se comportan de manera bastante diferente. Al haber disipación de la energía (casi) todas las soluciones convergen en espiral a uno de los puntos fijos (±2nπ, 0). Dependiendo de la velocidad inicial (es decir, de la fuerza a la que hemos impulsado el péndulo) puede dar varias vueltas antes de estabilizarse y comenzar a oscilar en torno a la posición de equilibrio. Usando los parámetros g = 10, l = 50, c = 1 hemos calculado varias soluciones por el método de Euler. En la figura 1.4 podemos ver la solución correspondiente a las condiciones iniciales x0 = −2, y0 = 2. En este caso vemos que el péndulo oscila perdiendo energía alrededor del punto (0, 0). En la figura 1.5 tenemos la solución con condiciones iniciales x0 = 0, y0 = 15. Al ser la velocidad inicial grande el péndulo da dos vueltas enteras y después comienza a oscilar perdiendo energía alrededor del punto de equilibrio (4π, 0) . Finalmente, en la figura 1.6 las condiciones iniciales son x0 = 0, y0 = 40. La velocidad inicial es tan grande que el péndulo da seis vueltas completas
  • 20. 20 antes de perder suficiente energía y estabilizarse oscilando alrededor del punto de equilibrio (12π, 0) . El sistema de Lorenz El sistema de Lorenz es un modelo, bastante simplificado, del tiempo atmosférico, que fue desarrollado por el meteorólogo Edwar N. Lorenz. El sistema es el siguiente:    dx dt = σ (y − x) , dy dt = ρx − y − xz, dz dt = −βz + xy, donde σ, ρ, β son parámetros. Se puede calcular sin dificultad que este sistema tiene tres puntos fijos dados por: (0, 0, 0) , (√ β (ρ − 1), √ β (ρ − 1), ρ − 1 ) , ( − √ β (ρ − 1), − √ β (ρ − 1), ρ − 1 ) . Este sistema tan simplificado no nos sirve para una predicción real de la temperatura atmosférica. Sin embargo, se ha hecho famoso por otra razón: dio pie a un nuevo campo de las matemáticas llamada caos. Para determinados parámetros del sistema, las soluciones de no parecen seguir ningún patrón fijo, formando curvas que giran alrededor de los puntos fijos del sistema. Éstas permanecen en una zona acotada alrededor de los puntos fijos, pero no permanecen mucho tiempo cerca de ninguno de ellos. Por tanto, existe una región del espacio que atrae todas las soluciones, pero la dinámica dentro de esta región no sigue una pauta fija, ni ningún patrón reconocible. A ésta se le ha llamado Atractor Extraño. La característica fundamental de los sistemas caóticos es la sensibilidad a las condiciones iniciales. Dicho sin mucha precisión, esto significa que, dada cualquier condición inicial, siempre existirá otra condición inicial, tan cerca de ella como queramos, cuya solución diverge de la primera. Ejemplos de tales sistemas incluyen la atmósfera terrestre, las placas tectónicas, los fluidos en régimen turbulento y los crecimientos de población. Usando el método de Euler vamos a obtener algunas soluciones de este sistema para estudiar su comportamiento.
  • 21. 21 Vamos a ver primero algunas soluciones correspondientes a los siguientes parámetros: σ = 10, ρ = 10, β = 8 3 . Para estos parámetros no hay caos. Las soluciones numéricas muestran que las soluciones convergen a uno de los puntos fijos a medida que el tiempo avanza. En este caso los puntos fijos son (0, 0, 0) , (√ 24, √ 24, 9 ) , ( − √ 24, − √ 24, 9 ) . Por, ejemplo, si las condiciones iniciales son x0 = 1, y0 = 0, z0 = 2 obtenemos las soluciones que se ven en las gráficas ?? y ??. Vemos que la solución converge al punto fijo (√ 24, √ 24, 9 ) . Si probamos con una condición inicial más alejada, por ejemplo x0 = 1, y0 = 0, z0 = 50 la solución converge al mismo punto, como se ve en la gráfica 1.7. Si elegimos las condiciones iniciales x0 = −10, y0 = −1, z0 = 3 la solución converge al punto fijo ( − √ 24, − √ 24, 9 ) , como se ve en la figura 1.8. El comportamiento que hemos visto en este ejemplo se mantiene mientras el parámetro ρ se eencuentra entre los siguientes valores 1 < ρ < 24,74... Si ρ < 1, entonces todas las soluciones convergen al punto fijo (0, 0, 0). En cambio, si ρ > 24,74..., entonces aparecen las trayectorias caóticas. Veamos las soluciones correspondientes a los siguientes parámetros: σ = 10, ρ = 28, β = 8 3 . Las proyecciones de la solución correspondiente a las condiciones iniciales x0 = 1, y0 = 0, z0 = 1 se puede ver en las gráficas 1.9, 1.10, 1.11. En tres dimensiones la gráfica se puede ver en la figura 1.12. Las soluciones presentan el mismo comportamiento aunque las condiciones iniciales sean muy diferentes. Por ejemplo, si x0 = 1, y0 = −8, z0 = 90 la solución en el plano XZ se ve en la figura 1.13. Se ve que la solución final forma una figura parecida, que se encuentra en la misma zona.
  • 22. 22 Finalmente veremos algún ejemplo de la dependencia sensible a las condiciones iniciales. Vamos a coger la condición inicial x0 = 1, y0 = 0,0001, z0 = 1, que se diferencia muy poco de la condición x0 = 1, y0 = 0, z0 = 1. En la figuras 1.14, 1.15 podemos observar que las soluciones en ambos casos son distintas, aunque se comportan de forma parecida en lo que respecta a la forma del dibujo. Esto se ve mucho más claro si comparamos una de las variables en distintos momentos del tiempo. En la figura 1.16 podemos ver cómo al principio las dos soluciones son muy parecidas, pero a partir de un determinado momento las soluciones divergen y se comportan de forma muy distinta. Podemos comparar los valores de las dos soluciones en la siguiente tabla: t x0 (t) x1 (t) Diferencia: x0 (t) − x1 (t) 0,1 1,1475 1,1475 0 1 −3,7134 −3,7135 0,0001 5 −8,2256 −8,2239 −0,0017 10 7,8278 7,8793 −0,0514 12 3,2356 3,8000 −0,5644 12,05 2,9522 3,7479 −0,7957 12,2 4,9132 6,5235 −1,6103 14 5,3422 −8,4479 13,7901 20 2,9567 −11,0626 14,0193 30 4,1114 3,0029 1,1085 35 −1,3976 4,5331 −5,9307
  • 24. 24 −2 0 2 4 6 8 10 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 x dx/dt Figura 1.3: Diagrama de fases del péndulo 1.3. El método de Heun y el método del punto medio El método de Euler funciona, pero tiene varios inconvenientes: es un método de baja precisión que necesita de pasos temporales muy pequeños para alcanzar resultados aceptables, además converge lentamente hacia la solución. Conocidas las limitaciones del método de Euler vamos a presentar una batería de esquemas numéricos, comenzando por el método de Heun, que mejorarán gradualmente su eficiencia. Una de las claves para diseñar algoritmos más sofisticados es replantear el principio teórico sobre el que
  • 25. 25 −2 −1.5 −1 −0.5 0 0.5 1 1.5 −3 −2 −1 0 1 2 3 4 5 x dx/dt Figura 1.4: Péndulo con rozamiento, x0 = −2, y0 = 2 se sustenta el método de Euler (que consistía en la aproximación de las derivadas por diferencias finitas) por otro (equivalente) que intercambie la derivación por integración. La prueba de la existencia y unicidad para una ecuación diferencial de primer orden se basa en su reformulación como una ecuación integral, concretamente obtenemos el siguiente resultado.
  • 26. 26 0 2 4 6 8 10 12 14 −4 −2 0 2 4 6 8 10 12 14 16 x dx/dt Figura 1.5: Péndulo con rozamiento, x0 = 0, y0 = 15 Proposición 1.10 La solución y(t) del problema de valor inicial y (t) = f(t, y(t)), y(t0) = y0 coincide con la solución de la ecuación integral y(t) = y(t0) + ∫ t t0 f(s, y(s))ds. (1.12)
  • 27. 27 0 5 10 15 20 25 30 35 40 −5 0 5 10 15 20 25 30 35 40 x dx/dt Figura 1.6: Péndulo con rozamiento, x0 = 0, y0 = 40 La prueba de este resultado es una aplicación inmediata del Teorema Fundamental del Cálculo, que se obtiene integrando ambos términos de la ecuación diferencial: y(t) − y(t0) = ∫ t t0 y (s)ds = ∫ t t0 f(s, y(s))ds. Este resultado sugiere reconsiderar métodos numéricos que se centren en la resolución de la ecuación integral. Hay numerosas razones por las que se prefiere considerar la ecuación integral (1.12) en lugar de la ecuación diferencial. En general, la derivación tiene un comportamiento peor que la integración; en muchas ocasiones, la derivada de funciones con buenas propiedades pueden tener un mal carácter, en cambio, las integrales de
  • 28. 28 −1 0 1 2 3 4 5 6 7 8 9 0 5 10 15 20 25 30 35 40 45 50 x z Figura 1.7: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 50, σ = 10, ρ = 10, β = 8 3 funciones que poseen un mal comportamiento se suavizan. Por otra parte, observemos que la ecuación integral no requiere de ninguna condición inicial adicional. Partiremos de la ecuación integral (1.12) en cada subintervalo [tk, tk+1] y(tk+1) = y(tk) + ∫ tk+1 tk f(s, y(s))ds, de tal forma que podemos calcular el valor de la solución en el punto tk+1 a partir del valor en tk, más la integral a lor largo del subintervalo. Obsérvese que, en particular, si aproximamos la integral en cada subintervalo por la regla del punto inicial ∫ tk+1 tk f(s, u(s))ds ≈ (tk+1 − tk)f(tk, y(tk)) = hf(tk, y(tk)),
  • 29. 29 −10 −9 −8 −7 −6 −5 −4 −3 −2 3 4 5 6 7 8 9 10 11 12 13 x z Figura 1.8: Proyección XZ, x0 = −10, y0 = −1, z0 = 3, σ = 10, ρ = 10, β = 8 3 obtenemos de nuevo la aproximación numérica del método de Euler y(tk+1) ≈ y(tk) + hf(tk, y(tk)), lo que arroja una reinterpretación equivalente. Este punto de vista pone en evidencia la tosquedad del método de Euler, puesto que se utiliza una aproximación de la integral que geométricamente representa el área del rectángulo de anchura h y altura f(tk, y(tk)), lejos ésta de ser una estimación precisa de la integral. Es sabido por el lector que existen métodos mucho más sofisticados de integración numérica que aplicados a este enfoque sin duda proporcionarán algoritmos por lo menos más precisos, estaría por ver si además serían más eficientes computacionalmente. Por el momento comenzaremos por la aproximación numérica que proporciona el método del trapecio, que aproxima la integral mediante el área del trapecio que se obtiene al unir los puntos f(tk, y(tk)) y f(tk+1, y(tk+1)), ∫ tk+1 tk f(s, y(s))ds ≈ 1 2 h (f(tk, y(tk)) + f(tk+1, y(tk+1))) .
  • 30. 30 −20 −15 −10 −5 0 5 10 15 20 25 −30 −20 −10 0 10 20 30 x y Figura 1.9: Sistema de Lorenz, Proyección XY, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8 3 La aproximación del valor actualizado que obtenemos en este caso es: y(tk+1) ≈ y(tk) + 1 2 h (f(tk, y(tk)) + f(tk+1, y(tk+1))) , (1.13) lo que da lugar a un esquema implícito, puesto que el valor actualizado y(tk+1) aparece en los dos términos de la ecuación. El principal problema que encontramos con este algoritmo es que si la función f es complicada puede quedar una ecuación implícita compleja no lineal donde no sea posible despejar explícitamente el valor y(tk+1). En ese caso debemos recurrir a metodos numéricos de resolución de ecuaciones no lineales como el método de Newton, etc. Otra alternativa (que se conoce como métodos predictor-corrector) consiste en sustituir, en el lado derecho de la ecuación (1.13), el valor y(tk+1) por una aproximación obtenida por otro método explícito, por ejemplo el de Euler, y(tk+1) ≈ pk+1 = y(tk) + hf(tk, y(tk)),
  • 31. 31 −30 −20 −10 0 10 20 30 0 10 20 30 40 50 60 y z Figura 1.10: Sistema de Lorenz, Proyección YZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8 3 y obtenemos finalmente la aproximación y(tk+1) ≈ uk+1 = yk + 1 2 h[f(tk, yk) + f(tk + h, pk+1)] = yk + 1 2 h[f(tk, yk) + f(tk + h, yk + hf(tk, yk))] El esquema numérico resultante es uk+1 = uk + 1 2 h[f(tk, uk) + f(tk + h, uk + hf(tk, uk))], que lo podemos desglosar es dos etapas: pk+1 = uk + hf(tk, uk), uk+1 = uk + h 2 (f(tk, uk) + f(tk+1, pk+1)) . Este esquema se conoce como el método de Heun o método de Euler mejorado. Mediante este planteamiento hemos ganado que el método sea
  • 32. 32 −20 −15 −10 −5 0 5 10 15 20 25 0 10 20 30 40 50 60 x z Figura 1.11: Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8 3 explícito, pero ¿realmente mejoramos el orden de consistencia respecto al método de Euler? Ejercicio 1.1 Probar que el método de Heun es de segundo orden. Notemos que si analizamos el error global nos aparecerá, al igual que en el método de Euler, el sumando adicional ε h , donde ε es el error máximo de redondeo en cada paso, por lo que para mantener el orden de convergencia necesitamos que ε ≤ ch3 . El valor de h óptimo será de la forma h = Cte ∗ ε 1 3 . Mediante la técnica utilizada para obtener el método de Heun es posible elaborar innumerables esquemas numéricos de acuerdo a dos formas de actuación: Cambiando el método numérico de aproximación de la integral. Empleando métodos explícitos diferentes para la estimación intermedia de pk+1.
  • 33. 33 −20 −15 −10 −5 0 5 10 15 20 25 −40 −20 0 20 40 0 10 20 30 40 50 60 Figura 1.12: Sistema de Lorenz, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8 3 Por ejemplo, consideremos ahora la regla del punto medio, que aproxima la integral mediante el área del rectángulo cuya altura es la imagen en el punto medio tk + h 2 del intervalo [tk, tk+1] ∫ tk+1 tk f(s, y(s))ds ≈ hf(tk + h 2 , y(tk + h 2 )). De nuevo, estimamos el valor de y(tk + h 2 ) mediante el método de Euler y(tk + h 2 ) ≈ pk+ 1 2 = y(tk) + 1 2 hf(tk, y(tk)). El esquema numérico resultante adopta la expresión uk+1 = uk + hf(tk + h 2 , uk + 1 2 hf(tk, uk)), que se conoce como método del punto medio y es un esquema de segundo orden (compruébese).
  • 34. 34 −20 −15 −10 −5 0 5 10 15 20 0 10 20 30 40 50 60 70 80 90 x z Figura 1.13: Sistema de Lorenz, Proyección XZ, x0 = 1, y0 = 0, z0 = 1, σ = 10, ρ = 28, β = 8 3 Ejemplo 1.4 Resolvamos y = t − y 2 y (0) = 1 en el intervalo [0, 2] con h = 1 y h = 1 2 . Solución.- La solución exacta de este problema es y (t) = t − 2 + 3e− t 2 . Vamos a compararla con la aproximación por el método de Heun. Solución aproximada 1) h = 1 :
  • 35. 35 −30 −20 −10 0 10 20 30 0 10 20 30 40 50 60 y z −30 −20 −10 0 10 20 30 0 10 20 30 40 50 60 y z Figura 1.14: Sistema de Lorenz, Proyección YZ, σ = 10, ρ = 28, β = 8 3 , x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1 p1 = 1 + 0−1 2 = 1 2 , u1 = 1 + 1 2 ( 0−1 2 + 1− 1 2 2 ) = 7 8 = 0,875, p2 = 0,875 + 1−0,875 2 = 0,937 5, u2 = 0,875 + 1 2 (1−0,875 2 + 2−0,937 5 2 ) = 1. 171 875. y (2) = 3e−1 = 1. 103 638, Error = |1. 103 638 − 1. 171 875| = 0,068 237. 2)h = 0,5 : p1 = 1 + 0,5 ∗ 0−1 2 = 0,75,
  • 36. 36 −20 −15 −10 −5 0 5 10 15 20 25 0 10 20 30 40 50 60 x z −25 −20 −15 −10 −5 0 5 10 15 20 25 0 10 20 30 40 50 60 x z Figura 1.15: Sistema de Lorenz, Proyección XZ, σ = 10, ρ = 28, β = 8 3 , x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1 u1 = 1 + 0,5 2 ∗ (0−1 2 + 0,5−0,75 2 ) = 0,843 75, p2 = 0,843 75 + 0,5 ∗ 0,5−0,843 75 2 = 0,757 812 5, u2 = 0,843 75 + 0,5 2 ∗ (0,5−0,843 75 2 + 1−0,757 812 5 2 ) = 0,831 054 687 5, p3 = 0,831 054 687 5 + 0,5 ∗ 1−0,831 054 687 5 2 = 0,873 291 015 6, u3 = 0,831 054 687 5 + 0,5 2 ∗ (1−0,831 054 687 5 2 + 1,5−0,873 291 015 6 2 ) = 0,930 511 474 6, p4 = 0,930 511 474 6 + 0,5 ∗ 1,5−0,930 511 474 6 2 = 1. 072 883 606, u4 = 0,930 511 474 6 + 0,5 2 ∗ (1,5−0,930 511 474 6 2 + 2−1. 072 883 606 2 ) = 1. 117 587 09. Error=|1. 117 587 − 1. 103 638 | = 0,013 949.
  • 37. 37 0 5 10 15 20 25 30 35 −25 −20 −15 −10 −5 0 5 10 15 20 25 t x Figura 1.16: Sistema de Lorenz, σ = 10, ρ = 28, β = 8 3 , x0 = 1, y0 = 0, z0 = 1 versus x1 = 1, y1 = 0,0001, z1 = 1 Comparación de los errores: Error (h = 1) Error (h = 0,5) = 0,068 237 0,013 949 = 4. 9. Consideremos ahora el sistema de ecuaciones bidimensional x (t) = f (t, x, y) , y (t) = g (t, x, y) , x (t0) = x0, y (t0) = y0. .
  • 38. 38 El método de Heun para a este sistema quedaría de la siguiente forma: qk+1 = xk + hf (tk, xk, yk) , pk+1 = yk + hg (tk, xk, yk) , xk+1 = xk + h 2 (f (tk, xk, yk) + f (tk+1, qk+1, pk+1)) , yk+1 = yk + h 2 (g (tk, xk, yk) + g (tk+1, qk+1, pk+1)) , k = 0, 1, 2, ..., N − 1, donde xk x (tk) , yk y (tk) . En el caso general de un sistema de n ecuaciones y1(t) = f1 (t, y1, y2, ..., yn) , ... yn(t) = fn (t, y1, y2, ..., yn) , y1 (t0) = y0, y2 (t0) = y2, ..., yn (t0) = yn, . el esquema resultante sería el siguiente: p1,k+1 = y1,k + hf1 (tk, y1,k, ..., yn,k) , ... pn,k+1 = yn,k + hfn (tk, y1,k, ..., yn,k) , y1,k+1 = y1,k + h 2 (f1 (tk, y1,k, ..., yn,k) + f1 (tk+1, p1,k+1, ..., pn,k+1)) , ... yn,k+1 = yn,k + h 2 (fn (tk, y1,k, ..., yn,k) + fn (tk+1, p1,k+1, ..., pn,k+1)) , k = 0, 1, 2, ..., N − 1. Ejemplo 1.5 Resolvamos el sistema x = x + 2y, y = 3x + 2y x (0) = 6, y (0) = 4, en el intervalo [0, 0,04] con h = 0,02. Solución.- q1 = 6 + 0,02 ∗ (6 + 2 ∗ 4) = 6. 28, p1 = 4 + 0,02 ∗ (3 ∗ 6 + 2 ∗ 4) = 4. 52,
  • 39. 39 x1 = 6 + 0,02 2 ∗ (6 + 2 ∗ 4 + 6,28 + 2 ∗ 4,52) = 6. 293 2, y1 = 4 + 0,02 2 ∗ (3 ∗ 6 + 2 ∗ 4 + 3 ∗ 6,28 + 2 ∗ 4,52) = 4. 538 8, q2 = 6. 293 2 + 0,02 ∗ (6. 293 2 + 2 ∗ 4. 538 8) = 6. 600 616, p2 = 4. 538 8 + 0,02 ∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8) = 5. 097 944, x2 = 6. 293 2 + 0,02 2 ∗ (6,293 2 + 2 ∗ 4,538 8 + 6,600 616 + 2 ∗ 5. 097 944) = 6. 614 873 04, y2 = 4. 538 8 + 0,02 2 ∗ (3 ∗ 6. 293 2 + 2 ∗ 4. 538 8 + 3 ∗ 6. 600 616 + 2 ∗ 5. 097 944) = 5. 118 349 36. Como la solución exacta de este problema es x (t) = 2e−t + 4e4t , y (t) = −2e−t + 6e4t obtenemos que x (0,04) = 2e−0,04 + 4e4∗0,04 = 6. 615 622 362 , y (0,04) = −2e−0,04 + 6e4∗0,04 = 5. 119 486 348. El error sería: Error = √ (6. 614 873 04 − 6. 615 622 )2 + (5. 118 349 36 − 5. 119 486)2 = 1. 361 × 10−3 . Ejercicio 1.2 Resolver la siguiente ecuación diferencial por el método de Heun: y = t2 − y, y(0) = 1, Realizar los siguientes pasos: 1. Tomar h = 0,2 y realizar dos pasos. Luego tomar h = 0,1 y realizar cuatro pasos. 2. Comparar la solución exacta y(t) = −e−t +t2 −2t+2 con las dos aproximaciones en t = 0,4. 3. ¿Se comporta el error global de las aproximaciones como se espera cuando h se divide entre dos? (Sol: a) h = 0,2, y (0,4) 0,69488; h = 0,1, y (0,4) 0,69094; b) Error(h = 0,2)=0.0052; Error(h = 0,1)=0.00126; c) Sí)
  • 40. 40 Ejercicio 1.3 El modelo matemático de cierto circuito (condensador e inductancia) es Q + Q = sen (t) , Q (0) = 0, Q (0) = 0, donde Q (t) representa la carga en el momento t. 1. Usar el método de Heun con h = 0,1 para determinar el valor de Q (0,2). 2. Calcular el error cometido sabiendo que la solución exacta es: Q (t) = sin (t) − 1 2 t cos (t) . (Sol: Q (0,2) 0,000998335, Q (0,2) = 0,001328, Error = 0,000 329 665 ) 1.4. Métodos explícitos de Runge-Kutta El método de Heun y el método del punto medio son casos particulares de una familia general de métodos conocidos con el nombre de Runge-Kutta, en honor a sus creadores Carle Runge y Martin Kutta a finales del siglo XIX. La idea es generalizar los métodos que hemos presentado de acuerdo al siguiente esquema numérico general: uk+1 = uk + h m∑ i=1 aif(tk,i, uk,i), (1.14) donde cada tk,i denota un punto en el k-ésimo subintervalo [tk, tk+1] y uk,i ≈ y(tk,i) se interpreta como una aproximación en el punto tk,i que se suele calcular por una fórmula similar más simple del mismo tipo. Los parámetros ai así como los parámetros que intervienen para calcular cada aproximación intermedia uk,i se elige de modo que el método alcance el orden de consistencia deseado. Desarrollemos los principios teóricos que fundamentan el método. Supongamos que tenemos la partición t0 < t1 < · · · < tN = t0 + α, y deseamos calcular el valor actualizado de y en el punto tk+1 basándonos en la ecuación integral y(tk+1) = y(tk) + ∫ tk+1 tk f(s, y(s))ds. (1.15)
  • 41. 41 Consideremos una sucesión de puntos nodales en el subintervalo [tk, tk+1] tk ≤ tk,1 ≤ tk,2 ≤ · · · ≤ tk,r ≤ tk+1, donde cada tk,i = tk + cih con 0 ≤ ci ≤ 1, que actuarán como soporte para las fórmulas de integración que utilicemos a lo largo del procedimiento. Estimaremos la integral mediante una fórmula de integración sobre la partición anterior. De acuerdo con la ecuación integral (1.15), obtenemos una aproximación de la forma yk+1 ≈ yk + h r∑ i=1 aif(tk,i, yk,i), donde ωi = hai son los pesos de la fórmula de cuadratura, y yk,i son los valores de y en el punto tk,i. Para estimar el paso intermedio yk,i tendremos en cuenta, de nuevo, alguna otra fórmula de integración sobre los puntos nodales que quedan a la izquierda, yk,i = yk + ∫ tk,i tk f(s, y(s))ds ≈ uk,i = yk + h i−1∑ j=1 bijf(tk,j, yk,j). donde hbi,j son los nuevos pesos ortorgados a los puntos tk,j con 2 ≤ j ≤ i−1. Una vez elegidas las constantes ai, bij y ci, obtenemos el esquema explícito recursivo:    uk,1 = uk, uk,2 = uk + hb21f(tk,1, uk,1), uk,3 = uk + hb31f(tk,1, uk,1) + hb32f(tk,2, uk,2), ... ... uk,r = uk + h ∑r−1 j=1 brjf(tk,j, uk,j), uk+1 = uk + h ∑r i=1 aif(tk,i, uk,i), tk,i = tk + cih, 0 ≤ ci ≤ 1. (1.16) Cuando queremos implementarlo en la computadora, conviene reescribir el esquema (1.16) del siguiente modo:    k1 = f(tk,1, uk,1) = f(tk + c1h, uk), k2 = f(tk,2, uk,2) = f(tk + c2h, uk + hb21k1), k3 = f(tk,3, uk,3) = f(tk + c3h, uk + h(b31k1 + b32k2)), ... ... kr = f(tk,r, uk,r) = f(tk + crh, uk + h ∑r−1 j=1 brjkj), uk+1 = uk + h (a1k1 + a2k2 + · · · + arkr) . (1.17)
  • 42. 42 Utilizaremos la siguiente representación matricial para las constantes         c1 0 0 · · · 0 c2 b21 0 · · · 0 ... ... ... ... ... cr br1 br2 · · · 0 a1 a2 · · · ar         Definición 1.11 El número r se denomina número de etapas del método. Observación 1.12 Habitualmente la constante c1 suele ser 0, y en ese caso k1 = f(tk, uk). La función g(h, tk, uk) del término general (1.5) para el esquema de Runge-Kutta es: g(h, tk, uk) = a1k1 + a2k2 + · · · + arkr. Debido a la facilidad, flexibilidad y diversidad en cuanto en el diseño de los esquemas numéricos de Runge-Kutta según los parámetros fijados, estos tienen un vasto alcance en una gran variedad de ecuaciones diferenciales ordinarias, y son los más populares y extendidos en el software computacional. El objetivo cuando se diseña un método de Runge-Kutta es elegir las constantes ai, bij y ci adecuadas con el mínimo número de etapas posibles para conseguir el orden de consistencia deseado. Si queremos conseguir orden de consistencia 2 se necesitan al menos dos etapas, mientras que si deseamos orden 4 necesitamos elaborar un método de cuatro etapas. Se puede probar que no existen métodos de Runge-Kutta para los que el número de etapas sea igual al orden del método cuando el método tiene orden de consistencia mayor que 4. Así, para un método de orden 5 se necesitan al menos r = 6 estapas; y para orden 7 al menos 10 etapas. Como curiosidad, el método de orden 10 con menos etapas es para r = 17. A continuación estudiamos los más conocidos según el número de etapas y el orden de consistencia.
  • 43. 43 Métodos de una etapa La matriz general del método de una etapa es ( c1 0 a1 ) . El esquema numérico general es k1 = f(tk + c1h, uk), uk+1 = uk + ha1k1 = uk + ha1f(tk + c1h, uk), de donde g(h, tk, yk) = a1k1 = a1f(tk + c1h, yk). Calculamos la derivada de g(h, tk, yk) respecto de h: ∂g ∂h (h, tk, yk) = c1 ∂f ∂t (tk, yk). Entonces f(0) (tk, yk) = g(0, tk, yk) cuando a1 = 1. Además f(1) (tk, yk) = 2∂g ∂h (0, tk, yk) cuando c1 = 1/2. En definitiva, cuando a1 = 1 y c1 = 0 obtenemos el método de Euler. Además, el esquema tiene orden de consistencia 2 si ∂f ∂y = 0 (la función f solo depende del tiempo) y c1 = 1/2. Métodos de dos etapas La matriz general del método es    c1 0 0 c2 b21 0 a1 a2    . El esquema numérico general es k1 = f(tk + c1h, uk), k2 = f(tk + c2h, uk + hb21k1) = hf(tk + c2h, uk + hb21f(tk + c1h, uk), uk+1 = uk + h(a1k1 + a2k2) = uk + a1hf(tk + c1h, uk) + a2hf(tk + c2h, uk + hb21f(tk + hc1, uk)). Por tanto, g(h, tk, yk) = a1k1 + a2k2 = a1f(tk + c1h, yk) + a2f(tk + c2h, yk + hb2,1f(tk + hc1, yk)), Para obtener métodos de orden de consistencia 2 debemos igualar los coeficientes de los desarrollos de Taylor, obteniendo las identidades a1 + a2 = 1, a1c1 + a2c2 = 1 2 , a2b21 = 1 2 .
  • 44. 44 Este sistema tiene 5 incógnitas y tan solo 3 ecuaciones, por lo que admite infinitas soluciones. Las soluciones particulares más conocidas son: Método de Heun:    0 0 0 1 1 0 1/2 1/2    de donde resulta k1 = f(tk, uk), k2 = f(tk + h, uk + hk1), uk+1 = uk + h( 1 2 k1 + 1 2 k2) = uk + h 2 (f(tk, uk) + f(tk + h, uk + hf(tk, uk))) . Método del punto medio:    0 0 0 1/2 1/2 0 0 1   , que sustituyendo en el esquema general se obtiene k1 = f(tk, uk), k2 = f(tk + h 2 , uk + h 2 k1), uk+1 = uk + hk2 = uk + hf(tk + h 2 , uk + h 2 f(tk, uk)). Se puede probar que no existen constantes tales que el orden del método sea mayor que 2. Métodos de más etapas Podemos proseguir elaborando métodos y escogiendo constantes adecuadas para obtener la consistencia de mayor orden para un mismo número de etapas. En la práctica, los métodos de orden demasiado alto son bastantes costosos computacionalmente debido a que hay que evaluar la función demasiadas veces. Los métodos de Runge-Kutta de orden cuarto son unos de los integradores de paso fijo más utilizados en Ingeniería para obtener resultados precisos en problemas sin demasiada complejidad. Sin duda, el método más popular cuando todavía se computaban los métodos numéricos a mano viene dado en forma matricial por la matriz M =        0 0 0 0 0 1/2 1/2 0 0 0 1/2 0 1/2 0 0 1 0 0 1 0 1/6 2/6 2/6 1/6        .
  • 45. 45 El método desarrollado queda, k1 = f(tk, uk), k2 = f(tk + h 2 , uk + h 2 k1), k3 = f(tk + h 2 , uk + h 2 k2), k4 = f(tk + h, uk + hk3) uk+1 = uk + h 6 (k1 + 2k2 + 2k3 + k4). Ejemplo 1.6 Estimar el valor de la solución de la ecuación diferencial y = t + y, y(0) = 1 en el punto t = 0,2 mediante el método de Heun de orden 2 y el método de Runge-Kutta de orden 4 utilizando un paso igual a h = 0,2. Finalmente, si tenemos un sistema de ecuaciones diferenciales de la forma x = f(t, x, y), y = g(t, x, y), x(0) = x0, y(0) = y0, no resulta complicado adaptar el método de Runge-Kutta:    k1 = f(tk + c1h, uk, vk), l1 = g(tk + c1h, uk, vk), k2 = f(tk + c2h, uk + hb21k1, vk + hb21l1), l2 = g(tk + c2h, uk + hb21k1, vk + hb21l1), k3 = f(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)), l3 = g(tk + c3h, uk + h(b31k1 + b32k2), vk + h(b31l1 + b32l2)), ... ... kr = f(tk + crh, uk + h ∑r−1 i=1 briki, vk + h ∑r−1 i=1 brili), lr = g(tk + crh, uk + h ∑r−1 i=1 briki, vk + h ∑r−1 i=1 brili), uk+1 = uk + h(a1k1 + a2k2 + · · · + akkk), vk+1 = vk + h(a1l1 + a2l2 + · · · + aklk). (1.18) La generalización a un sistema de m ecuaciones diferenciales es tediosa, pero inmediata.
  • 46. 46 Ejercicio 1.4 Calcular la solución en t = 0,5 de la ecuación diferencial y = −2(tan t)y, y(0) = 1 mediante el método de Runge-Kutta de cuarto orden usando h = 0,5 y h = 0,25. Comparar los resultados obtenidos entre sí y con la solución exacta y(t) = cos2 t. Ejercicio 1.5 Encontrar una solución de un método de tres etapas que dé lugar a un método explícito de orden 3, con c1 = 0, c2 = c3 y a2 = a3. Ejercicio 1.6 Realizar en MatLab una rutina tal que dada una función f(t, y), un paso h, una condición inicial y0 y un método de Runge-Kutta en la forma matricial que lo caracteriza, ejecute el algoritmo de Runge-Kutta N pasos. Ejercicio 1.7 (Circuito de Chua) dx dt = α ( y − x + bx + 1 2 (a − b) (|x + 1| − |x − 1|) ) , dy dt = x − y + z, dz dt = −βy. Estudiar numéricamente (mediante el método de Runge-Kutta con h = 0,001) distintas soluciones, variando los parámetros y las condiciones iniciales. Ver cuándo se produce un comportamiento caótico. Por ejemplo, el caos aparece con los siguientes parámetros: α = 9, β = 100 7 , a = 8 7 , b = 5 7 , x0 = 0, y0 = 0, z0 = 0,6. En cambio, si α = 3, β = 100 7 , a = 8 7 , b = 5 7 , x0 = 0, y0 = 0, z0 = 0,6, entonces las soluciones convergen a un punto fijo en espiral. Si α = 11, β = 100 7 , a = 8 7 , b = 5 7 , x0 = 0, y0 = 0, z0 = 0,6, entonces las soluciones son espirales que se van alejando del origen cada vez más (el módulo tiende a infinito).
  • 47. 47 Ejercicio 1.8 (Ecuación de Duffing) x + cx − x + x3 = A cos (ωt) . En forma de sistema nos queda: { x = y, y = x − x3 − cy + A cos (ωt) . Estudiar numéricamente (mediante el método de Runge-Kutta con h = 0,001) distintas soluciones, variando los parámetros y las condiciones iniciales. Ver cuándo se produce un comportamiento caótico. Por ejemplo, ver los siguientes casos: 1. c = A = 0. Las órbitas son trayectorias periódicas. 2. c = 0,2, A = 0. Las órbitas convergen en espiral a los puntos fijos. 3. c = 0,2, A > 0, ω = 1. Probar con distintos valores de A : 0,2, 2, 20, 100, 300. Ver cómo el caos aparece. Primero hay trayectorias periódicas simples, luego se hacen más complicadas y después aparecen trayectorias caóticas. Ejercicio 1.9 (Oscilador de Ueda) x + cx + x3 = Asen (t) . En forma de sistema nos queda: { x = y, y = −x3 − cy + Asen (t) . Estudiar numéricamente (mediante el método de Runge-Kutta con h = 0,001) distintas soluciones, variando los parámetros y las condiciones iniciales. Ver cuándo se produce un comportamiento caótico. Por ejemplo, ver los siguientes casos: 1. c = A = 0. Las órbitas son trayectorias periódicas. 2. c = 1, A = 0. Las órbitas convergen en espiral al punto fijo (0, 0).
  • 48. 48 3. c = 0,05, A > 0. Probar con distintos valores de A : 0,05, 0,4, 7,5, 20. Ver cómo el caos aparece. Primero hay trayectorias periódicas simples, luego se hacen más complicadas y después aparecen trayectorias caóticas. Ejercicio 1.10 (Atractor de Rossler)    x = − (y + z) , y = x + 0,2y, z = 0,2 + xz − cz. Estudiar numéricamente (mediante el método de Runge-Kutta con h = 0,001) distintas soluciones, variando los parámetros y las condiciones iniciales. Ver cuándo se produce un comportamiento caótico. Por ejemplo, ver los siguientes casos: 1. c = 2,5. Las órbitas convergen a una trayectoria periódica. 2. c = 5, c = 5,7, c = 8, c = 100. Hay trayectorias caóticas.
  • 49. Capítulo 2 Métodos numéricos para ecuaciones en derivadas parciales (EDPs) En este capítulo se desarrollan los métodos numéricos de resolución de la ecuaciones en derivadas parciales. En particular, se estudian los métodos explícito, implícito y de Crank-Nicholson, analizando el orden de precisión en cada uno de ellos según el tamaño de los pasos espacial y temporal, así como las condiciones de estabilidad que se requieren en cada caso. 2.1. Clasificación de EDPs de segundo orden Los modelos más importantes de ecuaciones en derivadas parciales de segundo orden que aparecen en las aplicaciones a la Física y a la Ingeniería se clasifican en tres tipos: elípticas, parábolicas e hiperbólicas. Dada una EDPs de segundo orden avxx + bvxy + cvyy + dvx + evy + fv = g, (2.1) diremos que (2.1) es: Elíptica: si b2 −4ac < 0. El ejemplo clásico de ecuación elíptica es el problema de Poisson ∇2 v(x, y) = g(x, y), (x, y) ∈ Ω, v|∂Ω = h, donde ∇2 = ∂xx + ∂yy representa el operador laplaciano. 49
  • 50. 50 Parabólica: si b2 − 4ac = 0. El ejemplo clásico de ecuación parabólica es la ecuación del calor vt(x, t) = Dvxx(x, t), D > 0, Hiperbólica: si b2 − 4ac > 0. El ejemplo clásico de ecuación hiperbólica es la ecuación de ondas vtt(x, t) = c2 vxx(x, t). 2.2. Métodos numéricos para problemas parabólicos El ejemplo clásico de una ecuación parabólica sencilla y con mayor campo de aplicación en una dimensión es la ecuación del calor o ecuación de difusión. El problema es encontrar la función v(x, t) (que puede representar una temperatura, concentración de una sustancia, etc.) que satisface el problema    ∂tv(x, t) = D∂xxv(x, t), 0 < x < L, t > 0, v(x, 0) = f(x), 0 ≤ x ≤ L, (Condiciones iniciales) v(0, t) = α(t), v(L, t) = β(t), t ≥ 0 (Condiciones de frontera), (2.2) donde D es la constante de difusión y f(0) = α(0) y f(L) = β(0). La ecuación del calor aparece en los modelos matemáticos relacionados con problemas de difusión y Mecánica de Fluidos, y muchas de las propiedades y comentarios que estudiaremos para ella se pueden trasladar a otras ecuaciones parabólicas. Esta ecuación modeliza la conducción del calor en una barra cilíndrica de longitud L cuya sección transvesal es uniforme, pequeña y de un material homogéneo. La función v (x, t) mide la temperatura de la barra en cada momento del tiempo t > 0 y en cada punto del espacio x ∈ [0, L]. D > 0 es una constante que depende de las características físicas de la barra. La solución de esta EDPs se expresa en forma de serie para ciertos tipos de condiciones iniciales f (x). Nuestro objetivo en este tema es desarrollar métodos numéricos que permitan obtener la solución del problema de forma aproximada.
  • 51. 51 2.2.1. Método explícito Aplicaremos las fórmulas de las diferencias finitas sobre los puntos de una malla uniforme rectangular (xj, tn) con xj = jh, j = 0, 1, 2, . . . , J + 1, tn = nk, n = 0, 1, 2, . . . donde h = ∆x es el tamaño del salto en la variable x y k = ∆t es el tamaño del paso temporal. Utilizaremos la notación vn j = v(xj, tn) y un j ≈ v(xj, tn) para el valor exacto y la aproximación numérica en el punto nodal (xj, tn), respectivamente. Puesto que la ecuación del calor es una ecuación de evolución, una primera aproximación es plantearla como un esquema explícito de forma progresiva en el tiempo, de modo que podamos calcular, para todo j, los valores un+1 j a partir de los valores en el instante de tiempo anterior un j . Calculemos las fórmulas en diferencias que utilizaremos para aproximar ∂tv(x, t) y ∂2 xx(x, t). vn+1 j = v(xj, tn + k) = v(xj, tn) + k∂tv(xj, tn) + k2 2 ∂2 ttv(xj, ξn) = vn j + k(vt)n j + k2 2 vtt(xj, ξn), donde ξn ∈ (tn, tn+1). Por tanto: ∂tv(xj, tn) = (vt)n j = vn+1 j − vn j k + k 2 vtt(xj, ξn). (2.3) Por otra parte tenemos vn j+1 = vn j + h(vx)n j + h2 2 (vxx)n j + h3 6 (vxxx)n j + h4 24 vxxxx(ξ1 j , tn), vn j−1 = vn j − h(vx)n j + h2 2 (vxx)n j − h3 6 (vxxx)n j + h4 24 vxxxx(ξ2 j , tn). Sumando las dos identidades precedentes y despejando (vxx)n j obtenemos la fórmula en diferencias centrada (vxx)n j = vn j−1 − 2vn j + vn j+1 h2 + h2 12 vxxxx(ξj, tn). (2.4) En virtud de las ecuaciones (2.3) y (2.4) llegamos a la identidad (vt − D vxx)n j = vn+1 j − vn j k − D vn j−1 − 2vn j + vn j+1 h2 + Rn j , (2.5) donde Rn j = k2 2 vtt(xj, ξn) − h2 12 vxxxx(ξj, tn) = O(k) + O(h2 ).
  • 52. 52 Teniendo en cuenta que v satisface la ecuacion (2.2) y despreciando los términos O(h2 ) y O(k), la fórmula anterior sugiere el esquema en diferencias finitas: un+1 j − un j k = D ( un j−1 − 2un j + un j+1 ) h2 . Observación 2.1 Si v(x, t) es una solución de la ecuación en derivadas parciales (2.2) y, por consiguiente, el lado izquierdo de la ecuación (2.5) se anula, entonces v(x, t) satisface la ecuación en diferencias en primer orden respecto de k y en segundo orden respecto de h. Por tanto, la ecuación (2.5) muestra la medida de aproximación de la ecuación en diferencias finitas a la ecuación en derivadas parciales (2.2). Pero debemos avisar que esto, en general, no es una medida de aproximación de la solución de la ecuación en diferencias finitas a la solución de la ecuación en derivadas parciales, sino que para ello se necesitan condiciones adicionales que presentaremos más adelante cuando realicemos el análisis del error. Podemos despejar un+1 j explícitamente en términos de los valores en el paso temporal anterior un+1 j = un j + Dk h2 (un j−1 − 2un j + un j+1) = run j−1 + (1 − 2r)un j + run j+1, donde r = Dk h2 , j = 1, . . . , J y n = 0, 1, 2, . . .. Finalmente, imponiendo las condiciones iniciales y las condiciones de frontera queda la ecuación en diferencias finitas:    un+1 j = run j−1 + (1 − 2r)un j + run j+1, j = 1, 2, . . . , J, n = 0, 1, 2, . . . , u0 j = f(xj), j = 0, 1, . . . , J + 1, un 0 = α(tn) = αn , un J+1 = β(tn) = βn , ∀n = 0, 1, 2, . . . . (2.6) Matricialmente podemos escribir el sistema recurrente anterior como           un+1 1 un+1 2 un+1 3 ... un+1 J−1 un+1 J           =            1 − 2r r 0 · · · 0 0 r 1 − 2r r · · · 0 0 0 r 1 − 2r r ... ... ... ... ... ... ... ... 0 0 · · · r 1 − 2r r 0 0 · · · · · · r 1 − 2r                      un 1 un 2 un 3 ... un J−1 un J           +           rαn 0 0 ... 0 rβn           , que en forma compacta lo expresaremos por u(n+1) = A · u(n) + b(n) ,
  • 53. 53 donde u(n) , b(n) ∈ RJ×1 y A ∈ RJ×J . Obsérvese que la matriz A de coeficientes del sistema recursivo es tridiagonal. Ejemplo 2.1 Hallar la solución de la ecuación del calor en el intervalo [0, T] = [0, 10] para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y que v (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1. Solución.- 1) t = 0,1 : u1 1 = 0 + 0,1 4 (0 − 2 ∗ 0 + 100) = 2. 5, u1 2 = 0 + 0,1 4 (0 − 2 ∗ 0 + 0) = 0, u1 3 = 0 + 0,1 4 (0 − 2 ∗ 0 + 0) = 0, u1 4 = 0 + 0,1 4 (50 − 2 ∗ 0 + 0) = 1. 25. 2) t = 0,2 : u2 1 = 2,5 + 0,1 4 (0 − 2 ∗ 2,5 + 100) = 4. 875, u2 2 = 0 + 0,1 4 (0 − 2 ∗ 0 + 2,5) = 0,062 5, u2 3 = 0 + 0,1 4 (1,25 − 2 ∗ 0 + 0) = 0,031 25, u2 4 = 1,25 + 0,1 4 (50 − 2 ∗ 1,25 + 0) = 2. 437 5. En el paso 99 obtenemos u99 = (100, 68,5809, 45,8036, 36,3011, 39,3871, 50,0000). De aquí: 100) t = 10 : u100 1 = 68,5809 + 0,1 4 (45,8036 − 2 ∗ 68,5809 + 100) = 68. 796 9, u100 2 = 45,8036 + 0,1 4 (36,3011 − 2 ∗ 45,8036 + 68,5809) = 46. 135 4, u100 3 = 36,3011 + 0,1 4 (39,3871 − 2 ∗ 36,3011 + 45,8036) = 36. 615 8, u100 4 = 39,3871 + 0,1 4 (36,3011 − 2 ∗ 39,3871 + 50) = 39. 575 2. La solución, a medida que el tiempo tiende a infinito converge a la recta que une los puntos de la frontera (0, 100) y (10, 50). En la siguiente tabla y gráficos podemos ver las soluciones numéricas correspondientes a varios momentos del tiempo:
  • 54. 54 2 4 6 8 10 20 40 60 80 100 Figura 2.1: Ecuación del calor x/t 0,1 5 10 50 100 150 0 100 100 100 100 100 100 2 2,5 53,4341 68. 796 9 89,5523 89,9963 89,99997 4 0 24,7168 46. 135 4 79,2755 79,9940 79,99995 6 0 17,4521 36. 615 8 69,2755 69,9940 69,99995 8 1,25 27,9807 39. 575 2 59,5523 59,9963 59,99997 10 50 50 50 50 50 50 2 4 6 8 10 20 40 60 80 100 Figura 2.2: Ecuación del calor
  • 55. 55 En la siguiente tabla tenemos los resultados (para el momento T = 10) de aplicar el método con distintos pasos: x h = 0,5, k = 0,1 h = 1, k = 0,5 h = 2, k = 0,1 0 100 100 100 2 68,9029 69,9181 68. 796 9 4 46,1479 47,6968 46. 135 4 6 36,4898 37,9302 36. 615 8 8 39,456 40,2958 39. 575 2 10 50 50 50 x h = 2, k = 2 h = 1, k = 1 0 100 100 2 71,875 100150 4 48,4375 99150 6 40,6250 71100 8 40,6250 52850 10 50 50 Vemos que en el caso de la última columna los resultados están muy lejos de los correctos. En la siguiente tabla podemos ver que un pequeño desfase en el cumplimiento de la condición tiene grandes consecuencias en los resultados: x h = 0,5, k = 0,13 T = 10,01 h = 0,5, k = 0,125 0 100 100 2 13,5211 69,070 4 −39,761 46,405 6 −45,191 36,7316 8 −9,085 39,598 10 50 50 2.2.2. Método implícito Los algoritmos implícitos se emplean para evitar los problemas de estabilidad que hemos visto en el caso anterior. Estos permiten utilizar pasos espaciales
  • 56. 56 pequeños (para obtener mejor precisión) sin necesidad de usar un paso temporal excesivamente pequeño. Las aproximaciones que usaremos para las derivadas serán similares a las de antes. La diferencia estriba en que la aproximación la realizaremos en el punto (xj, tn+1). Para la derivada temporal utilizaremos la diferencia regresiva: vn j = v(xj, tn+1 − k) = vn+1 j − k(vt)n+1 j + k2 2 (vtt)(xj, ξn), donde ξn ∈ (tn, tn+1). Entonces, (vt)n+1 j = vn+1 j − vn j k + k 2 vtt(xj, ξn). Para la aproximación de la derivada segunda espacial se utilizará de nuevo la diferencia central, pero evaluada en el punto (xj, tn+1), esto es, (vxx)n+1 j = vn+1 j−1 − 2vn+1 j + vn+1 j+1 h2 + h2 12 vxxxx(ξj, tn+1). Así pues, obtenemos (vt − D vxx)n+1 j = vn+1 j − vn j k − D vn+1 j−1 − 2vn+1 j + vn+1 j+1 h2 + O(k) + O(h2 ). (2.7) Si tenemos en cuenta que v satisface la ecuacion (2.2) y despeciamos los términos O(h2 ) y O(k), la fórmula anterior sugiere el esquema en diferencias finitas un+1 j − un j k = D ( un+1 j−1 − 2un+1 j + un+1 j+1 ) h2 . Mediante cálculos similares al esquema explícito, llegamos a la siguiente ecuación en diferencias implícita:    −run+1 j−1 + (1 + 2r)un+1 j − run+1 j+1 = un j , j = 1, 2, . . . , J, n = 0, 1, 2, . . . , u0 j = f(xj), j = 0, 1, . . . , J + 1, un 0 = α(tn) = αn , un J+1 = β(tn) = βn , ∀n = 0, 1, 2, . . . . (2.8) Al escribir esta ecuación en forma matricial obtenemos            1 + 2r −r 0 · · · 0 0 −r 1 + 2r −r · · · 0 0 0 −r 1 + 2r −r ... ... ... ... ... ... ... ... 0 0 · · · −r 1 + 2r −r 0 0 · · · · · · −r 1 + 2r                      un+1 1 un+1 2 un+1 3 ... un+1 J−1 un+1 J           =           un 1 un 2 un 3 ... un J−1 un J           +           r(αn+1 ) 0 0 ... 0 r(βn+1 )          
  • 57. 57 que la escribiremos por Q · u(n+1) = u(n) + b(n+1) . Vemos pues que en cada paso n este método requiere un número mayor de operaciones que en el algoritmo explícito, ya que tenemos que resolver un sistema de ecuaciones. Sin embargo, es importante observar que la matriz Q es tridiagonal, lo que permite resolver el sistema de forma muy eficiente. Este tipo de sistemas requiere una cantidad de operaciones de orden O (J), muy inferior al caso general, donde se necesita efectuar operaciones de orden O (J3 ) . Por tanto, el incremento en el número de operaciones por paso va a ser pequeño. Además, como veremos más adelante, este incremento en la cantidad de operaciones se ve ampliamente compensado por el hecho de que no vamos a necesitar imponer un paso temporal pequeño, por lo que el cómputo global de operaciones va a resultar mejor que en el método explícito. Un aspecto importante es saber si el sistema de ecuaciones obtenido tiene una única solución. Eso lo sabremos al estudiar los valores propios de la matriz Q, que son todos positivos. Por tanto, Q es invertible, el sistema tiene una única solución y el método se puede implementar correctamente. Ejemplo 2.2 Hallar la solución de la ecuación del calor en el intervalo [0, T] = [0, 10] para una barra de longitud L = 10 dado que la temperatura inicial es cero, D = 1 y que v (0, t) = 100, v (10, t) = 50. Usar h = 2, k = 0,1. Solución. Tenemos que r = 0,1 4 = 0,025, 1 + 2r = 1,05, uj 0 = 100, uj 5 = 50, r ∗ uj 0 = 2,5, r ∗ uj 5 = 1,25. 1) t = 0,1 :      1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05           u1 1 u1 2 u2 3 u1 4      =      2,5 0 0 1,25      ,      u1 1 u1 2 u2 3 u1 4      =      2. 382 32 5. 742 97 × 10−2 2. 972 89 × 10−2 1. 191 18      . Observamos que, a diferencia del método explícito, todos los valores de u han cambiado y son distintos de cero ya en la primera iterada.
  • 58. 58 2) t = 0,2 :      1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05           u1 1 u1 2 u2 3 u1 4      =      4. 882 32 0,057 429 7 0,029 728 9 2. 441 18      ,      u1 1 u1 2 u2 3 u1 4      =      4. 653 82 0,167 59 8. 770 87 × 10−2 2. 327 02      . En el paso 99 obtenemos u99 = (100, 68,3262, 45,47296, 36,0324, 39,23398, 50,0000). De aquí: 100) t = 10      1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05 −0,025 0 0 −0,025 1,05           u1 1 u1 2 u2 3 u1 4      =      70. 826 2 45. 472 96 36. 032 4 40. 483 98      ,      u1 1 u1 2 u2 3 u1 4      =      68. 544 1 45. 804 9 36. 345 8 39. 421 5      . Al igual que en el anterior algoritmo, resumimos en la siguiente tabla las soluciones numéricas correspondientes a varios momentos del tiempo: x/t 0,1 5 10 50 100 150 0 100 100 100 100 100 100 2 2. 382 32 52,9651 68. 544 1 89,5314 89,99595 89,99997 4 5. 742 97 × 10−2 24,5002 45. 804 9 79,2417 79,99345 79,99994 6 2. 972 89 × 10−2 17,3798 36. 345 8 69,2417 69,99345 69,99994 8 1. 191 18 27,8062 39. 421 5 59,5313 59,99595 59,99997 10 50 50 50 50 50 50 Los resultados son similares a los obtenidos con el método explícito.
  • 59. 59 La gran ventaja de este método en relación al explícito reside en que es estable para valores cualesquiera de k y h. Además, el algoritmo es convergente con la misma rapidez que el algoritmo explícito, es decir, de orden O(k + h2 ). Por tanto, podemos reducir el tamaño del paso h, y así obtener mejor precisión, sin necesidad de utilizar valores excesi- vamente pequeños de k. De esta forma conseguimos una buena precisión sin aumentar de forma inaceptable el número de operaciones. Veamos ahora qué resultados se obtienen con los pasos h = 1, k = 1 y h = 0,5, k = 0,13 : x h = 0,5, k = 0,13 T = 10,01 h = 1, k = 1 0 100 100 2 68,6343 67,4761 4 45,7749 44,2870 6 36,1806 34,9968 8 39,2908 38,6295 10 50 50 A diferencia del método explícito, con estos parámetros obtenemos resultados aceptables. Aunque este método presenta claras ventajas con respecto al anterior sigue sin ser un método completamente satisfactorio. La razón reside en que, al ser el orden de convergencia O(k + h2 ), predomina el error temporal sobre el espacial (al tener k menor orden), por lo que de poco nos sirve disminuir el paso h con el objetivo de obtener mejor precisión. Fijémonos en que para conseguir precisión h2 debemos escoger k ∼ h2 , con lo que nos aparece el mismo problema que en el algoritmo explícito. Veamos pues un método que no adolece de ninguno de estos problemas. 2.2.3. Método de Crank-Nicholson En el método anterior hemos apreciado que el error en el discretizado era de primer orden en k y de segundo orden en h. En este epígrafe trataremos de encontrar un método que mejore el anterior a segundo orden respecto de k. Una idea para alcanzar este objetivo podría ser aproximar por la fórmula de diferencia central de dos puntos la derivada temporal (vt)n j = vn+1 j − vn−1 j 2k + O(k2 ).
  • 60. 60 La idea expuesta parece buena, pero desafortunadamente conduce a un método numérico que es siempre inestable, por lo que no ha de utilizarse nunca. Parece que la diferencia progresiva es la más adecuada, pero ésta se puede ver también como una diferencia centrada en el punto intermedio, esto es, (vt) n+ 1 2 j = vt(xj, tn + k 2 ) = vn+1 j − vn j k + O( k2 4 ). Ahora el problema reside en aproximar la derivada segunda espacial en este punto intermedio tn + k 2 . Estimaremos este valor utilizando una mezcla ponderada de la derivada segunda en los nodos (xj, tn) y (xj, tn+1), (vxx) n+ 1 2 j = vxx(xj, tn + k 2 ) ≈ (1 − θ)vxx(xj, tn) + θvxx(xj, tn+1), ≈ (1 − θ) vn j−1 − 2vn j + vn j+1 h2 + θ vn+1 j−1 − 2vn+1 j + vn+1 j+1 h2 , donde θ ∈ [0, 1]. En definitiva la ecuación en derivadas parciales (2.2) se discretiza en el punto (xj, tn + k/2) mediante el esquema numérico un+1 − un j k = D(1 − θ) un j−1 − 2un j + un j+1 h2 + Dθ un+1 j−1 − 2un+1 j + un+1 j+1 h2 . Se puede probar que cuando θ = 1/2, el error en la discretización (error de truncación) es de orden 2 en la variable temporal y de orden 2 en la variable espacial, esto es, O(k2 + h2 ). En ese caso el método se denomina método de Crank-Nicolson y adquiere al forma 2(un+1 j − un j ) = D k h2 [(un j−1 − 2un j + un j+1) + (un+1 j−1 − 2un+1 j + un+1 j+1 )], reordenando términos e imponiendo las condiciones iniciales y de frontera obtenemos el esquema numérico    −run+1 j−1 + 2(1 + r)un+1 j − run+1 j+1 = run j−1 + 2(1 − r)un j + run j+1, j = 1, . . . , J, un+1 0 = αn+1 , un+1 J+1 = βn+1 , n ≥ 0, u0 j = fj, j = 0, 1, . . . , J, J + 1. (2.9) Matricialmente, el esquema anterior se escribe
  • 61. 61            2(1 + r) −r 0 · · · 0 0 −r 2(1 + r) −r · · · 0 0 0 −r 2(1 + r) −r ... ... ... ... ... ... ... ... 0 0 · · · −r 2(1 + r) −r 0 0 · · · · · · −r 2(1 + r)                      un+1 1 un+1 2 un+1 3 ... un+1 J−1 un+1 J           =            2(1 − r) r 0 · · · 0 0 r 2(1 − r) r · · · 0 0 0 r 2(1 − r) r ... ... ... ... ... ... ... ... 0 0 · · · r 2(1 − r) r 0 0 · · · · · · r 2(1 − r)                      un 1 un 2 un 3 ... un J−1 un J           +           r(αn + αn+1 ) 0 0 ... 0 r(βn + βn+1 )           , que de forma compacta se reescribe como Q · u(n+1) = Q1 · u(n) + c(n) . 2.3. Estabilidad, consistencia y convergencia Sea u(n) = (un 1 , un 2 , . . . , un J )T los valores nodales en el instante tn que se obtienen al hacer correr un cierto esquema numérico u(n+1) = Au(n) + b(n) (2.10) para obtener una aproximación numérica de una EDPs. Consideremos v(n) = (vn 1 , . . . , vn J )T los valores nodales en el tiempo tn de la solución exacta y denotemos por e(n) = u(n) − v(n) el error cometido en la aproximación numérica. Diremos que el método numérico es estable cuando Am esté uniformemente acotada para todo k y m verificando mk ≤ T. En otras palabras, cuando la diferencia entre los valores aproximados y los reales permanezcan acotados en todo nivel del tiempo. El que un esquema numérico sea consistente con un problema de contorno significa, que para pasos en la discretización suficientemente pequeños, la solución exacta del problema verifica el esquema numérico con un error tan pequeño como se desee. Finalmente, para que un esquema sea
  • 62. 62 convergente se debe verificar que para una discretización suficientemente fina, el error en j en cada nodo pueda hacerse tan pequeño como se quiera en cualquier paso del tiempo. Definición 2.2 Un esquema en diferencias finitas de la forma (2.10) que aproxima a una ecuación diferencial en derivadas parciales es un esquema convergente en el tiempo t si v(n) − u(n) → 0, cuando h, k → 0, siempre y cuando (n + 1)k → t. Diremos que la convergencia es de orden (p, q) si v(n) − u(n) = O(hp ) + O(kq ). Definición 2.3 Un esquema en diferencias finitas de la forma (2.10) es consistente a una ecuación diferencial en derivadas parciales si la solución v(x, t) satisface v(n+1) = Av(n) + b(n) + kτ(n) , donde τ(n) → 0, cuando h, k → 0. Además, se dice que es consistente de orden (p, q) si τ(n) = O(hp ) + O(kq ). La cantidad τ(n) se denomina error de truncamiento o error de consistencia. Observación 2.4 Tanto en la definición convergencia como en la de consistencia, la norma · que utilizamos cambia conforme el paso h es más pequeño, puesto que el espacio de vectores nodales crece en dimensión.
  • 63. 63 Definición 2.5 Diremos que un esquema numérico de la forma (2.10) es estable si Am ≤ C, para todo k y n con mk ≤ T. Consideremos un esquema en diferencias finitas dado matricialmente por (2.10) u(n+1) = Au(n) + b(n) . Supongamos que v = v(x, t) es una solución exacta de ecuación (2.2) que satisface la ecuación anterior salvo por un término (error residual) que denotaremos por E(n) , v(n+1) = Av(n) + b(n) + E(n) . Restando las dos ecuaciones anteriores obtenemos v(n+1) − u(n+1) = A(v(n) − u(n) ) + E(n) . Definimos el error global e(n) = v(n) − u(n) , entonces: e(n+1) = Ae(n) + E(n) = A(Ae(n−1) + E(n−1) ) + E(n) = A2 e(n−1) + AE(n−1) + E(n) = . . . . . . = A(n+1) e(0) + n∑ m=0 Am E(n−m) . Asumiremos dos condiciones: que no hay error inicial (e(0) = 0), y que la norma de las potencias m-ésimas de la matriz A están uniformemente acotada, esto es, Am ≤ C (estabilidad): e(n+1) = n∑ m=0 Am E(n−m) ≤ n∑ m=0 Am E(n−m) ≤ C n∑ m=0 E(m) . Supongamos que nuestro esquema en diferencias finitas es consistente de orden (p, q) con la EDPs. Entonces E(m) = kτ(m) , y para cada m = 0, 1, . . . , n
  • 64. 64 podemos encontrar una constante Km verificando τ(m) ≤ Km(hp + kq ). Consideremos K(t) = m´ax0≤m≤n Km. Por la propia construcción, se verifica que τ(m) ≤ K(t) para todo 0 ≤ m ≤ n, de donde concluimos: e(n+1) ≤ Ck n∑ m=0 τ(m) ≤ Ck(n + 1)K(t)(hp + kq ). Pero cuando k → 0 entonces k(n+1) → t, y así conseguimos convergencia de orde (p, q). En definitiva, hemos probado parcialmente el célebre teorema de Lax, que enunciamos de manera simplificada. Teorema 2.6 (Lax) Un esquema numérico en diferencias finitas del tipo (2.10) consistente a una EDPs es convergente si, y solo si, es estable.
  • 65. Apéndice A Analisis numérico matricial A.1. Normas vectoriales Para introducir nociones de consistencia y convergencia es necesario utilizar normas vectoriales con la finalidad de medir el error de la aproximación. Definición A.1 Una norma en un espacio vectorial real V es una aplicación · : V → R verificando: (1) u ≥ 0 para todo u ∈ V , y u = 0 si, y solo si, u = 0. (Positividad). (2) λu = |λ| u , para todo λ ∈ R y u ∈ V . (Homogeneidad). (3) u+v ≤ u + v , para todo u, v ∈ V . (Desigualdad Triangular). Para nuestros propósitos, consideraremos el espacio vectorial V = Rm×1 y definiremos las normas más utilizadas para tema que nos ocupa. Una elección común es la norma del supremo (o norma del infinito), denotada por · ∞: u ∞ = sup 1≤i≤m |ui|. 65
  • 66. 66 Es fácil comprobar que se verfican todas las propiedades requeridas. En la práctica es muy valioso obtener una cota de la norma del supremo, puesto que en ese caso tenemos acotadas todas las componentes del error por ella. Para algunos problemas, sin embargo, puede ser más apropiado y fácil de calcular cotas para otras normas. Son frecuentes las siguientes: u 1 = m∑ i=1 |ui|, (1-norma) u 2 = m∑ i=1 |ui|2, (2-norma o norma euclídea) Ellos son casos particulares de una familia general de p-normas, definidas por u p = ( m∑ i=1 |ui|p )1/p . La norma del supremo se obtiene cuando hacemos tender p → ∞ de la p-norma. Cuando se trata de comparar dos vectores, uno que representa los valores nodales exactos de una función, y otro que representa valores aproximados, (donde los nodos están separados uniformemente por una longitud h > 0), es mucho más apropiado utilizar la norma 2,h definida por u 2,h = h m∑ i=1 |ui|2. Un hecho importante que relaciona todas estas normas es que son equivalentes. Definición A.2 Dos normas · y · ∗ se dice que son equivalentes si existen constantes a, b > 0 tales que a u ≤ u ∗ ≤ b u , para todo u ∈ Rm×1 De manera informal, la equivalencia viene a decir que si una sucesión de vectores converge a 0 respecto de una norma cualquiera de ellas, entonces la
  • 67. 67 sucesión tambien converge a 0 respecto de todas las demás, y si una cierta cantidad está acotada bajo una norma, automáticamente está acotada bajo todas las demás normas equivalentes (quizás cambie la cota). De hecho, en dimensión finita, todas las normas son equivalentes. A.2. Normas matriciales Proposición A.3 Sea · : Rm×1 → R una norma vectorial cualquiera y definamos con el mismo nombre la aplicación · : Rm×m −→ R A A := sup u∈Rm×1 Au u (A.1) Entonces · es una norma definida en el conjunto de las matrices cuadradas Rm×m . Además se verifican las siguientes propiedades: (a) Au ≤ A u para todo A ∈ Rm×m y u ∈ Rm×1 . (b) AB ≤ A B para todo A, B ∈ Rm×m . Definición A.4 Cualquier norma · : Rm×m → R inducida por una norma vectorial mediante (A.1) se denomina norma matricial. Definimos el radio espectral de una matriz A como ρ(A) = m´ax 1≤j≤m {|λj|} , donde λj son los valores propios de A.
  • 68. 68 Proposición A.5 Si ρ(A) denota el radio espectral de una matriz A, entonces para cualquier norma matricial · se verifica la desigualdad ρ(A) ≤ A . Prueba. El radio espectral se define como el m´ax {|λ1|, . . . , |λm|}, donde λi son los valores propios de A. Sea u ∈ Rm×1 es vector propio asociado a un valor propio λi, entonces |λi| u = λiu = Au ≤ A u . Dividiendo por u en la desigualdad anterior obtenemos que |λi| ≤ A para todo i ∈ {1, . . . , m} y, por tanto, ρ(A) = m´ax {|λi|} ≤ A . Proposición A.6 Para las normas vectoriales · 1, · ∞ y · 2 obtenemos las siguientes normas matriciales: (a) A 1 = m´ax1≤j≤m ∑m i=1 |aij|. (b) A ∞ = m´ax1≤i≤m ∑m j=1 |aij|. (c) A 2 = √ ρ(AT A).
  • 69. 69 Teorema A.7 Consideremos el sistema lineal recursivo u(n+1) = A · u(n) . (A.2) Son equivalentes: (I) La sucesión de vectores u(n) está uniformemente acotada en norma para cualquier condición inicial u(0) , u(n) ≤ C1(= cte), para todo n ∈ N, u(0) ∈ Rm×1 . (II) Las potencias de A están uniformemente acotadas, Am ≤ C2(= cte), para todo m ∈ N. En las condiciones equivalentes del teorema anterior, diremos que el sistema recursivo (o la matriz A) es estable. Teorema A.8 Si el radio espectral verifica ρ(A) ≤ 1, y A no tiene valores propios defectivos (esto es, su multiplicidad algebraica es diferente a la multiplicidad geométrica) de módulo 1, entonces la matriz A es estable.
  • 70. 70 Teorema A.9 Una matriz tridiagonal de dimensión m × m de la forma T =            b c 0 · · · 0 0 a b c · · · 0 0 0 a b c ... ... ... ... ... ... ... ... 0 0 · · · a b c 0 0 · · · · · · a b            , tiene valores propios λj = b + 2c √ a c cos( πj m + 1 ), j = 1, 2, . . . , m.