Método de Euler
Contents
4.3. Método de Euler#
4.3.1. El problema de valores iniciales de una ecuación diferencial ordinaria#
El método de Euler proporciona una aproximación de la solución del problema de valor inicial (PVI):
por medio de puntos aproximados del gráfico de su solución.
En vista de la condición inicial, el gráfico de la solución pasa por el punto \((x_{0},y_{0})\). El método de Euler propone utilizar la recta tangente al gráfico en \((x_{0},y_{0})\) para calcular el primer punto aproximado \((x_{1},y_{1})\) del gráfico de la solución, de donde resulta
4.3.1.1. Algoritmo#
Repitiendo el \(n\) veces el paso anterior, obtenemos el \(n-\)ésimo punto aproximado \((x_{n},y_{n})\) mediante la fórmula
Aquí, \(x_{0}\), \(y_{0}\) y \(f\) vienen dados por la condición inicial del PVI y la función que define la ecuación diferencial ordinaria.
4.3.1.2. Ejemplo#
Consideramos el problema de valor inicial
y escogemos \(h=0.1.\)
En este caso tendremos
Veamos como podemos obtener estos puntos.
Se puede definir la función euler_un_paso(f,x0,y0,h)
que realiza un paso del método de Euler para resolver numéricamente el problema de valor inicial (PVI)
Es decir, euler_un_paso(f,x0,y0,h)
devuelve el par $\( (x_1,y_1)\)$ donde
Así, el primer punto de la solución aproximada del PVI con \(h=0.1\) que proporciona el método de Euler es \((0.1,1.0)\).
Para obtener el segundo punto \((x_2,y_2)\), tendríamos que dar otro paso, partiendo de \((0.1,1.0)\). Y así, seguimos construyendo los puntos del gráfico de la solución aproximada.
Imagen de abajo: puntos de Euler para el PVI \(y'=x(1+y^{2}),\ y(0)=1,\) con \(h=0.1\) y \(h=0.05.\)
4.3.2. Ejercicios#
Definir la función
euler(f,x0,y0,h,N)
que devuelve el punto \((x_{N},y_{N})\) definido por la ley recursiva del método de Euler.
Ayuda: Al ser un algoritmo recursivo debemos realizar los siguientes pasos:
Escoger las variables \(x\), \(y\) donde se guardarán los valores de \(x_{n}\), \(y_{n}\) e inicializarlas:
x = x0
y = y0
Repetir \(N\) veces el paso recursivo (obtener \((x_{n},y_{n})\) a partir de \((x_{n-1} , y_{n-1})\)) de reasignar las variables \(x\), \(y\):
y = y + hf(x,y)
x = x + h.
Es importante reasignarlas en ese orden ¿por qué?
Calcular el punto \((x_{100},y_{100})\) del gráfico de la solución aproximada del PVI
con \(h=0.02\).
Definir la función
euler_x(f,x0,y0, xf, h)
que utiliza la ley recursiva del método de Euler para devolver un valor aproximado de \(y(x_f)\) donde \(y(x)\) es la solución del problema de valor inicial (PVI)
con un paso \(h.\)
Ayuda:
Obsérvese que habrá determinar el punto \((x_{N},y_{N})\) definido por la ley recursiva del método de Euler, con \(x_N = x_f\) y \(N = (x_f - x_0)/h.\) Supondremos que \((x_f - x_0)/h\) es entero.
En el código primero habrá que obtener \(N\) como el número de pasos necesarios para para llegar de \(x_0\) a \(x_f\) con un paso de longitud \(h.\) Téngase en cuenta que el valor de \(N\) que se va a utilizar debe ser entero. Un vez tenemos \(N,\) hay que repetir el proceso descrito anteriormente de la ley recursiva del método de Euler \(N\) veces.
Definir la función
grafico_euler(f,x0,y0,h,N)
que representa en un gráfico los \(N\) primeros puntos de Euler para el PVI anterior (como los puntos rojos de la figura de más arriba).
Ayuda:
Primero hay que traer el paquete
matplotlib.pyplot
comoplt
con la línea
import matplotlib.pyplot as plt
que puede estar fuera de la función.
Debemos crear dos listas
Como euler(f,x0,y0,h,n)
devuelve el par \((x_{n},y_{n})\), la lista \(X\) debe estar formada por las primeras componentes de euler(f,x0,y0,h,n)
con \(n=0,1,2,\ldots\) y la lista \(Y\) por las segundas componentes.
Para que función
grafico_euler(f,x0,y0,h,N)
devuelva la gráfica después de la líneaplt.plot(X, Y)
hay que añadir la líneaplt.show()
Esta función no tiene
return
Utilizar la función
grafico_euler(f,x0,y0,h,n)
para dibujar la solución aproximada del PVI
con \(h=0.01\) y \(n=300\).
Es conocido que la solución del PVI
tiene la propiedad \(y(1)=\pi\). Utilizar este hecho para calcular un valor aproximado de \(\pi\).