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]\).
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.
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}. \]
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.
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:
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.
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:
La constante \(L\) se denomina constante de Lipschitz de la función \(f\).
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\).
Otra de las condiciones que necesitamos es que el dominio de definición de la función \(f\) sea convexo:
Ejemplo
El siguiente conjunto dibujado en verde es convexo:
Ejemplo
En cambio, el siguiente conjunto dibujado en verde no es convexo:
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:
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:
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:
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:
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.
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.
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\).
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,
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
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\).
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*} \]
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})\).
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
).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*} \]
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 |
\(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 |
\(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 |
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.
El teorema siguiente nos da la 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]\).
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\).
Para demostrar el teorema, necesitamos dos lemas previos:
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}. \]
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}. \]
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}. \]
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}. \]
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.
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). \]
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.
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\).
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) \]
\(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 |
\(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 |
\(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 |
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.
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)\).
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)\).
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.
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.
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.
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. \]
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\).
El error local de truncamiento motiva la definición siguiente:
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)\).
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.
La defininción de convergencia de un método es la siguiente:
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. \]
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)\).
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. \]
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.
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). \]
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*} \]
\[ \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*} \]
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*} \]
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*} \]
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) \]
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
)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
).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*} \]
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*} \]
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 |
\(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 |
\(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 |
El siguiente resultado nos dice que el método de Taylor orden \(k\) es consistente de orden \(k\):
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\).
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))\).
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.
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\).
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.
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.
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})). \]
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.
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.
No sólo el método del trapecio es consistente, también es convergente:
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\).
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). \]
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)|\).
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. \]
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.
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
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
).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.\)
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*} \]
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.
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. \]
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 |
\(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 |
\(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 |
El estudio de la convergencia del método del trapecio nos permite generalizar el resultado obtenido:
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. \]
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\).
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.
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. \]
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|. \]
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. \]
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\).
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:
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:
\[ 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*} \]
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)\).
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*} \]