Matlab Método de Euler para Integración Numérica

[Recuerda que en este Blog los enlaces para la descarga del código se encuentran al final del artículo.]

El método de Euler, llamado así en honor al matemático Leonhard Euler, es el método mas sencillo de todos los métodos de integración numérica, a nivel de programación, es un método bastante eficiente, puede resolver ecuaciones diferenciales ordinarias a partir un valor inicial dado.

este método parte de la posibilidad de aproximar una función original mediante rectas tangentes, que parte de un punto dado, en este caso Xo se sabe que si se tiene la derivada de una función  y en esta se evalúa un valor Xo se obtiene la pendiente de la recta tangente en ese punto, luego, el método propuesto por Euler propone que dando un pequeño avance sobre dicha curva (suponiendo que este pequeño paso an esta sobre la función original) podemos nuevamente evaluar la derivada para obtener una nueva pendiente, y por ende, una recta tangente a la curva original, es así que mediante pequeños pasos, a partir de un punto inicial dado, podemos aproximar la forma de una función original dada su derivada y un punto inicial Xo, como se puede ilustrar en la figura 1.

aproximación de una curva por el metodo de Euler

figura 1. Aproximación de una curva por el método de Euler

El método de Euler se puede resumir entonces como el típico problema de valor inicial, donde se presenta la derivada de la función f(x), con su respectivo valor inicial de Y(Xo)=Yo así ya se obtiene una coordenada desde la cual iniciará nuestro procedimiento, el cual consta de ir sumando sucesivamente, como se ilustra en la figura 2.

figura 2.

figura 2.

PROCEDIMIENTO.

Inicialmente cosiste en dividir el intervalo comprendido entre Xo y Xf, en n subintervalos de ancho, en este caso llamaremos h a ese ancho, hay que recordar que entre menor sea ese ancho, es decir si hay más divisiones del intervalo, se obtendrá una mayor “resolución”  al tener mas puntos para evaluar, así se minimiza el error entre la aproximación y la función original, el ancho se define de la siguiente forma.

euler

La condición inicial dada por   nos representa entonces un ponto con sus respectivas coordenadas  por donde realmente pasa la curva solución de la ecuación diferencial.

Para llevar a cabo el calculo de la integral, se resuelve la siguiente ecuación para Y1:

quedando así de la siguiente forma:

Donde h al ser el intervalo que hay en la base (eje x) al ser multiplicada por f(Xo,Yo) nos da un área, que se va sumando en cada iteración, para calcular el n-esimo termino, la serie se puede ilustrar como:

Este no es un método exacto ya que tiene errores propio al partir de las suposiciones que se hacen al decir por ejemplo que los puntos que se toman de la recta tangente están sobre la curva original, el solo hecho de esta suposición introduce cierto error, pero puede llegar a ser despreciado dependiendo de la aplicación que le necesitemos, aunque si bastante efectivo, y suele ser propuesto como ejemplo o ejercicio para los estudiantes de programación.

El Código en Matlab.

Como se puede observar, es bastante básica pero muy bien pensada la forma en que trabaja el método de Euler, a continuación desarrollaremos el código en Matlab o lo que es lo mismo, en lenguaje .m para ilustrar uno de los procedimientos mas usados computacionalmente para calcular  numéricamente la integral de una ecuación diferencial con valor inicial numéricamente, EL MÉTODO DE EULER.

a continuación se crea en un fichero de Matlab, una función (en nuestro caso llamada ‘euler’) que recibirá como argumento de entrada una función que puede depender de cualquier variable -previamente definida como simbólica con el comando syms- dicha función, tendrá como valor de retorno el valor que resulta de la acumulación que se crea en la variable Yo en cada iteración, como habíamos dicho, este método plante una serie de sumas sucesivas.

declaracion de función en Matlab para Método de Euler

declaración de una posible función en Matlab para Método de Euler

A continuación, pedimos los datos de intervalo de integración es decir; Xo y Xf, el valor inicial Yo que es el resultado de evaluar el punto inicial de Xo en la función original así es donde se tiene la certeza de donde inician las rectas tangentes para tener un buen desarrollo del método, y por ultimo, se pide el numero de subintervalos que queremos entre Xf y Xo (entre más puntos mejor resolución) y se almacena en N.

euler

Ingreso de datos.

Se inician la serie anteriormente explicada, donde, con la sentencia Yo=Yo+…. se crea una acumulación en la variable Yo que al final será retornada como variable de salida, con el valor de la integral. La variable Xo tambien va aumentando con el valor de los intervalos definidos en H así la sentencia Xo=X0+h hace que Xo cresa con las iteraciones consecutivas. La condición Xo<=Xf significa que las iteraciones se continuaran realizando mientras el valor de la variable Xo se encuentre entre el intervalo ingresado Xo-Xf definido inicialmente, así, al final cuando la condición no se cumpla, es porque Xo ha llegado al Valor Xf es decir, ya se a barrido todo el intervalo.

Ciclo para el método de Euler

Ciclo para el método de Euler

Finalmente despues de ejecutada la función tendríamos en nuestra ventana de comandos el resultado buscado de nuestro problema de valor inicial, un ejemplo para ilustrar esto es el siguiente:

Ejemplo: Obtener el valor de la integral de la función f'(x)=6x^2+3 entre 0 (cero) y 3.

De esta forma, definimos la variable X como simbólica, luego se declara la variable Y=f'(x), posteriormente se hace el llamado a la función ‘euler’ y se ingresan los datos pedidos, finalmente, despues de ejecutadas todas las lineas de la función, tendremos en nuestra Command Window la variable ‘ans’ con el resultado aproximado de la solución.

Ejemplo de como usar la función desarrollada anteriormente.

Ejemplo de como usar la función desarrollada anteriormente.

El código de esta función lo puedes descargar desde ESTE ENLACEsi tienes alguna pregunta, puedes dejar tu comentario, si te sirve este tutorial, compártelo, el conocimiento es de todos.

Comentar es una forma de agradecer.

3 comentarios en “Matlab Método de Euler para Integración Numérica

    • Hola @Lupita, si te refieres a graficar las funciones con las que quieres probar el método lo único que debes hacer es usar la función ezplot(), a esta le puedes pasar como argumento la función que quieres graficar y listo, o como argumentos adicionales los limites inferior y superior, osea que si queremos graficar la función del ejemplo sería:

      syms x
      y=6*x^2+3;
      ezplot(y,[-8,8])

      Y esto nos mostrará la gráfica de dicha función en el intervalo -8 a +8, sino pones los limites la función graficara entre -2pi y 2pi por defecto.

      Espero haberte ayudado, un saludo y gracias por comentar.
      :)

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s