FECHA: 06/05/19
UNIDAD 6
Método de Euler.
En matemática y computación, el método de Euler, llamado así en honor
de Leonhard Euler, es un procedimiento de integración numérica para
resolver ecuaciones diferenciales ordinarias a partir de un valor inicial dado.
El método de Euler es el más simple de los métodos numéricos resolver un
problema del siguiente tipo:
Con esta información se traza una recta, aquella que pasa por y de
pendiente . Esta recta aproxima en una vecinidad de . Tómese
la recta como reemplazo de y localícese en ella (la recta) el valor de y
correspondiente a . Entonces, podemos deducir segun la Gráfica A:
Se resuelve para :
Es evidente que la ordenada calculada de esta manera no es igual a ,
pues existe un pequeño error. Sin embargo, el valor sirve para que se
aproxime en el punto y repetir el procedimiento anterior a fin
de generar la sucesión de aproximaciones siguiente:
Método de Euler Mejorado
Este método se basa en la misma idea del método anterior, pero hace un
refinamiento en la aproximación, tomando un promedio entre ciertas pendientes.
La fórmula es la siguiente:
Donde
,
donde h es el paso por iteración, o lo que es lo mismo, el incremento entre
los sucesivos puntos y . Los coeficientes son términos de aproximación
intermedios, evaluados en ƒ de manera local
Código Euler.
Clc;
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);
function f
fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO RUNGE-
KUTTA DE ORDEN 4\n')
f=input('\n Ingrese la ecuacion diferencial\n','s');
x0=input('\n Ingrese el primer punto x0:\n');
x1=input('\n Ingrese el segundo punto x1:\n');
y0=input('\n Ingrese la condicion inicial y(x0):\n');
n=input('\n Ingrese el numero de pasos n:\n');
h=(x1-x0)/n;
xs=x0:h:x1;
fprintf('\n''it x0 y(x1)');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
y=y0;
k1=h*eval(f);
x=x0+h/2;
y=y0+k1/2;
k2=h*eval(f);
x=x0+h/2;
y=y0+k2/2;
k3=h*eval(f);
x=x0+h;
y=y0+k3;
k4=h*eval(f);
y0=y0+(k1+2*k2+2*k3+k4)/6;
fprintf('\n%2.0f%10.6f%10.6f\n',it,x0,y0);
end
fprintf('\n El punto aproximado y(x1) es = %8.6f\n',y0);
conclusiones.
Mediante los métodos anteriores vistos comprendo que son de gran ayuda en
la aplicación de diferentes áreas y problemas en la vida cotidiana. Por el cual
podemos decir que los Métodos numéricos y sus aplicaciones en sus
diferentes métodos son de gran ayuda en la vida del ingeniero para la
resolución de problemas y facilitarlos en sus resultados más exactos. El
Método de Runge Kutta es mejor que el método de Euler, pero aun así es
posible aumentar la precisión achicando los pasos entre los puntos o
implementando el método de orden superior. Es el método más utilizado para
resolver numéricamente problemas de ecuaciones diferenciales ordinarias con
condiciones iniciales es el método de Runge-Kutta, el cual proporciona un
pequeño margen de error con respecto a la solución real del problema.