Problemas de valores iniciales en ecuaciones diferenciales ordinarias

Introducción

Las ecuaciones diferenciales ordinarias son una herramienta fundamental en la resolución de problemas en ingeniería, machine learning y en ciencia en general.

Una ecuación diferencial es una ecuación del tipo: \[ \frac{dy}{dt}=y'(t)=f(t,y(t)),\ \mathrm{para\ }a\leq t\leq b, \] donde \(t\) es la variable independiente (en algunos libros la indican por \(x\)) que suponemos que está en un intervalo determinado \([a,b]\) e \(y(t)\) es la función que tenemos que hallar que verifique la ecuación anterior.

Por tanto, la “incógnita” de una ecuación diferencial es una función real de variable real indicada por \(y(t)\) de la que tenemos que hallar su valor en un intervalo determinado \([a,b]\).

Introducción

En caso en que hubiese una solución de la ecuación anterior, ésta no es única. Para “imponer” la unicidad, tenemos que dar una condición inicial del tipo \(y(a)=y_0\).

Entonces resolver la ecuación diferencial anterior, con la condición inicial \(y(a)=y_0\) se denomina resolver un problema de valor inicial para ecuaciones diferenciales.

Introducción

En este capítulo, trataremos también el caso de tener un sistema de ecuaciones diferenciales. Un sistema de ecuaciones diferenciales de \(m\) ecuaciones con \(m\) incógnitas o \(m\) funciones reales de variable real es un sistema de ecuaciones del tipo: \[ \begin{align*} \frac{dy_1}{dt}=y_1'(t) & = f_1(t,y_1(t),\ldots,y_m(t)),\\ \frac{dy_2}{dt}=y_2'(t) & = f_2(t,y_1(t),\ldots,y_m(t)),\\ & \vdots\\ \frac{dy_m}{dt}=y_m'(t) & = f_m(t,y_1(t),\ldots,y_m(t)), \end{align*} \] donde ahora las “incógnitas” son las funciones \(y_1(t),y_2(t),\ldots,y_m(t)\), para \(t\in [a,b]\) y condiciones iniciales: \[ y_1(a)=y_{01},\ y_2(a)=y_{02},\ldots,y_m(a)=y_{0m}. \]

Introducción

Una ecuación diferencial del tipo \(\frac{dy}{dt}=y'(t)=f(t,y)\) se denomina ecuación diferencial de primer orden ya que sólo aparece la derivada primera.

Entonces una ecuación diferencial de orden \(n\) es una ecuación del tipo: \[ y^{(n)}=f(t,y(t),y'(t),y''(t),\ldots,y^{(n-1)}(t)), \] para \(t\in [a,b]\) en un cierto intervalo \([a,b]\) con condiciones iniciales: \[ y(a)=y_{0},\ y'(a)=y_1,\ldots y^{(n-1)}(a)=y_{n-1}. \] Veremos cómo transformar una ecuación diferencial de orden \(n\) en un sistema de ecuaciones diferenciales con \(n\) ecuaciones.

Entonces resolver una ecuación diferencial de orden \(n\) es equivalente a hallar la solución de un sistema de \(n\) ecuaciones diferenciales.

Teoría elemental de ecuaciones diferenciales

Introducción

Las ecuaciones diferenciales aparecen en problemas en ingeniería y ciencia cuando intentamos modelizar un fenómeno que queremos estudiar.

Una vez establecida la ecuación diferencial existen dos perspectivas para hallar una solución aproximada del fenómeno:

  • Simplificar la ecuación diferencial por otra de la que seamos capaces de hallar una solución analítica exacta y usar dicha solución como solución aproximada de nuestra ecuación diferencial o
  • Usar métodos específicos de aproximación de la ecuación diferencial original y será la perspectiva que desarrollaremos en este capítulo.

Antes de pasar a estudiar cómo hallar una solución aproximada de una ecuación diferencial, recordemos los conceptos necesarios para saber cuándo dicha ecuación tiene solución.

Existencia de solución. Condición de Lipschitz

Dada una ecuación diferencial de la forma \(y'=f(t,y)\), con \(t\in [a,b]\) en un cierto intervalo \([a,b]\) con condición inicial \(y(a)=y_0\), para estudiar si dicha ecuación tiene solución, necesitamos que la función de dos variables \(f\) verifique la condición de Lipschitz:

Definición de condición de Lipschitz. Dada una función \(f: D\longrightarrow \mathbb{R}\) de dos variables \(f(t,y)\) definida en un dominio \(D\subset\mathbb{R}^2\), diremos que verifica la condición de Lipschitz respecto la segunda variable \(y\) si existe una constante \(L>0\) tal que para cualquier \((t,y_1)\in D\), \((t,y_2)\in D\), se cumple: \[ |f(t,y_1)-f(t,y_2)|\leq L |y_1-y_2|. \]

La constante \(L\) se denomina constante de Lipschitz de la función \(f\).

Existencia de solución. Condición de Lipschitz

Ejemplo

Consideremos la función \(f(t,y)=t+2 y\) definida en el rectángulo \(D=[0,2]\times [-1,1]\subset\mathbb{R}^2\).

Veamos que verifica la condición de Lipschitz.

Sean \((t,y_1)\in D\), \((t,y_2)\in D\), es decir \(0\leq t\leq 2\), \(-1\leq y_1\leq 1\), \(-1\leq y_2\leq 1\). Entonces, \[ |f(t,y_1)-f(t,y_2)| =|t+2 y_1-t-2 y_2|=2 |y_1-y_2|. \] Acabamos de ver que \(f\) verifica la condición de Lipschitz con constante de Lipschitz \(L=2\).

Existencia de solución. Convexidad

Otra de las condiciones que necesitamos es que el dominio de definición de la función \(f\) sea convexo:

Definición de convexidad. Sea \(D\subset \mathbb{R}^2\) un subconjunto del plano \(\mathbb{R}^2\). Diremos que el conjunto \(D\) es convexo si para cualquier par de puntos \((t_1,y_1),(t_2,y_2)\in D\) del conjunto \(D\), el segmento que une los dos puntos anteriores también está en \(D\), es decir, para cualquier \(\lambda\in [0,1]\), \[ \lambda (t_1,y_1)+(1-\lambda) (t_2,y_2)=(\lambda t_1+(1-\lambda)t_2,\lambda y_1+(1-\lambda)y_2)\in D. \]

Existencia de solución. Convexidad

Ejemplo

El siguiente conjunto dibujado en verde es convexo:

Existencia de solución. Convexidad

Ejemplo

En cambio, el siguiente conjunto dibujado en verde no es convexo:

Existencia de solución. Condición de Lipschitz

Comprobar que un función \(f\) verifica la condición de Lipschitz es bastante tedioso si usamos la definición. Sin embargo, el teorema siguiente nos puede facilitar las cosas:

Teorema. Condición suficiente de Lipschitz. Dada una función \(f: D\longrightarrow \mathbb{R}\) de dos variables \(f(t,y)\) de clase \({\cal C}^1\) definida en un dominio \(D\subset\mathbb{R}^2\) convexo tal que para todo \((t,y)\in D\) se cumple que existe una constante \(L\) tal que: \[ \left|\frac{\partial f}{\partial y}(t,y)\right|\leq L. \] Entonces la función \(f\) verifica la condición de Lipschitz respecto la segunda variable \(y\) con constante de Lipschitz \(L\).

Demostración del Teorema

Sean \((t,y_1),(t,y_2)\in D\), aplicando el Teorema del valor medio con respecto la segunda variable \(y\), tenemos que existe un valor \((t,\xi)\), donde \(\xi\in <y_1,y_2>\) y por ser \(D\) convexo, \((t,\xi)\in D\) tal que: \[ |f(t,y_1)-f(t,y_2)|=\left|\frac{\partial f}{\partial y}(t,\xi)\cdot (y_1-y_2)\right|=\left|\frac{\partial f}{\partial y}(t,\xi)\right|\cdot |y_1-y_2|\leq L\cdot |y_1-y_2|, \] tal como queríamos demostrar.

Ejemplo anterior

Si aplicamos el teorema anterior al ejemplo anterior donde recordemos que \(f(t,y)=t+2y\) con \(D=[0,2]\times [-1,1]\), tenemos:

  • \(D\) es convexo ya que cualquier rectángulo es convexo,
  • existe un valor \(L=2\) tal que: \[ \left|\frac{\partial f}{\partial y}(t,y)\right|=2. \] Por tanto, podemos afirmar que la función \(f\) verifica la condición de Lipschitz respecto la segunda variable \(y\) con constante de Lipschitz \(L=2\).

Problemas bien planteados

Resumamos lo visto hasta el momento:

  • Dada una ecuación diferencial \(y'=f(t,y)\) con \(t\in [a,b]\) con condición inicial \(y(a)=y_0\), sabemos que tiene solución única si la función \(f\) verifica la condición de Lipschitz con constante de Lipschitz \(L\).

  • Además, si el dominio de definición \(D\) es convexo, para verificar que la función \(f\) verifica la condición de Lipschitz, basta ver que la parcial con respecto \(y\), \(\frac{\partial f}{\partial y}\), está acotada en el dominio \(D\) por una constante \(L\) y dicha constante sería la constante de Lipschitz.

Ahora bien, como nuestro objetivo es hallar una solución aproximada de la ecuación diferencial, no nos conformamos en que exista dicha solución, sino que necesitamos que dicha solución sea estable, es decir, que si tenemos pequeños errores de redondeo en la condición inicial, \(y_0\) o en el cálculo de la función \(f(t,y(t))\), la solución aproximada \(\hat{y}(t)\) esté controlada o tenga errores que estén controlados de alguna manera.

Definamos formalmente lo dicho anteriormente:

Problemas bien planteados

Definición de problema bien planteado. Diremos que el problema de valor inicial \(\frac{dy}{dt}=y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0,\) es un problema bien planteado si:

  • existe una única solución \(y(t)\) y
  • existen constantes \(\epsilon_0\) y \(C>0\) tal que para cualquier \(\epsilon\in (0,\epsilon_0)\) y para cualquier función \(\delta (t)\) continua, con \(|\delta(t)|<\epsilon\), para todo \(t\in [a,b]\) y si el valor \(\delta_0\) verifica \(|\delta_0| <\epsilon\), el problema de valor inicial perturbado: \[ \frac{dz}{dt}=z'=f(t,z)+\delta(t),\ a\leq t\leq b,\ z(a)=y_0+\delta_0, \] tiene solución única \(z(t)\) que verifica: \[ |z(t)-y(t)|\leq C\epsilon,\ \mathrm{para\ todo\ }t\in [a,b]. \]

Problemas bien planteados

Observación.

La definición anterior nos dice que si perturbamos la condición inicial con una constante \(\delta_0\) y la ecuación diferencial con una función \(\delta(t)\), ambas acotadas por un valor \(\epsilon\) que se supone pequeño, entonces la solución del problema perturbado \(z(t)\) dista de la solución del problema no perturbado \(y(t)\) como máximo en \(C\epsilon\), es decir, está controlada y no puede tener un error tan grande como se quiera.

Ver que un problema está bien planteado a partir de la definición es un trabajo arduo muy complicado. Sin embargo, el teorema siguiente nos simplifica las cosas:

Problemas bien planteados

Teorema. Condición suficiente de problema bien planteado.

Supongamos que el dominio \(D\) es de la forma: \[ D=\{(t,y),\ a\leq t\leq b,\ -\infty<y<\infty\}. \] Sea una función \(f: D\longrightarrow \mathbb{R}\) de dos variables \(f(t,y)\) continua que satisface la condición de Lipschitz respecto la segunda variable \(y\) de constante \(L\). Entonces el problema de condición inicial: \[\frac{dy}{dt}=y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0,\] es un problema bien planteado.

Problemas bien planteados

Observación.

El teorema anterior nos dice que si \(D\) es un rectángulo “infinito” y por tanto convexo y \(f\) una función continua que verifica la condición de Lipschitz respecto la segunda variable \(y\), el problema automáticamente está bien planteado y serán el tipo de problemas que analizaremos en este capítulo.

Ejemplo anterior

Consideremos el problema de valor inicial \(y'=f(t,y)=t+2y\), donde \(f\) está definida en el rectángulo \(D=[0,2]\times [-1,1]\) con condición inicial \(y(0)=y_0\).

Como dicho problema verifica las condiciones del teorema anterior tal como hemos comprobado en ejemplos anteriores, podemos decir que el problema está bien planteado.

Veamos que efectivamente es un problema bien planteado.

La solución del problema no perturbado vale: \(y(t)=\frac{1}{4}\left((1+4y_0)\mathrm{e}^{2t}-1-2t\right).\)

Consideremos el problema perturbado: \(z'=t+2 z+\delta,\) con \(z(0)=y_0+\delta_0\), con \(|\delta|\leq \epsilon\), \(|\delta_0|<\epsilon\), con \(\epsilon\in (0,0.1)\).

La solución de dicho problema es: \(z(t)=\frac{1}{4} \left(\mathrm{e}^{2 t} (2 \delta +4 \delta_0+4 y_0+1)-2 \delta -2t-1\right).\)

Veamos si es un problema bien planteado: \[ |z(t)-y(t)|=\frac{1}{4}\left|\mathrm{e}^{2t}(2\delta+4\delta_0)-2\delta\right|\leq \frac{1}{4}\left(6\epsilon\mathrm{e}^4+2\epsilon \right)=\frac{1}{4}\left(6\mathrm{e}^{4}+2\right)\epsilon. \] Entonces es un problema bien planteado con constante \(C=\frac{1}{4}\left(6\mathrm{e}^{4}+2\right)\approx 82.3972\).

Cálculo de la solución aproximada

Mallado de puntos

Vamos a empezar a ver cómo calcular una solución aproximada del problema de valor inicial \(y'=f(t,y)\) con \(t\in [a,b]\) y \(y(a)=y_0\).

Notaremos con \(\hat{y}\) a la solución aproximada del problema anterior.

No calcularemos \(\hat{y}\) en todos los valores \(t\in [a,b]\) sino en un conjunto discreto de \(t\)’s. Más concretamente,

  • en primer lugar fijaremos un paso \(h>0\) y seguidamente
  • iremos calculando \(\hat{y}\) en los valores \(t_i=a+ih\), para \(i=0,\ldots,n\).

Cálculo de \(\hat{y}\) en el mallado de puntos

Para asegurarnos que “llegamos” al valor final \(t=b\), la relación entre \(h\) y \(n\) debe ser la siguiente: \(h=\frac{b-a}{n}\) ya que de esta forma, \(t_n=a+nh=a+b-a=b\) y calcularemos \(\hat{y}(t_n)=\hat{y}(b)\).

El valor de \(\hat{y}(a)\) será el valor inicial y no tiene error \(\hat{y}(a)=y(a)=y_0\).

Los demás valores \(\hat{y}(t_i)=\hat{y}(a+ih)\) se irán calculando en función de \(h\), los valores anteriores \(\hat{y}(t_j)\), y de los valores \(f(t_j,\hat{y}(t_j))\), \(j=0,\ldots,i-1\).

Iremos desarrollando métodos de tal forma que la solución aproximada \(\hat{y}\) y la solución \(y\) sean los más “próximas” posible en el mallado \(t_i=a+ih\), \(i=0,\ldots,n\).

La definición de proximidad en estos momentos es un concepto vago que iremos desarrollando y puliendo en las siguientes subsecciones.

Solución aproximada

Solución aproximada

Solución aproximada

Métodos de un paso

Introducción

Una vez establecidas las nociones básicas necesarias para calcular la solución aproximada del problema de valor inicial \(\frac{dy}{dt}=y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0,\) pasemos a estudiar los métodos más conocidos para hallar dicha solución aproximada \(\hat{y}\).

Los métodos más sencillos son los denominados métodos de un paso.

Una vez fijado el paso \(h\) y el mallado \(t_i=a+ih\), \(i=0,\ldots,n\), un método de un paso tiene la forma: \[ \hat{y}(t_{i+1})=\hat{y}(t_i)+h\varphi(t_i,\hat{y}(t_i)),\ i=0,\ldots,n-1, \] Entonces los métodos de un paso vienen determinados por la función \(\varphi\).

Se llaman métodos de un paso ya que los valores de la solución aproximada en \(t_{i+1}\) se obtienen a partir de los valores de la solución aproximada en el valor anterior \(t_i\) del mallado con \(\hat{y}(t_0)=\hat{y}(a)=y_0\).

Notación

De cara a simplificar la notación anterior, llamaremos \(\hat{y}_i\) al valor de la solución aproximada \(\hat{y}\) en el punto del mallado \(t_i\): \(\hat{y}_i=\hat{y}(t_i)\).

De esta forma, el método de un paso se escribe de la forma siguiente: \[ \hat{y}_{i+1}=\hat{y}_i + h\varphi(t_i,\hat{y}_i),\ i=0,\ldots,n-1,\ \hat{y}_0=y_0. \] Así, los demás valores de la solución aproximada se calcularán de la forma siguiente: \[ \begin{align*} \hat{y}_1 & = \hat{y}_0 +h\varphi(t_0,\hat{y}_0)=y_0 +h\varphi(a,y_0),\\ \hat{y}_2 & = \hat{y}_1 +h\varphi(t_1,\hat{y}_1),\\ & \vdots\\ \hat{y}_n & =\hat{y}(b) = \hat{y}_{n-1} +h\varphi(t_{n-1},\hat{y}_{n-1}). \end{align*} \]

Método de Euler

Analicemos el método de un paso más sencillo: el conocido método de Euler.

Dicho método aparece cuando desarrollamos el valor de la solución aproximada en el punto del mallado \(t_{i+1}=t_i+h\), \(\hat{y}_{i+1}=\hat{y}(t_i+h)\), usando la siguiente expresión del desarrollo de Taylor de la función \(\hat{y}(t)\): \[ \hat{y}_{i+1}=\hat{y}(t_i+h)\approx \hat{y}(t_i)+h\cdot \hat{y}'(t_i)=y_i +h\cdot \hat{y}'(t_i). \] Ahora bien, como \(y'=f(t,y)\) y \(\hat{y}\) es una solución aproximada, podemos escribir que \(\hat{y}'(t_i)=f(t_i,\hat{y}(t_i))=f(t_i,\hat{y}_i)\).

Entonces, la expresión anterior será: \[ \hat{y}_{i+1} = \hat{y}_i +h f(t_i,\hat{y}_i),\ i=0,\ldots,n-1,\ \hat{y}_0=y_0. \] Por tanto, el método de Euler es un método de un paso donde la función \(\varphi\) vale: \(\varphi(t,\hat{y})=f(t,\hat{y})\).

Método de Euler. Pseudocódigo

  • INPUT valores inicial y final \(a\), \(b\), entero \(n\), condición inicial \(y_0\) y función \(f(t,y)\)
  • Set \(h=\frac{b-a}{n}\).
  • Set \(t=a\).
  • Set \(\mathbf{\hat{y}}=\mathbf{0}\). (Definimos inicialmente el vector de aproximaciones como \(0\))
  • Set \(\hat{y}_1=y_0\). (Definimos la primera componente del vector de aproximaciones como la condición inicial)
  • For i=1,...,n
    • Set \(\hat{y}_{i+1}=\hat{y}_{i}+h\cdot f(t,\hat{y}_{i})\). (calculamos \(\hat{y}(t+i h)\))
    • Set \(t=t+h\). (actualizamos el tiempo \(t\))
  • Print \(\mathbf{\hat{y}}\) (Damos el vector de aproximaciones).

Ejemplo

Consideremos el siguiente problema de valores iniciales: \[ y'=f(t,y)=\frac{1+t}{1+y},\ 1\leq t\leq 3,\ y(1)=2, \] de solución exacta \(y(t)=\sqrt{t^2+2t+6}-1\).

Vamos a aplicarle el método de Euler para hallar una solución aproximada en el mallado siguiente usando \(h=0.1\): \[ t_i=1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. \] \[ \begin{align*} \hat{y}(1.1) & = \hat{y}(1)+h\cdot f(t_0,\hat{y}(1))=2+0.1\cdot f(1,2)=2+0.1\cdot 0.6666667 = 2.0666667,\\ \hat{y}(1.2) & = \hat{y}(1.1)+h\cdot f(t_1,\hat{y}(1.1))=2.066667+0.1\cdot f(1.1,2.066667)=2.066667+0.1\cdot 0.6847825 = 2.135145,\\ \hat{y}(1.3) & = \hat{y}(1.2)+h\cdot f(t_2,\hat{y}(1.2))=2.135145+0.1\cdot f(1.2,2.135145)=2.135145+0.1\cdot 0.7017219 = 2.205317,\\ & \vdots\\ \hat{y}(3) & = \hat{y}(2.9)+h\cdot f(t_{n-1},\hat{y}(2.9))=3.48744+0.1\cdot f(2.9,3.48744)=3.4874398+0.1\cdot 0.8690924 = 3.574349. \end{align*} \]

Ejemplo (continuación)

La siguiente tabla muestra los valores de las soluciones aproximada y exacta en los puntos del mallado:

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1 2 2 0
1.1 2.0666667 2.0675723 0.0009057
1.2 2.1351449 2.1368774 0.0017325
1.3 2.2053171 2.207803 0.0024859
1.4 2.2770729 2.2802439 0.003171
1.5 2.350309 2.354102 0.003793
1.6 2.424929 2.4292856 0.0043567

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1.7 2.5008429 2.5057096 0.0048667
1.8 2.5779672 2.5832946 0.0053273
1.9 2.656224 2.6619667 0.0057427
2 2.7355408 2.7416574 0.0061166
2.1 2.8158504 2.822303 0.0064526
2.2 2.8970905 2.9038443 0.0067538
2.3 2.979203 2.9862263 0.0070232

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
2.4 3.0621342 3.069398 0.0072638
2.5 3.1458341 3.1533119 0.0074779
2.6 3.2302562 3.237924 0.0076679
2.7 3.3153574 3.3231933 0.0078359
2.8 3.4010977 3.4090815 0.0079839
2.9 3.4874398 3.4955534 0.0081136
3 3.574349 3.5825757 0.0082267

Ejemplo (continuación)

Observamos que en este caso el método funciona bastante bien, con errores relativamente pequeños, como podemos ver en el gráfico de la siguiente transparencia.

Sin embargo, el método en general es uno de los peores desde el punto de vista práctico como veremos más adelante.

De todas formas, como veremos a continuación, tenemos una cota del error cometido con respecto la solución exacta. Es decir, dado un valor \(t_i\) en el mallado, obtendremos una cota para \(|y(t_i)-\hat{y}(t_i)|\).

Esta cota en general es desconocida para otros métodos.

Ejemplo (continuación)

Cota del error para el método de Euler

El teorema siguiente nos da la cota del error para el método de Euler:

Teorema. Cota del error para el método de Euler.

Sea \(f(t,y)\) una función de dos variables continua y que cumple la condición de Lipschitz con respecto a la segunda variable con constante de Lipschitz \(L\) en la región: \[ D=\{(t,y),\ a\leq t\leq b,\ -\infty<y<\infty\}. \] Sea \(y(t)\) la solución única del problema de valores iniciales: \[ \frac{dy}{dt}=y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0. \] Supongamos que la función \(y(t)\) es de clase \({\cal C}^2\) y que su derivada segunda está acotada en el intervalo \([a,b]\), es decir, existe una constante \(M\) tal que \(|y''(t)|\leq M\), para todo \(t\in [a,b]\).

Cota del error para el método de Euler

Teorema. Cota del error para el método de Euler (continuación).

Sea \(n>0\), un entero positivo, \(h=\frac{b-a}{n}\) y \(t_i=a+ih\), \(i=0,\ldots,n\) el mallado correspondiente al paso \(h\).

Sea \(\hat{y}(t_i)=\hat{y}_i\) la solución aproximada por el método de Euler en el mallado anterior.

Entonces: \[ |y(t_i)-\hat{y}(t_i)|=|y(t_i)-\hat{y}_i|\leq \frac{hM}{2L}\left(\mathrm{e}^{L(t_i-a)}-1\right)=\frac{hM}{2L}\left(\mathrm{e}^{iLh}-1\right), \] para \(i=0,1,\ldots,n\).

Demostración del Teorema

Para demostrar el teorema, necesitamos dos lemas previos:

Lema 1.

Sea \(x\geq -1\) un valor real mayor o igual que \(-1\). Entonces para cualquier valor \(m>0\), se cumple que \[ 0\leq (1+x)^m\leq \mathrm{e}^{mx}. \]

Demostración del lema 1

Consideramos la función \(\mathrm{e}^x\) y la desarrollamos por MacLaurin en \(x_0=0\) hasta segundo orden: \[ \mathrm{e}^x =1+x+\frac{1}{2}x^2\mathrm{e}^{c}, \] con \(c\in <0,x>\). Entonces podemos escribir: \[ 0\leq 1+x\leq 1+x+\frac{1}{2}x^2\mathrm{e}^{c}=\mathrm{e}^x. \] Como \(m>0\), elevando a \(m\) las desigualdades anteriores, obtenemos la tesis del lema: \[ 0\leq (1+x)^m\leq \mathrm{e}^{mx}. \]

Demostración del Teorema

Lema 2.

Sean \(s>0\), \(t>0\) dos valores reales positivos. Sean \((a_n)_{n=0}^N\) una sucesión finita de números reales verificando que \[ a_0\geq -\frac{s}{t},\quad a_{n+1}\leq (1+s)a_n+t,\ n=0,1,\ldots,N-1. \] Entonces: \[ a_{n+1}\leq \mathrm{e}^{(n+1)s}\left(a_0+\frac{t}{s}\right)-\frac{t}{s}. \]

Demostración del lema 2

Usando la hipótesis del lema tenemos que: \[ \begin{align*} a_{n+1} & \leq (1+s)a_n+t\\ & \leq (1+s)((1+s)a_{n-1}+t)+t =(1+s)^2 a_{n-1}+(1+(1+s))t\\ & \leq (1+s)^3 a_{n-2}+(1+(1+s)+(1+s)^2)t\\ & \vdots \\ & \leq (1+s)^{n+1} a_0+(1+(1+s)+\cdots+(1+s)^n)t. \end{align*} \] La suma \(1+(1+s)+\cdots+(1+s)^n\) al ser una suma de una serie geométrica de razón \(1+s\) vale: \[ 1+(1+s)+\cdots+(1+s)^n=\sum_{i=0}^n (1+s)^i =\frac{1-(1+s)^{n+1}}{1-(1+s)}=\frac{1}{s}((1+s)^{n+1}-1). \] Por tanto, \[ a_{n+1}\leq (1+s)^{n+1} a_0+\frac{t}{s}((1+s)^{n+1}-1)=(1+s)^{n+1}\left(a_0+\frac{t}{s}\right)-\frac{t}{s}. \]

Demostración del lema 2 (continuación)

Si aplicamos el lema 1 con \(x=s\geq -1\), tenemos que: \[ (1+s)^{n+1}\leq \mathrm{e}^{(n+1)s}. \] Por tanto, \[ a_{n+1}\leq \mathrm{e}^{(n+1)s}\left(a_0+\frac{t}{s}\right)-\frac{t}{s}, \] como queríamos demostrar.

Demostración del teorema

Ahora ya estamos en condiciones de demostrar el teorema.

Si desarrollamos la solución exacta \(y(t_{i+1})=y(t_i+h)\) por Taylor alrededor de \(t=t_i\) hasta segundo orden, obtenemos: \[ y(t_{i+1})=y(t_i+h)=y(t_i)+hy'(t_i)+\frac{h^2}{2}y''(c), \] donde \(c\in (t_i,t_{i+1})\).

Como la función \(y(t)\) verifica la ecuación diferencial \(y'=f(t,y)\), tenemos que \(y'(t_i)=f(t_i,y(t_i))\) y por tanto, \[ y(t_{i+1})=y(t_i+h)=y(t_i)+hf(t_i,y(t_i))+\frac{h^2}{2}y''(c). \] A continuación, recordemos que la solución aproximada \(\hat{y}(t_{i+1})\) se calculaba de la forma siguiente: \[ \hat{y}(t_{i+1})=\hat{y}(t_i)+hf(t_i,\hat{y}(t_i)). \] Por tanto, \[ y(t_{i+1})-\hat{y}(t_{i+1})=y(t_i)-\hat{y}(t_i)+h(f(t_i,y(t_i))-f(t_i,\hat{y}(t_i)))+\frac{h^2}{2}y''(c). \]

Demostración del teorema (continuación)

Entonces: \[ \begin{align*} |y(t_{i+1})-\hat{y}(t_{i+1})| & =\left|y(t_i)-\hat{y}(t_i)+h(f(t_i,y(t_i))-f(t_i,\hat{y}(t_i)))+\frac{h^2}{2}y''(c)\right|\\ & \leq |y(t_i)-\hat{y}(t_i)|+h|f(t_i,y(t_i))-f(t_i,\hat{y}(t_i))|+\frac{h^2}{2}M\\ & \leq |y(t_i)-\hat{y}(t_i)|+h L |y(t_i)-\hat{y}(t_i)|+\frac{h^2}{2}M = (1+hL)|y(t_i)-\hat{y}(t_i)|+\frac{h^2}{2}M. \end{align*} \] A continuación, aplicamos el lema 2 con \(s=hL>0\), \(t=\frac{h^2}{2}M\) y la sucesión \(a_i=|y(t_{i})-\hat{y}(t_i)|\), \(i=0,\ldots,n\) (fijémonos que \(a_0=0\)): \[ |y(t_{i+1})-\hat{y}(t_{i+1})| \leq \mathrm{e}^{(i+1)s}\left(a_0+\frac{t}{s}\right)-\frac{t}{s}=\mathrm{e}^{(i+1)hL}\frac{hM}{2L}-\frac{hM}{2L}=\frac{hM}{2L}\left(\mathrm{e}^{(i+1)hL}-1\right), \] tal como queríamos demostrar.

Ejemplo anterior

Calculemos la cota del teorema para el problema de valor inicial del ejemplo anterior: \[ y'=f(t,y)=\frac{1+t}{1+y},\ 1\leq t\leq 3,\ y(1)=2. \] Recordemos que la solución exacta vale: \(y(t)=\sqrt{t^2+2t+6}-1\). El valor de \(y''(t)\) será: \[ y''(t)=\frac{5}{(t^2+2t+6)^{3/2}}, \] que en el intervalo \([1,3]\) está acotada por: \[ |y''(t)|=\left|\frac{5}{(t^2+2t+6)^{3/2}}\right|\leq \frac{5}{27}. \] La constante \(M\) será pues \(M=\frac{5}{27}\).

Hallemos la constante \(L\) de la condición de Lipschitz respecto la segunda variable de la función \(f\): \[ \left|\frac{\partial f}{\partial y}(t,y)\right|=\left|-\frac{(1+t)}{(1+y)^2}\right|=\frac{(1+t)}{(1+y)^2}\leq 4, \] ya que \(y\geq 0\) y \(1\leq t\leq 3\). Por tanto, \(L=4\).

Ejemplo anterior (continuación)

La cota entre la solución exacta y la aproximada en el mallado considerado será: \[ |y(t_i)-\hat{y}(t_i)| \leq \frac{hM}{2L}\left(\mathrm{e}^{iLh}-1\right)=\frac{0.1\cdot \frac{5}{27}}{2\cdot 4}\left(\mathrm{e}^{4i\cdot 0.1}-1\right)=0.0023148\left(\mathrm{e}^{0.4i}-1\right) \]

Ejemplo anterior (continuación)

La tabla siguiente muestra los resultados de la tabla anterior junto con las cotas halladas:
\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\) Cota
1 2 2 0 0
1.1 2.0666667 2.0675723 0.0009057 0.0011385
1.2 2.1351449 2.1368774 0.0017325 0.0028369
1.3 2.2053171 2.207803 0.0024859 0.0053706
1.4 2.2770729 2.2802439 0.003171 0.0091505
1.5 2.350309 2.354102 0.003793 0.0147895
1.6 2.424929 2.4292856 0.0043567 0.0232018

Ejemplo anterior (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\) Cota
1.7 2.5008429 2.5057096 0.0048667 0.0357515
1.8 2.5779672 2.5832946 0.0053273 0.0544734
1.9 2.656224 2.6619667 0.0057427 0.0824033
2 2.7355408 2.7416574 0.0061166 0.1240698
2.1 2.8158504 2.822303 0.0064526 0.1862289
2.2 2.8970905 2.9038443 0.0067538 0.2789593
2.3 2.979203 2.9862263 0.0070232 0.4172969

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\) Cota
2.4 3.0621342 3.069398 0.0072638 0.6236722
2.5 3.1458341 3.1533119 0.0074779 0.9315481
2.6 3.2302562 3.237924 0.0076679 1.390845
2.7 3.3153574 3.3231933 0.0078359 2.0760354
2.8 3.4010977 3.4090815 0.0079839 3.0982194
2.9 3.4874398 3.4955534 0.0081136 4.6231386
3 3.574349 3.5825757 0.0082267 6.8980509

Ejemplo (continuación)

Vemos que las cotas son mucho mayores que los errores reales. Esto siempre nos pasará al analizar un método numérico.

Sin embargo, para los primeros \(t_i\) del mallado los errores reales y las cotas son del mismo orden de magnitud aunque a medida que \(i\) va creciendo el orden de magnitud de las cotas va aumentando.

Método de Euler

Observación.

En el ejemplo anterior hemos usado que conocemos el valor de la solución \(y(t)\) para hallar la cota de la derivada segunda \(M\).

En general, no hace falta conocer la expresión de la solución exacta \(y(t)\) de cara a calcular una expresión de \(y''(t)\) ya que ésta se puede calcular de la forma siguiente usando la regla de la cadena: \[ \begin{align*} y'(t) & =f(t,y(t)),\ \Rightarrow \\ y''(t) & =\frac{\partial f}{\partial t}(t,y(t))+\frac{\partial f}{\partial y}(t,y(t))\cdot y'(t) =\frac{\partial f}{\partial t}(t,y(t))+\frac{\partial f}{\partial y}(t,y(t))\cdot f(t,y(t)), \end{align*} \] pudiéndose obtener una expresión para \(y''(t)\).

Ejemplo anterior

Recordemos que el problema de solución inicial era: \[ y'=f(t,y)=\frac{1+t}{1+y},\ 1\leq t\leq 3,\ y(1)=2. \] Por tanto: \[ y''(t)=\frac{\partial f}{\partial t}(t,y(t))+\frac{\partial f}{\partial y}(t,y(t))\cdot f(t,y(t))=\frac{1}{y+1}-\frac{t+1}{(y+1)^2}\cdot \frac{t+1}{y+1}=\frac{1}{1+y}\left(1-\frac{(1+t)^2}{(y+1)^2}\right). \] Sabiendo que \(y>0\) y que \(1\leq t\leq 3\), podemos acotar \(|y''(t)|\) por: \[ |y''(t)|\leq 1+16=17. \] Es una cota más mala pero no hemos necesitado el valor exacto de \(y(t)\).

Consistencia y convergencia

Error local de truncamiento (LTE)

Dado un método numérico de un paso \(\hat{y}_{i+1} =\hat{y}_{i}+h\varphi(t_{i},\hat{y}_{i})\) con \(\hat{y}_0=y_0\), necesitamos una manera de estimar el error que cometemos respecto la solución exacta \(y(t)\) del problema de valor inicial \(y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0\).

Dado un valor del mallado \(t_i=a+ih\), un primer intento sería estimar el error cometido \(|y(t_i)-\hat{y}_i|\) pero pensemos que en la mayoría de los casos desconocemos la función que nos da la solución exacta \(y(t_i)\) haciendo impracticable calcular una cota de dicho error.

Para intentar solventar el problema anterior, se introduce el denominado error local de truncamiento o LTE en sus siglas en inglés: Local Truncation Error.

Error local de truncamiento (LTE)

La solución aproximada \(\hat{y}_i\) es un vector de \(n\) componentes real que soluciona la ecuación en diferencias dada por el método numérico en cuestión: \[ \hat{y}_{i+1}=\hat{y}_i+h \varphi(t_i,\hat{y}_i),\ i=0,\ldots,n-1,\ \hat{y}_0=y_0. \]

Entonces el error local de truncamiento, \(\tau_{i+1}(h)\), es el error cometido por la solución exacta \(y(t_i)\) al intentar verificar la ecuación en diferencias anterior: \[ \begin{align*} \tau_{i+1}(h) & =\frac{y(t_{i+1})-(y(t_i)+h\varphi(t_i,y(t_i)))}{h}\\ & =\frac{y(t_{i+1})-y(t_i)}{h}-\varphi(t_i,y(t_i)),\ i=0,\ldots,n-1. \end{align*} \]

Podemos interpretar el error local de truncamiento como la diferencia entre el cociente incremental de la solución exacta \(y(t_i)\) usando diferencias hacia adelante (ver la primera parte del curso de métodos numéricos) y la función \(\varphi(t_i,y(t_i))\) que nos caracteriza el método numérico en cuestión.

Error local de truncamiento (LTE)

La idea es: cuanto mejor aproxima la función \(\varphi\) del método numérico el cociente incremental de la aproximación de la derivada \(y'(t)\) usando la solución exacta, mejor será el método numérico en cuestión.

Dado un método numérico, si demostramos que \(\tau_{i+1}(h)=O(h^m)\), diremos que el método numérico tiene orden \(m\).

Cuánto más grande sea el valor \(m\), mejor será el método numérico. De esta forma, el error local de truncamiento sirve para comparar lo “buenos” que son los métodos numéricos considerados.

LTE para el método de Euler

Veamos que el método de Euler tiene un error local de truncamiento de orden \(1\), es decir, es un método muy limitado.

Recordemos que la ecuación en diferencias que verificaba el vector de aproximaciones \(\hat{y}_i\), \(i=0,\ldots,n-1\) era: \[ \hat{y}_{i+1}=\hat{y}_i+h f(t_i,\hat{y}_i),\ \hat{y}_0=y_0. \]

LTE para el método de Euler

Entonces el error local de truncamiento será: \[ \begin{align*} \tau_{i+1}(h) & =\frac{y(t_{i+1})-y(t_i)}{h}-f(t_i,y(t_i))=\frac{y(t_i+h)-y(t_i)}{h}-f(t_i,y(t_i)) \\ & =\frac{y(t_i)+hy'(t_i)+\frac{h^2}{2}y''(\xi_i)-y(t_i)}{h}-f(t_i,y(t_i))\\ & = y'(t_i)+\frac{h}{2}y''(\xi_i)-f(t_i,y(t_i)), \end{align*} \] con \(\xi_i\in (t_i,t_{i+1})\). Usando que \(y(t)\) es la solución exacta de la ecuación diferencial, podemos afirmar que \(y'(t_i)=f(t_i,y(t_i))\). Por tanto, \[ \tau_{i+1}(h) = \frac{h}{2}y''(\xi_i) =O(h). \] En conclusión, el método de Euler tiene error local de truncamiento de orden \(1\).

Consistencia

El error local de truncamiento motiva la definición siguiente:

Definición de consistencia de un método.

Consideramos el método numérico siguiente: \[ \hat{y}_{i+1}=\hat{y}_i+h\varphi(t_i,\hat{y}_i),\ i=0,\ldots,n-1,\ \hat{y}_0=y_0, \] para resolver el problema de valor inicial \(y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0\).

Diremos que el método anterior es consistente si el error local de truncamiento \(\tau_{i+1}(h)\) tiende a cero si \(h\) tiende a cero: \(\displaystyle\lim_{h\to 0}\tau_{i+1}(h)=0.\)

Además, diremos que el método es consistente de orden \(k\) si el error local de truncamiento \(\tau_{i+1}(h)\) verifica \(\displaystyle\tau_{i+1}(h)=O(h^k)\).

Consistencia

Observación.

Si un método es consistente de orden \(k\) con \(k\geq 1\), entonces el método es consistente.

Por ejemplo, el método de Euler al ser consistente de orden \(1\), es consistente.

Convergencia

La defininción de convergencia de un método es la siguiente:

Definición de convergencia de un método.

Consideramos el método numérico siguiente: \[ \hat{y}_{i+1}=\hat{y}_i+h\varphi(t_i,\hat{y}_i),\ i=0,\ldots,n-1,\ \hat{y}_0=y_0, \] para resolver el problema de valor inicial \(y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0\).

Diremos que el método anterior es convergente si el error entre la solución aproximada y la solución exacta en los puntos del mallado \(t_i\) tiende a cero cuando \(h\) tiende a cero para todos los puntos de dicho mallado: \[ \lim_{h\to 0} |y(t_i)-\hat{y}_i| =0,\ i=0,\ldots,n. \]

Convergencia

Además, diremos que un método es convergente de orden \(k\) si para cualquier punto del mallado \(t_i\) se cumple: \(\displaystyle |y(t_i)-\hat{y}_i|=O(h^k)\).

Observación.

La última condición de convergencia puede expresarse de la forma siguiente de forma equivalente: \[ \lim_{h\to 0} \max_{i=0,\ldots,n} |y(t_i)-\hat{y}_i| =0. \]

Convergencia del método de Euler

Si la función \(f\) verifica la condición de Lipschitz con constante de Lipschitz \(L\) y la derivada segunda \(y''\) de la solución exacta está acotada en el dominio de definición de \(t\), \([a,b]\), es decir, existe \(M\) tal que \(|y''(t)|\leq M\), para todo \(t\in [a,b]\), el método de Euler es convergente ya que vimos la cota siguiente en los puntos del mallado: \[ |y(t_i)-\hat{y}_i|\leq \frac{hM}{2L}\left(\mathrm{e}^{iLh}-1\right). \] Por tanto, \[ 0\leq \lim_{h\to 0} |y(t_i)-\hat{y}_i|\leq \lim_{h\to 0}\frac{hM}{2L}\left(\mathrm{e}^{iLh}-1\right)=0, \] tal como queríamos ver.

En este caso, podemos decir que el método de Euler es convergente de orden \(1\) como mínimo.

Métodos de Taylor

Introducción

Vamos a generalizar el método de Euler. Recordemos que introducíamos el método de Euler desarrollando por Taylor el valor \(\hat{y}(t_{i+1})=\hat{y}_{i+1}\) alrededor de \(t=t_i\) hasta llegar a orden \(1\).

La idea será pues desarrollar el valor \(\hat{y}(t_{i+1})=\hat{y}_{i+1}\) alrededor de \(t=t_i\) usando el desarrollo de Taylor pero llegando hasta orden \(k\) donde si \(k=1\), tenemos el método de Euler: \[ \hat{y}_{i+1}= \hat{y}_i+h \hat{y}'(t_i)+\frac{h^2}{2}\hat{y}''(t_i)+\cdots +\frac{h^k}{k!}\hat{y}^{(k)}(t_i). \]

Métodos de Taylor

Los valores \(y^{(j)}(t_i)\), usando que \(\hat{y}\) es una aproximación de la ecuación diferencial \(y'=f(t,y)\), se calculan de la forma siguiente: \[ \hat{y}'(t_i)=f(t_i,\hat{y}_i),\ \hat{y}''(t_i)=f'(t_i,\hat{y}_i),\ldots,\hat{y}^{(j)}(t_i)=f^{(j-1)}(t_i,\hat{y}_i), \] donde \(f^{(j-1)}(t_i,\hat{y}_i)\) es la derivada \(j-1\)-ésima de la función real de variable real \(f(t,y(t))\) con respecto la variable \(t\) en \(t=t_i\).

Calculemos los primeros valores usando la regla de la cadena: \[ \begin{align*} \hat{y}'(t_i) & =f(t_i,\hat{y}_i),\\ \hat{y}''(t_i) & =f'(t_i,\hat{y}_i) =\frac{\partial f}{\partial t}(t_i,\hat{y}_i)+\frac{\partial f}{\partial y}(t_i,\hat{y}_i)\hat{y}'(t_i)\\ & =\frac{\partial f}{\partial t}(t_i,\hat{y}_i)+\frac{\partial f}{\partial y}(t_i,\hat{y}_i)f(t_i,\hat{y}_i), \end{align*} \]

Métodos de Taylor

\[ \begin{align*} \hat{y}'''(t_i) & =f''(t_i,\hat{y}_i) =\frac{\partial^2 f}{\partial t^2}(t_i,\hat{y}_i)+\frac{\partial^2 f}{\partial t\partial y}(t_i,\hat{y}_i)f(t_i,\hat{y}_i)+\frac{\partial^2 f}{\partial y\partial t}(t_i,\hat{y}_i)f(t_i,\hat{y}_i)\\ & \quad+\frac{\partial^2 f}{\partial y^2}(t_i,\hat{y}_i)f^2(t_i,\hat{y}_i)+ \frac{\partial f}{\partial y}(t_i,\hat{y}_i)\left(\frac{\partial f}{\partial t}(t_i,\hat{y}_i)+\frac{\partial f}{\partial y}(t_i,\hat{y}_i)f(t_i,\hat{y}_i)\right)\\ & = \frac{\partial^2 f}{\partial t^2}(t_i,\hat{y}_i)+2\frac{\partial^2 f}{\partial t\partial y}(t_i,\hat{y}_i)f(t_i,\hat{y}_i)+\frac{\partial^2 f}{\partial y^2}(t_i,\hat{y}_i)f^2(t_i,\hat{y}_i)\\ & \quad +\frac{\partial f}{\partial y}(t_i,\hat{y}_i)\frac{\partial f}{\partial t}(t_i,\hat{y}_i)+\left(\frac{\partial f}{\partial y}(t_i,\hat{y}_i)\right)^2 f(t_i,\hat{y}_i). \end{align*} \]

Métodos de Taylor

Como vemos que la notación hace tedioso escribir las derivadas \(f^{(j)}(t_i,\hat{y}_i)\) vamos a simplificarla de la forma siguiente: \[ \begin{align*} f(t_i,\hat{y}_i) & =f_i,\\ \frac{\partial^j f}{\partial t^j}(t_i,\hat{y}_i) & =f_{t,i}^{(j)},\\ \frac{\partial^j f}{\partial y^j}(t_i,\hat{y}_i)& =f_{y,i}^{(j)},\\ \frac{\partial^{j+l} f}{\partial t^j\partial y^l}(t_i,\hat{y}_i) & =f_{t,y,i}^{(j,l)} \end{align*} \]

Métodos de Taylor

Entonces las derivadas anteriores se escribirán de la forma siguiente: \[ \begin{align*} \hat{y}'(t_i) & =f_i,\\ \hat{y}''(t_i) & =f'(t_i,\hat{y}_i) =f_{t,i}^{(1)}+f_{y,i}^{(1)}f_i,\\ \hat{y}'''(t_i) & =f''(t_i,\hat{y}_i) = f_{t,i}^{(2)}+2 f_{t,y,i}^{(1,1)}f_i+f_{y,i}^{(2)}f_i^2+f_{y,i}^{(1)}f_{t,i}^{(1)}+\left(f_{y,i}^{(1)}\right)^2 f_i,\\ \hat{y}^{(iv)}(t_i) & = f'''(t_i,\hat{y}_i) = f_{y,i}^{(3)} f_i^3+\left(4 f_{y,i}^{(1)} f_{y,i}^{(2)} +3 f_{t,y,i}^{(1,2)}\right)f_i^2\\ &\quad +\left((f_{y,i}^{(1)})^3+5 f_{t,y,i}^{(1,1)} f_{y,i}^{(1)}+3\left(f_{y,i}^{(2)} f_{t,i}^{(1)} + f_{t,y,i}^{(2,1)}\right)\right) f_i\\ & \quad +f_{t,i}^{(1)}\left((f_{y,i}^{(1)})^2+3 f_{t,y,i}^{(1,1)}\right)+f_{y,i}^{(1)} f_{t,i}^{(2)}+f_{t,i}^{(3)} \\ & \vdots \end{align*} \]

Método de Taylor de orden 2

El método de Taylor de orden 2 resuelve la ecuación en diferencias siguiente: \[ \hat{y}_{i+1}=\hat{y}_i + h\left(f_i + \frac{h}{2} (f_{t,i}^{(1)}+f_{y,i}^{(1)} f_i)\right),\ \hat{y}_0=y_0, \] donde recordemos que: \[ f_i=f(t_i,\hat{y}_i),\quad f_{t,i}^{(1)}=\frac{\partial f}{\partial t}(t_i,\hat{y}_i),\quad f_{y,i}^{(1)}=\frac{\partial f}{\partial y}(t_i,\hat{y}_i) \]

Método de Taylor de orden 2. Pseudocódigo

  • INPUT valores inicial y final \(a\), \(b\), entero \(n\), condición inicial \(y_0\) y funciones \(f(t,y)\), \(f_t(t,y)=\frac{\partial f}{\partial t}(t,y)\) y \(f_y(t,y)=\frac{\partial f}{\partial y}(t,y)\)
  • Set \(h=\frac{b-a}{n}\).
  • Set \(t=a\).
  • Set \(\mathbf{\hat{y}}=\mathbf{0}\). (Definimos inicialmente el vector de aproximaciones como \(0\))
  • Set \(\hat{y}_1=y_0\). (Definimos la primera componente del vector de aproximaciones como la condición inicial)

Método de Taylor de orden 2. Pseudocódigo

  • For i=1,...,n
    • Set \(\hat{y}_{i+1}=\hat{y}_{i}+h\cdot (f(t,\hat{y}_{i})+\frac{h}{2}\cdot (f_t(t,\hat{y}_{i})+f_y(t,\hat{y}_{i})\cdot f(t,\hat{y}_{i})))\). (calculamos \(\hat{y}(t+i h)\))
    • Set \(t=t+h\). (actualizamos el tiempo \(t\))
  • Print \(\mathbf{\hat{y}}\) (Damos el vector de aproximaciones).

Ejemplo anterior

Recordemos que se trataba de aproximar la solución del siguiente problema de valores iniciales: \[ y'=f(t,y)=\frac{1+t}{1+y},\ 1\leq t\leq 3,\ y(1)=2, \] de solución exacta \(y(t)=\sqrt{t^2+2t+6}-1\).

Vamos a aplicarle el método de Taylor para hallar una solución aproximada en el mallado siguiente usando \(h=0.1\).

Primeramente necesitamos las funciones \(f_t\) y \(f_y\): \[ f_t(t,y)=\frac{\partial f}{\partial t}=\frac{1}{1+y},\quad f_y(t,y)=\frac{\partial f}{\partial y}=-\frac{1+t}{(1+y)^2}. \] La ecuación en diferencias a resolver es la siguiente: \[ \begin{align*} \hat{y}_{i+1} & =\hat{y}_i +h\left(\frac{1+t_i}{1+\hat{y}_i}+\frac{h}{2}\left(\frac{1}{1+\hat{y}_i}-\frac{1+t_i}{(1+\hat{y}_i)^2}\cdot \frac{1+t_i}{1+\hat{y}_i}\right)\right),\\ &=\hat{y}_i +\frac{h}{1+\hat{y}_i}\left(1+t_i+\frac{h}{2}\left(1-\frac{(1+t_i)^2}{(1+\hat{y}_i)^2}\right)\right),\ \hat{y}_0=2. \end{align*} \]

Ejemplo (continuación)

Vamos a aplicarle el método de Taylor de orden 2 para hallar una solución aproximada en el mallado siguiente usando \(h=0.1\): \[ t_i=1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. \] \[ \begin{align*} \hat{y}(1.1) & = \hat{y}(1)+\frac{h}{1+\hat{y}(1)}\left(1+t_0+\frac{h}{2}\left(1-\frac{(1+t_0)^2}{(1+\hat{y}(1))^2}\right)\right)\\ & = 2+\frac{0.1}{1+2}\left(1+1+\frac{0.1}{2}\left(1-\frac{(1+1)^2}{(1+2)^2}\right)\right)= 2.0675926,\\ \hat{y}(1.2) & = \hat{y}(1.1)+\frac{h}{1+\hat{y}(1.1)}\left(1+t_1+\frac{h}{2}\left(1-\frac{(1+t_1)^2}{(1+\hat{y}(1.1))^2}\right)\right)\\ & = 2.0675926+\frac{0.1}{1+2.0675926}\left(1+1.1+\frac{0.1}{2}\left(1-\frac{(1+1.1)^2}{(1+2.0675926)^2}\right)\right)= 2.1369163, \\ \hat{y}(1.3) & = \hat{y}(1.2)+\frac{h}{1+\hat{y}(1.2)}\left(1+t_2+\frac{h}{2}\left(1-\frac{(1+t_2)^2}{(1+\hat{y}(1.2))^2}\right)\right)\\ & = 2.1369163+\frac{0.1}{1+2.1369163}\left(1+1.2+\frac{0.1}{2}\left(1-\frac{(1+1.2)^2}{(1+2.1369163)^2}\right)\right)= 2.2078588,\\ & \vdots \end{align*} \]

Ejemplo (continuación)

La siguiente tabla muestra los valores de las soluciones aproximada y exacta en los puntos del mallado:

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1 2 2 0
1.1 2.0675926 2.0675723 0.0000203
1.2 2.1369163 2.1368774 0.0000388
1.3 2.2078588 2.207803 0.0000558
1.4 2.2803151 2.2802439 0.0000712
1.5 2.3541871 2.354102 0.0000852
1.6 2.4293834 2.4292856 0.0000978

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1.7 2.5058187 2.5057096 0.0001091
1.8 2.5834138 2.5832946 0.0001192
1.9 2.662095 2.6619667 0.0001283
2 2.7417938 2.7416574 0.0001364
2.1 2.8224465 2.822303 0.0001436
2.2 2.9039941 2.9038443 0.0001499
2.3 2.9863817 2.9862263 0.0001554

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
2.4 3.0695583 3.069398 0.0001603
2.5 3.1534765 3.1533119 0.0001646
2.6 3.2380922 3.237924 0.0001682
2.7 3.3233646 3.3231933 0.0001714
2.8 3.4092556 3.4090815 0.0001741
2.9 3.4957297 3.4955534 0.0001763
3 3.5827539 3.5825757 0.0001782

Ejemplo (continuación)

Vemos que los resultados son mejores que los obtenidos con el método de Euler.

Sin embargo, como ya hemos comentado antes, en este caso no tenemos ninguna cota para el error entre la solución aproximada y la exacta en los puntos del mallado, \(|y(t_i)-\hat{y}_i|\).

LTE en los métodos de Taylor

El siguiente resultado nos dice que el método de Taylor orden \(k\) es consistente de orden \(k\):

Error local de truncamiento en los métodos de Taylor.

Consideremos el siguiente problema de valores iniciales: \[ y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0, \] donde suponemos que \(f\) es de Lipschitz en la segunda variable y el dominio de definición de \(f\) es de la forma \[ D=\{(t,y)\in\mathbb{R}^2, \ a\leq t\leq b,\ -\infty < y <\infty\}. \] Suponemos que la función \(f\) es de clase \({\cal C}^k\). Entonces el método de Taylor de orden \(k\) para hallar una solución aproximada al problema de valores iniciales anterior es consistente de orden \(k\).

LTE en los métodos de Taylor

Observación.

Como \(f\) es de clase \({\cal C}^k\) tendremos que la solución \(y(t)\) que verifica el problema de valores iniciales será de clase \({\cal C}^{k+1}\) ya que \(y^{(k+1)}(t)=f^{(k)}(t,y(t))\).

Demostración del teorema

Recordemos que el método de Taylor de orden \(k\) consiste en resolver la siguiente ecuación en diferencias: \[ \begin{align*} \hat{y}_{i+1} & =\hat{y}_i+h \hat{y}'(t_i)+\frac{h^2}{2}\hat{y}''(t_i)+\cdots +\frac{h^k}{k!}\hat{y}^{(k)}(t_i)\\ & = \hat{y}_i+h \left(\hat{y}'(t_i)+\frac{h}{2}\hat{y}''(t_i)+\cdots +\frac{h^{k-1}}{k!}\hat{y}^{(k)}(t_i)\right)=\hat{y}_i+h\varphi(t_i,\hat{y}_i),\ \hat{y}_0=y_0. \end{align*} \] La función \(\varphi(t_i,\hat{y}_i)\) será, por tanto: \[ \varphi(t_i,\hat{y}_i)=\hat{y}'(t_i)+\frac{h}{2}\hat{y}''(t_i)+\cdots +\frac{h^{k-1}}{k!}\hat{y}^{(k)}(t_i). \] El error local de truncamiento será: \[ \begin{align*} \tau_{i+1}(h) & =\frac{y(t_{i+1})-y(t_i)}{h}-\varphi(t_i,y(t_i))=\frac{y(t_{i}+h)-y(t_i)}{h}-\varphi(t_i,y(t_i))\\ & = \frac{y(t_i)+h y'(t_i)+\frac{h^2}{2}y''(t_i)+\cdots +\frac{h^k}{k!}y^{(k)}(t_i)+\frac{h^{k+1}}{(k+1)!}y^{(k+1)}(\xi_i)-y(t_i)}{h}\\ & \quad -\left(y'(t_i)+\frac{h}{2}y''(t_i)+\cdots +\frac{h^{k-1}}{k!}y^{(k)}(t_i)\right)=\frac{h^k}{(k+1)!}y^{(k+1)}(\xi_i)=O(h^k), \end{align*} \] donde \(\xi_i\in (t_i,t_{i+1})\). Entonces \(\tau_{i+1}(h)=O(h^k)\), tal como queríamos demostrar.

Métodos implícitos y explícitos

Introducción

Hasta ahora, hemos supuesto que la función \(\varphi\) del método numérico de un paso: \[ \hat{y}_{i+1} =\hat{y}_i+h\varphi(t_i,\hat{y}_i), \] sólo depende de \(t_i\) y de \(\hat{y}_i\).

A este tipo de métodos se les denomina explícitos ya que podemos calcular el valor de la solución aproximada \(\hat{y}_{i+1}\) en el valor de mallado \(t_{i+1}\) directamente a partir del valor de la solución aproximada \(\hat{y}_i\) en el valor del mallado \(t_i\).

Introducción

Ahora bien, si suponemos que la función \(\varphi\) depende de \(t_i,\hat{y}_i\) y \(\hat{y}_{i+1}\), tendremos el método de un paso siguiente: \[ \hat{y}_{i+1} =\hat{y}_i+h\varphi(t_i,\hat{y}_i,\hat{y}_{i+1}). \] En este caso, no podemos calcular directamente \(\hat{y}_{i+1}\) en función de \(\hat{y}_i\) y de \(t_i\) ya que la “incógnita” \(\hat{y}_{i+1}\) aparece en los dos miembros de la definición del método.

Para hallar dicho valor \(\hat{y}_{i+1}\), tendremos que hallar un cero de la ecuación siguiente: \[ \hat{y}_{i+1} -\hat{y}_i- h\varphi(t_i,\hat{y}_i,\hat{y}_{i+1})=0. \] A este tipo de métodos se les denomina implícitos.

Introducción

Como podemos observar, en general, los métodos implícitos son computacionalmente más costosos que los explícitos.

Sin embargo, con expresiones de la misma complejidad que los métodos explícitos, pueden alcanzar un orden de consistencia mayor.

Método del trapecio

Veamos el método siguiente denominado método del trapecio como ejemplo de método implícito: \[ \hat{y}_{i+1} =\hat{y}_i+ \frac{h}{2}(f(t_i,\hat{y}_i)+f(t_{i+1},\hat{y}_{i+1})). \]

Proposición.

El método del trapecio es consistente con orden de convergencia \(2\).

Por tanto, aquí se pone de manifiesto lo comentado antes, vemos que el método del trapecio cuya complejidad en su expresión es parecida al método de Euler tiene un orden de convergencia superior a dicho método.

Demostración de la proposición

Sea \(y(t)\) la solución exacta del problema de valor inicial.

Notaremos por \(y_i=y(t_i)\) el valor de la solución exacta en el punto del mallado \(t_i\).

El error local de truncamiento usando el desarrollo de Taylor de la función de dos variables \(f(t_i+h,y_i+hy'(t_i)+O(h^2))\) alrededor del punto \((t_i,y_i)\) será: \[ \begin{align*} \tau_{i+1} & =\frac{y_{i+1}-y_i}{h}-\frac{1}{2}(f(t_i,y_i)+f(t_{i+1},y_{i+1}))\\ & =\frac{y_i+h y'(t_i)+\frac{h^2}{2}y''(t_i)+O(h^3)-y_i}{h}-\frac{1}{2}(f(t_i,y_i)+f(t_i+h,y_i+h y'(t_i)+O(h^2)))\\ & = y'(t_i)+\frac{h}{2}y''(t_i)+O(h^2)-\frac{1}{2}\left(f(t_i,y_i)+f(t_i,y_i)+h\frac{\partial f}{\partial t}(t_i,y_i)+h\frac{\partial f}{\partial y}(t_i,y_i)y'(t_i)+O(h^2)\right)\\ &= y'(t_i)+\frac{h}{2}y''(t_i)-f(t_i,y_i)-\frac{h}{2}\left(\frac{\partial f}{\partial t}(t_i,y_i)+\frac{\partial f}{\partial y}(t_i,y_i)y'(t_i)\right)+O(h^2). \end{align*} \] Ahora, usando que \[ \begin{align*} y'(t_i) & =f(t_i,y_i),\\ y''(t_i) & =\frac{\partial f}{\partial t}(t_i,y_i)+\frac{\partial f}{\partial y}(t_i,y_i)y'(t_i) =\frac{\partial f}{\partial t}(t_i,y_i)+\frac{\partial f}{\partial y}(t_i,y_i)f(t_i,y_i), \end{align*} \] tenemos que \(\tau_{i+1}(h)=O(h^2)\), tal como queríamos demostrar.

Método del trapecio

No sólo el método del trapecio es consistente, también es convergente:

Proposición.

Si la función \(f\) del problema de valores iniciales \(y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0\) verifica la condición de Lipschitz respecto la segunda variable con constante de Lipschitz \(L\), el método del trapecio es un método convergente de orden \(2\).

Demostración de la proposición

Sea \(y(t)\) la solución exacta del problema de valores iniciales y \(y(t_i)=y_i\) el valor de la solución exacta de dicho problema en el mallado \(t_i\), \(i=0,\ldots,n\)

De la misma forma, sea \(\hat{y}(t_i)=\hat{y}_i\) el valor de la solución aproximada en el mallado \(t_i\), \(i=0,\ldots,n\).

Como el método del trapecio es consistente de orden \(2\) podemos escribir lo siguiente: \[ \begin{align*} \hat{y}_{i+1} & = \hat{y}_i +\frac{h}{2}(f(t_i,\hat{y}_i)+f(t_{i+1},\hat{y}_{i+1})),\\ y_{i+1} & =y_i+\frac{h}{2}(f(t_i,y_i)+f(t_{i+1},y_{i+1}))+h\tau_{i+1}(h)=y_i+\frac{h}{2}(f(t_i,y_i)+f(t_{i+1},y_{i+1}))+O(h^3). \end{align*} \] Por tanto: \[ y_{i+1}-\hat{y}_{i+1}=y_i-\hat{y}_i+\frac{h}{2}(f(t_i,y_{i})-f(t_i,\hat{y}_i)+f(t_{i+1},y_{i+1})-f(t_{i+1},\hat{y}_{i+1}))+O(h^3). \]

Demostración de la proposición (continuación)

Usando que la función \(f\) verifica la condición de Lipschitz respecto la segunda variable con constante de Lipschitz \(L\), \[ \begin{align*} |y_{i+1}-\hat{y}_{i+1}| & \leq |y_i-\hat{y}_i|+\frac{hL}{2}(|y_{i}-\hat{y}_i|+|y_{i+1}-\hat{y}_{i+1}|)+O(h^3),\ \Rightarrow\\ \left(1-\frac{hL}{2}\right)|y_{i+1}-\hat{y}_{i+1}| & \leq \left(1+\frac{hL}{2}\right)|y_{i}-\hat{y}_{i}|+O(h^3),\ \Rightarrow\\ |y_{i+1}-\hat{y}_{i+1}| & \leq \frac{1+\frac{hL}{2}}{1-\frac{hL}{2}}|y_i-\hat{y}_i|+O(h^3). \end{align*} \] Llamemos \(r=\frac{1+\frac{hL}{2}}{1-\frac{hL}{2}}>0\) ya que podemos suponer que \(hL<1\) al tender \(h\) hacia \(0\). Podemos escribir, \[ |y_{i+1}-\hat{y}_{i+1}| \leq r|y_i-\hat{y}_i|+C h^3, \] donde \(C\) es una constante que es independiente del valor del mallado. De hecho puede demostrarse que depende de \(\displaystyle\max_{t\in [a,b]}|y'''(t)|\).

Demostración de la proposición (continuación)

Iterando la condición anterior, tenemos que: \[ \begin{align*} |y_{i+1}-\hat{y}_{i+1}| & \leq r|y_i-\hat{y}_i|+C h^3\leq r (r|y_{i-1}-\hat{y}_{i-1}|+C h^3)+C h^3=r^2|y_{i-1}-\hat{y}_{i-1}|+C h^3(1+r) \\ &\leq \cdots \leq r^i |y_0-\hat{y}_0|+Ch^3\sum_{j=0}^{i} r^j= C h^3\frac{(r^{i+1}-1)}{(r-1)}. \end{align*} \] El valor \(\left|\frac{1}{r-1}\right|\) puede acotarse por: \[ \left|\frac{1}{r-1}\right|=\left|\frac{1}{\frac{1+\frac{hL}{2}}{1-\frac{hL}{2}}-1}\right|=\left|\frac{2-h L}{2 h L}\right|\leq \frac{1}{hL}, \] si \(hL<4\) (basta representar ambas funciones usando \(hL\) como variable independiente). Esta condición podemos suponer que es cierta ya que \(h\) tiende a cero.

El valor \(r^{i+1}-1\) puede escribirse como \[ r^{i+1}-1=\left(\frac{1+\frac{hL}{2}}{1-\frac{hL}{2}}\right)^{i+1}-1=\left(1+\frac{hL}{1-\frac{hL}{2}}\right)^{i+1}-1. \]

Demostración de la proposición (continuación)

Suponiendo que \(hL<1\) (ya que \(h\) tiende a cero), tenemos que \(\frac{hL}{1-\frac{hL}{2}}>0\) y por tanto \(r^{i+1}-1>0\).

Ahora, como \(\frac{hL}{1-\frac{hL}{2}}<<1\) es pequeño, usando que \(1+x\leq\mathrm{e}^x\) (ver demostración del lema 1), tenemos que: \[ r^{i+1}-1=\left(1+\frac{hL}{1-\frac{hL}{2}}\right)^{i+1}-1\leq \mathrm{e}^{\frac{(i+1)hL}{1-\frac{hL}{2}}}-1. \] Usando ahora que \((i+1)h\leq nh=b-a\), tenemos que: \[ r^{i+1}-1\leq \mathrm{e}^{\frac{(b-a)L}{1-\frac{hL}{2}}}-1. \] En resumen: \[ |y_{i+1}-\hat{y}_{i+1}| \leq \frac{C}{L} h^2 \left(\mathrm{e}^{\frac{(b-a)L}{1-\frac{hL}{2}}}-1\right). \] Por tanto \(|y_{i+1}-\hat{y}_{i+1}|\leq O(h^2)\), tal como queríamos demostrar.

Método del trapecio. Pseudocódigo

  • INPUT valores inicial y final \(a\), \(b\), entero \(n\), condición inicial \(y_0\) y función \(f(t,y)\)
  • Set \(h=\frac{b-a}{n}\).
  • Set \(t=a\).
  • Set \(\mathbf{\hat{y}}=\mathbf{0}\). (Definimos inicialmente el vector de aproximaciones como \(0\))
  • Set \(\hat{y}_1=y_0\). (Definimos la primera componente del vector de aproximaciones como la condición inicial)

Método del trapecio. Pseudocódigo

  • For i=1,...,n
    • Solve \(\hat{y}_{i+1} =\hat{y}_{i}+\frac{h}{2}(f(t,\hat{y}_{i})+f(t+h,\hat{y}_{i+1}))\) (resolvemos la ecuación anterior con incógnita \(\hat{y}_i\) usando un método numérico para hallar ceros. El valor de \(\hat{y}_i\) será \(\hat{y}(t+ih)\))
    • Set \(t=t+h\). (actualizamos el tiempo \(t\))
  • Print \(\mathbf{\hat{y}}\) (Damos el vector de aproximaciones).

Método del trapecio.

Observación.

La ecuación \(\hat{y}_i =\hat{y}_{i-1}+\frac{h}{2}(f(t,\hat{y}_{i-1})+f(t+h,\hat{y}_i))\) a hallar la solución se puede escribir como \(F(\hat{y}_i)=0\), con \(F(x)=\hat{y}_{i-1}+\frac{h}{2}(f(t,\hat{y}_{i-1})+f(t+h,x))-x\).

En caso de querer usar el método de Newton-Raphson, hemos de considerar la sucesión \((\hat{y}_i)_n\) definida por: \[ (\hat{y}_i)_{n+1}=(\hat{y}_i)_{n}-\frac{F((\hat{y}_i)_{n})}{F'((\hat{y}_i)_{n})},\ (\hat{y}_i)_0=\hat{y}_{i-1}. \] El valor de \(F'(x)\) vale: \(F'(x)=\frac{h}{2}\frac{\partial f}{\partial y}(t+h,x)-1.\)

Método del trapecio.

Observación. (continuación)

Así, la sucesión del método de Newton-Raphson será: \[ \begin{align*} (\hat{y}_i)_{n+1} & =(\hat{y}_i)_{n}-\frac{\hat{y}_{i-1}+\frac{h}{2}(f(t,\hat{y}_{i-1})+f(t+h,(\hat{y}_i)_n))-(\hat{y}_i)_n}{\frac{h}{2}\frac{\partial f}{\partial y}(t+h,(\hat{y}_i)_n)-1},\\ & = \frac{\frac{h}{2}\frac{\partial f}{\partial y}(t+h,(\hat{y}_i)_n)(\hat{y}_i)_{n}-\hat{y}_{i-1}-\frac{h}{2}(f(t,\hat{y}_{i-1})+f(t+h,(\hat{y}_i)_n))}{\frac{h}{2}\frac{\partial f}{\partial y}(t+h,(\hat{y}_i)_n)-1},\\ (\hat{y}_i)_0 & =\hat{y}_{i-1}. \end{align*} \]

Ejemplo anterior

Vamos a aplicar el método del trapecio al siguiente problema de valores iniciales: \[ y'=f(t,y)=\frac{1+t}{1+y},\ 1\leq t\leq 3,\ y(1)=2, \] de solución exacta \(y(t)=\sqrt{t^2+2t+6}-1\).

El método del trapecio será en este caso: \[ \hat{y}_{i+1}=\hat{y}_i +\frac{h}{2}\left(\frac{1+t_i}{1+\hat{y}_i}+\frac{1+t_{i+1}}{1+\hat{y}_{i+1}}\right),\ \hat{y}_0 =2. \] Despejar \(\hat{y}_{i+1}\) de la expresión anterior es equivalente a resolver una ecuación de segundo grado de solución: \[ \hat{y}_{i+1}=\frac{1}{4(1+\hat{y}_i)}\left(-2+h (t_i+1)+2\hat{y}_i^2\pm\sqrt{h^2(1+t_i)^2+4h(2t_{i+1}+t_i+3)(1+\hat{y}_i)^2+4(1+\hat{y}_i)^4}\right). \]

Vemos que tenemos dos posibles elecciones para \(\hat{y}_{i+1}\), los signos \(+\) y \(-\). ¿Cuál elegimos?

El que se suele hacer en estos casos es elegir el signo de tal forma que \(|\hat{y}_{i+1}-\hat{y}_i|\) sea mínimo, o que el valor \(\hat{y}_{i+1}\) elegido sea el más cercano a \(\hat{y}_i\).

Éste es un fenómeno usual cuando se aplica un método implícito.

Ejemplo anterior (continuación)

Vamos a aplicar el método del trapecio para hallar una solución aproximada donde recordemos que el mallado era \(h=0.1\): \[ t_i=1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. \]

  • Vamos a hallar \(\hat{y}(1.1)\). En primer lugar, calculamos los valores siguientes: \[ \begin{align*} \hat{y}_+(1.1) & = \frac{\left(-2+h (t_0+1)+2\hat{y}_0^2+\sqrt{h^2(1+t_0)^2+4h(2t_{1}+t_0+3)(1+\hat{y}_0)^2+4(1+\hat{y}_0)^4}\right)}{4\cdot (1+\hat{y}_0)},\\ & = \frac{\left(-2+0.1 \cdot (1+1)+2\cdot 2^2+\sqrt{0.1^2\cdot (1+1)^2+4\cdot 0.1\cdot (2\cdot 1.1+1+3)\cdot (1+2)^2+4\cdot (1+2)^4}\right)}{4\cdot (1+2)}\\ & = 2.0675625,\\ \hat{y}_-(1.1) & = \frac{\left(-2+h (t_0+1)+2\hat{y}_0^2-\sqrt{h^2(1+t_0)^2+4h(2t_{1}+t_0+3)(1+\hat{y}_0)^2+4(1+\hat{y}_0)^4}\right)}{4\cdot (1+\hat{y}_0)},\\ & = \frac{\left(-2+0.1 \cdot (1+1)+2\cdot 2^2-\sqrt{0.1^2\cdot (1+1)^2+4\cdot 0.1\cdot (2\cdot 1.1+1+3)\cdot (1+2)^2+4\cdot (1+2)^4}\right)}{4\cdot (1+2)}\\ & = -1.0342291. \end{align*} \] Elegimos \(\hat{y}(1.1)\) el valor \(\hat{y}_+(1.1)=2.0675625\).

Ejemplo anterior (continuación)

  • Vamos a hallar \(\hat{y}(1.2)\). En primer lugar, calculamos los valores siguientes: \[ \begin{align*} \hat{y}_+(1.2) & = \frac{\left(-2+h (t_1+1)+2\hat{y}_1^2+\sqrt{h^2(1+t_1)^2+4h(2t_{2}+t_1+3)(1+\hat{y}_1)^2+4(1+\hat{y}_1)^4}\right)}{4\cdot (1+\hat{y}_1)},\\ & = \frac{1}{4\cdot (1+2.06756)}\left(-2+0.1 \cdot (1.1+1)+2\cdot 2.06756^2\right.\\ &\quad \left.+\sqrt{0.1^2\cdot (1+1.1)^2+4\cdot 0.1\cdot (2\cdot 1.2+1.1+3)\cdot (1+2.06756)^2+4\cdot (1+2.06756)^4}\right)\\ & = 2.1368585,\\ \hat{y}_-(1.2) & = \frac{\left(-2+h (t_1+1)+2\hat{y}_1^2-\sqrt{h^2(1+t_1)^2+4h(2t_{2}+t_1+3)(1+\hat{y}_1)^2+4(1+\hat{y}_1)^4}\right)}{4\cdot (1+\hat{y}_1)},\\ & = \frac{1}{4\cdot (1+2.06756)}\left(-2+0.1 \cdot (1.1+1)+2\cdot 2.06756^2\right.\\ &\quad \left.-\sqrt{0.1^2\cdot (1+1.1)^2+4\cdot 0.1\cdot (2\cdot 1.2+1.1+3)\cdot (1+2.06756)^2+4\cdot (1+2.06756)^4}\right)\\ & = -1.0350669.\\ \end{align*} \] Elegimos \(\hat{y}(1.2)\) el valor \(\hat{y}_+(1.2)=2.1368585\).

Ejemplo (continuación)

La siguiente tabla muestra los valores de las soluciones aproximada y exacta en los puntos del mallado:

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1 2 2 0
1.1 2.0675625 2.0675723 0.0000099
1.2 2.1368585 2.1368774 0.0000189
1.3 2.2077758 2.207803 0.0000271
1.4 2.2802093 2.2802439 0.0000346
1.5 2.3540606 2.354102 0.0000414
1.6 2.4292381 2.4292856 0.0000475

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
1.7 2.5056566 2.5057096 0.000053
1.8 2.5832366 2.5832946 0.000058
1.9 2.6619043 2.6619667 0.0000624
2 2.7415911 2.7416574 0.0000663
2.1 2.8222332 2.822303 0.0000698
2.2 2.9037714 2.9038443 0.0000728
2.3 2.9861507 2.9862263 0.0000755

Ejemplo (continuación)

\(t_i\) \(\hat{y}_i\) \(y_{i}\) \(|y_i-\hat{y}_i|\)
2.4 3.0693201 3.069398 0.0000779
2.5 3.153232 3.1533119 0.00008
2.6 3.2378423 3.237924 0.0000818
2.7 3.32311 3.3231933 0.0000833
2.8 3.4089969 3.4090815 0.0000846
2.9 3.4954677 3.4955534 0.0000857
3 3.5824891 3.5825757 0.0000866

Ejemplo (continuación)

El método del trapecio se encuentra implementado en:

Relación convergencia y consistencia

El estudio de la convergencia del método del trapecio nos permite generalizar el resultado obtenido:

Teorema: relación entre la convergencia y la consistencia de un método de un paso.

Consideremos el siguiente problema de valores iniciales: \[ y'=f(t,y),\ a\leq t\leq b,\ y(a)=y_0, \] donde el dominio de definición de \(f\) es de la forma \[ D=\{(t,y)\in\mathbb{R}^2, \ a\leq t\leq b,\ -\infty < y <\infty\}. \] Consideremos el siguiente método de resolución de un paso: \[ \hat{y}_{i+1}=\hat{y}_i +h \varphi(t_i,\hat{y}_i,\hat{y}_{i+1}),\ \hat{y}_0 =y_0. \]

Relación convergencia y consistencia

Teorema: relación entre la convergencia y la consistencia de un método de un paso (continuación).

Supongamos que \(\varphi(t,y_i,y_{i+1})\) verifica la condición de Lipschitz en las variables \(y_i\) e \(y_{i+1}\), es decir, existe una constante \(L\) tal que para todo \((t_i,y_i),(t_i,\tilde{y}_i)\in D\), \((t_i,y_{i+1}), (t_i,\tilde{y}_{i+1})\in D\), entonces: \[ |\varphi(t_i,y_i,y_{i+1})-\varphi(t_i,\tilde{y}_i,\tilde{y}_{i+1})|\leq L (|y_i-\tilde{y}_i|+|y_{i+1}-\tilde{y}_{i+1}|). \] Entonces si \(hL<1\), \[ |y(t_i)-\hat{y}_i|\leq \frac{\tau}{2L}\left(\mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1\right), \] donde \(\tau =\max_{0\leq i\leq n}|\tau_i|\).

Además si \(\tau =O(h^k)\), entonces el método converge en orden \(k\).

Relación convergencia y consistencia

Observación.

El teorema anterior dice, en pocas palabras, que si la función \(\varphi\) que define el método numérico de un paso es de Lipschitz, entonces si el método es consistente, automáticamente es convergente y además del mismo orden ya que si \(\displaystyle\lim_{h\to 0}\tau =0\), entonces, \[ 0\leq\lim_{h\to 0}|y(t_i)-\hat{y}_i|\leq \frac{\tau}{2L}\left(\mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1\right)=0,\ \Rightarrow \lim_{h\to 0}|y(t_i)-\hat{y}_i|=0. \]

El teorema está escrito de la forma más general posible, suponiendo que el método sea explícito o implícito.

Demostración del Teorema

Sea \(y(t)\) la solución exacta del problema de valores iniciales y \(y(t_i)=y_i\) el valor de la solución exacta de dicho problema en el mallado \(t_i\), \(i=0,\ldots,n\)

Podemos escribir lo siguiente: \[ \begin{align*} \hat{y}_{i+1} & = \hat{y}_i +h\varphi(t_i,\hat{y}_i,\hat{y}_{i+1}),\\ y_{i+1} & =y_i+h\varphi(t_i,y_i,y_{i+1})+h\tau_{i+1}(h). \end{align*} \] Por tanto: \[ y_{i+1}-\hat{y}_{i+1}=y_i-\hat{y}_i+h (\varphi(t_i,y_i,y_{i+1})-\varphi(t_i,\hat{y}_i,\hat{y}_{i+1}))+h\tau_{i+1}(h). \] Sea \(e_i=|y_i-\hat{y}_i|\) y \(\tau =\max_{0\leq i\leq n}|\tau_i(h)|\).

Entonces, usando la expresión anterior y que la función \(\varphi(t_i,\tilde{y}_i,\tilde{y}_{i+1})\) verifica la condición de Lipschitz en las variables \(\tilde{y}_i\) y \(\tilde{y}_{i+1}\), tenemos que: \[ \begin{align*} e_{i+1} & \leq e_i+h|\varphi(t_i,y_i,y_{i+1})-\varphi(t_i,\hat{y}_i,\hat{y}_{i+1})|+h\tau\leq e_i+hL(|y_i-\hat{y}_i|+|y_{i+1}-\hat{y}_{i+1}|)+h\tau \\ & = e_i +hL (e_i+e_{i+1})+h\tau = (1+hL)e_i+hLe_{i+1}+h\tau. \end{align*} \] Por tanto, \[ (1-hL)e_{i+1}\leq (1+hL)e_i+h\tau,\ \Rightarrow e_{i+1}\leq \frac{1+hL}{1-hL}e_i+\frac{h}{1-hL}\tau. \]

Demostración del Teorema (continuación)

Llamemos \(r=\frac{1+hL}{1-hL}\). Podemos escribir, \[ e_{i+1} \leq r e_i +\frac{h\tau}{1-hL}. \]

Iterando la condición anterior, tenemos que: \[ \begin{align*} e_{i+1} & \leq r e_i+\frac{h\tau}{1-hL}\leq r \left(re_{i-1}+\frac{h\tau}{1-hL}\right)+\frac{h\tau}{1-hL}=r^2 e_{i-1}+\frac{h\tau}{1-hL} (1+r) \\ &\leq \cdots \leq r^i e_0+\frac{h\tau}{1-hL}\sum_{j=0}^{i} r^j= \frac{h\tau}{1-hL}\frac{(r^{i+1}-1)}{(r-1)}. \end{align*} \] El valor \(\left|\frac{1}{r-1}\right|\) vale: \[ \left|\frac{1}{r-1}\right|=\left|\frac{1}{\frac{1+hL}{1-hL}-1}\right|=\left|\frac{1-h L}{2 h L}\right|. \]

Demostración del Teorema (continuación)

El valor \(r^{i+1}-1\) puede escribirse como \[ r^{i+1}-1=\left(\frac{1+hL}{1-hL}\right)^{i+1}-1=\left(1+\frac{2hL}{1-hL}\right)^{i+1}-1. \]

Suponiendo que \(hL<1\) (ya que \(h\) tiende a cero), tenemos que \(\frac{2hL}{1-hL}>0\) y por tanto \(r^{i+1}-1>0\).

Ahora, como \(\frac{2hL}{1-hL}<<1\) es pequeño, usando que \(1+x\leq\mathrm{e}^x\) (ver demostración del lema 1), tenemos que: \[ r^{i+1}-1=\left(1+\frac{2hL}{1-hL}\right)^{i+1}-1\leq \mathrm{e}^{\frac{2(i+1)hL}{1-hL}}-1. \] Usando ahora que \((i+1)h\leq nh=b-a\), tenemos que: \[ r^{i+1}-1\leq \mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1. \]

Demostración del Teorema (continuación)

En resumen: \[ e_{i+1}=|y_{i+1}-\hat{y}_{i+1}| \leq \frac{h\tau}{1-hL}\cdot\frac{1-hL}{2hL}\cdot \left(\mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1\right)=\frac{\tau}{2L}\left(\mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1\right), \] para cualquier \(i=0,\ldots,n-1\), tal como queríamos demostrar.

Además si \(\tau =O(h^k)\), entonces: \[ e_{i+1}=|y_{i+1}-\hat{y}_{i+1}| \leq \frac{\tau}{2L}\left(\mathrm{e}^{\frac{2(b-a)L}{1-hL}}-1\right)=O(h^k), \] lo que significa que \(e_{i+1}\leq O(h^k)\) para todo \(i=0,1,\ldots,n-1\) y el método es convergente de orden \(k\).

Cálculo del orden de consistencia

Para calcular el orden de consistencia de un método numérico, necesitamos recordar cuál es la expresión del desarrollo de Taylor de una función de dos variables ya que su cálculo necesita de dicha expresión:

Teorema: desarrollo de Taylor de una función de dos variables.

Sea \(f(t,y)\) una función de dos variables donde sus parciales \(\frac{\partial^{i+j}f}{\partial t^i\partial y^j}(t,y)\) son continuas para todo valor \(i\), \(j\), tal que \(i+j\leq n+1\), con \(n\) un valor entero positivo.

Supongamos que \(f\) está definida en un dominio \(D\) convexo y sea \((t_0,y_0)\in D\).

Entonces para cualquier \((t,y)\in D\), el valor de \(f(t,y)\) puede expresarse de la forma siguiente:

Cálculo del orden de consistencia

Teorema: desarrollo de Taylor de una función de dos variables (continuación).

\[ f(t,y)=P_n(t,y)+R_n(t,y), \] donde \(P_n(t,y)\) es un polinomio de dos variables de grado menor o igual que \(n\): \[ \begin{align*} P_n(t,y) & = f(t_0,y_0)+\left(\frac{\partial f}{\partial t}(t_0,y_0)(t-t_0)+\frac{\partial f}{\partial y}(t_0,y_0)(y-y_0)\right)\\ & \quad +\frac{1}{2}\left(\frac{\partial^2 f}{\partial t^2}(t_0,y_0)(t-t_0)^2+2\frac{\partial^2 f}{\partial t\partial y}(t_0,y_0)(t-t_0)(y-y_0)\right. \\ &\quad\left. +\frac{\partial^2 f}{\partial y^2}(t_0,y_0)(y-y_0)^2\right)+\cdots \\ & \quad +\frac{1}{n!}\sum_{j=0}^n \binom{n}{j}\frac{\partial^n f}{\partial t^{n-j}\partial y^j}(t_0,y_0)(t-t_0)^{n-j}(y-y_0)^j \end{align*} \]

Cálculo del orden de consistencia

Teorema: desarrollo de Taylor de una función de dos variables (continuación).

y \(R_n(t,y)\) es el término del error cometido al aproximar \(f\) por el polinomio \(P_n\): \[ R_n(t,y)=\frac{1}{(n+1)!}\sum_{j=0}^{n+1} \binom{n+1}{j}\frac{\partial^{n+1} f}{\partial t^{n-j}\partial y^j}(\xi,\nu)(t-t_0)^{n-j}(y-y_0)^j, \] donde \((\xi,\nu)\) pertenece a un entorno de centro \((t_0,y_0)\) que contiene el valor \((t,y)\).

Cálculo del orden de consistencia

Observación.

El polinomio \[ P_1(t,y)=f(t_0,y_0)+\left(\frac{\partial f}{\partial t}(t_0,y_0)(t-t_0)+\frac{\partial f}{\partial y}(t_0,y_0)(y-y_0)\right), \] sería la aproximación de primer grado para la función \(f(t,y)\) de error: \[ \begin{align*} R_1(t,y) & = \left(\frac{1}{2}\frac{\partial^2 f}{\partial t^2}(\xi,\nu)(t-t_0)^2+\frac{\partial^2 f}{\partial t\partial y}(\xi,\nu)(t-t_0)(y-y_0)\right. \\ &\quad\left. +\frac{1}{2}\frac{\partial^2 f}{\partial y^2}(\xi,\nu)(y-y_0)^2\right). \end{align*} \]