Método de Euler
La idea del método de Euler es muy sencilla y está basada en el significado geométrico de la
derivada de una función en un punto dado.
Supongamos que tuviéramos la curva solución de la ecuación diferencial y trazamos la recta
tangente a la curva en el punto dado por la condición inicial.
Debido a que la recta tangente aproxima a la curva en valores cercanos al punto de tangencia,
podemos tomar el valor de la recta tangente en el punto.
como una aproximación al valor deseado
Así, calculemos la ecuación de la recta tangente a la curva solución de la ecuación diferencial dada
en el punto
De los cursos de Geometría Analítica, sabemos que la ecuación de la recta es:
donde m es la pendiente. En este caso, sabemos que la pendiente de la recta tangente se calcula
con la derivada:
Por lo tanto, la ecuación de la recta tangente es
Ahora bien, suponemos que
es un punto cercano a
y por lo tanto estará dado como
De esta forma, tenemos la siguiente aproximación:
De aquí, tenemos nuestra fórmula de aproximación:
Esta aproximación puede ser suficientemente buena, si el valor de h es realmente pequeño,
digamos de una décima o menos. Pero si el valor de h es más grande, entonces podemos cometer
mucho error al aplicar dicha fórmula. Una forma de reducir el error y obtener de hecho un método
iterativo, es dividir la distancia
en n partes iguales (procurando que estas partes sean de longitud suficientemente pequeña) y
obtener entonces la aproximación en n pasos, aplicando la fórmula anterior n veces de un paso a
otro, con la nueva h igual a
Ejemplo
Aplicar el método de euler para aproximar y(1.3), dada la ecuación diferencial
Y=x^2+0.5y^2
Y(1)=2
Dividimos en pasos la aproximación, elegimos h=0.1, para obtener el resultado final en 3 pasos,
por lo tanto aplicamos el método de Euler con los siguientes datos:
X0=1
Y0=2
h=0.1
f(x,y)= x^2+0.5*y^2
Tenemos que:
X1= x0+h =1.1
Y1= y0 + hf(x0,y0) = 2+0.1[1^2 + 0.5(2)^2] = 2.3
Resumiendo, los resultados en la tabla:
N X* Y*
0 1 2
1 1.1 2.3
2 1.2 2.6855
3 1.3 3.1901
De lo cual concluimos que la aproximación buscada es:
Y(1.3) = 3.1901
Código en Matlab
function f
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO METODO DE
EULER\n')
f=input('\nIngrese la ecuacion diferencial de la forma:
dy/dx=f(x,y)\n','s');
x0=input('\nIngrese el primer punto x0:\n');
x1=input('\nIngrese el segundo punto x1:\n');
y0=input('\nIngrese la condicion inicial y(x0):\n');
n=input('\nIngrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
y1=y0;
fprintf('\n''it x0 x1 y1');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
x1=xs(i+1);
y=y0;
y1=y0+h*eval(f);
fprintf('\n%2.0f%10.6f%10.6f%10.6f\n',it,x0,x1,y1);
y0=y1;
end
fprintf('\n El punto aproximado y(x1) es = %10.6f\n',y1);