Pr‡ctica 6: Resoluci—n NumŽrica de Ecuaciones Diferenciales

MŽtodo de Euler

El mŽtodo de Euler es uno de los mŽtodos m‡s conocidos para la aproximaci—n numŽrica de ecuaciones diferenciales aunque en la pr‡ctica no suele utilizarse habitualmente a causa de su imprecisi—n y porque requiere muchas operaciones, siendo sustituido por el mŽtodo de Runge-Kutta, Taylor, Milne, Adams...

Ofrece como ventaja el hecho de que no utiliza derivadas de la funci—n, pero hemos de realizar muchas operaciones para obtener un resultado aceptable.

La expresi—n que representa el mŽtodo de Euler es la siguiente:

As’, segœn el valor de la  que tomemos podremos aproximar m‡s o menos el resultado real; as’, si tomamos valores peque–os de la  estaremos buscando m‡s puntos y por lo tanto una mejor aproximaci—n.

En esta pr‡ctica la funci—n a aproximar es la siguiente:

De la cual conocemos su soluci—n anal’tica:

Con estos datos anteriores implementaremos un algoritmo para calcular distintas aproximaciones de una funci—n en un rango de puntos [a,b]. El error que consideraremos ser‡ el m—dulo entre  aproximado y  real, ya que conocemos su valor. As’ el error aumentar‡ a lo largo de las iteraciones.

De este modo hemos implementado el algoritmo del mŽtodo de Euler para resolver esta ecuaci—n diferencial y en principio hemos obtenido los siguientes valores, representados mediante el programa gr‡fico GnuPlot. En principio hemos tomado como  el valor 0.1 y el rango ser‡ [0,1]. De este modo obtendremos diez valores, y observaremos que el error que se produce es bastante grande, con lo cual no obtenemos una buena aproximaci—n. Adem‡s con su representaci—n junto con la funci—n de la soluci—n real podemos comprobar este hecho gr‡ficamente:

Seguidamente aplicaremos el algoritmo del mŽtodo de Euler al mismo problema pero utilizando 100 puntos, con lo cual el valor de  ser‡ 0.01 y el rango seguir‡ siendo [0,1]. De este modo observamos que el error es mucho menor y junto con la gr‡fica podemos concluir que se trata de una buena aproximaci—n.

A continuaci—n aplicaremos el algoritmo a un problema r’gido como es el siguiente:

Del cual tambiŽn conocemos su soluci—n real:

As’ hemos implementado el algoritmo anterior para resolver esta ecuaci—n diferencial, obteniendo los siguientes valores representados mediante el programa gr‡fico GnuPlot. En principio hemos tomado como  el valor 0.1 y el rango ser‡ [0,1]. De este modo obtendremos 10 valores; con su representaci—n junto con la funci—n de la soluci—n real podemos comprobar que no nos encontramos ante una buena aproximaci—n:

A continuaci—n modificaremos el algoritmo del mŽtodo de Euler para resolver esta ecuaci—n diferencial tomando como  el valor 0.01 y el rango [0,1]. De este modo obtendremos 100 valores; con su representaci—n junto con la funci—n de la soluci—n real podemos comprobar que nos encontramos ante una aproximaci—n mejor:

 

MŽtodo de Runge-Kutta

Los mŽtodos de Runge-Kutta se desarrollaron para evitar el c‡lculo de derivadas de mayor orden que el que puede incluir el mŽtodo de Taylor. En lugar de estas derivadas se emplean valores extra de la funci—n dada , en una forma que reproduce la precisi—n de un polinomio de Taylor. Con este mŽtodo conseguimos una mejor aproximaci—n que con el mŽtodo de Euler. Este podemos mejorarlo segœn el orden sobre el cual apliquemos el mŽtodo. El que nosotros vamos a utilizar es el de orden 4 –ya que emplea cuatro ecuaciones. Las formulas que emplea Žste mŽtodo son las siguientes:

Donde:

Con estos datos anteriores implementaremos un algoritmo para calcular distintas aproximaciones de una funci—n en un rango de puntos [a,b]. El error que consideraremos ser‡ el m—dulo entre  aproximado y  real, ya que conocemos su valor. As’ el error aumentar‡ a lo largo de las iteraciones.

A continuaci—n realizaremos el algoritmo del mŽtodo de Runge-Kutta aplicado sobre la ecuaci—n diferencial propuesta en la pr‡ctica:

De la cual conocemos su soluci—n anal’tica:

Desde este algoritmo hemos obtenido distintas gr‡ficas segœn los datos introducidos. En primer lugar hemos implementado el algoritmo inicializando el dato  a 0.1 y el rango [0,1] y hemos obtenido un fichero de datos que representado en el GnuPlot nos resulta la siguiente gr‡fica, de la cual deducimos que este mŽtodo realiza una aproximaci—n mucho m‡s fiable a la soluci—n real que el que obten’amos de aplicar el mŽtodo de Euler. Observamos tambiŽn que el error es mucho menor, incluso llegando a ser nulo.

A continuaci—n aplicaremos el algoritmo de Runge-Kutta a un problema r’gido como es el siguiente:

Del cual tambiŽn conocemos su soluci—n real:

As’ hemos implementado el algoritmo del mŽtodo de Runge-Kutta para resolver esta ecuaci—n diferencial, obteniendo los siguientes valores representados mediante el programa gr‡fico GnuPlot. En principio hemos tomado como  el valor 0.1 y el rango ser‡ [0,1]. De este modo obtendremos 10 valores; con su representaci—n junto con la funci—n de la soluci—n real podemos comprobar que no nos encontramos ante una buena aproximaci—n ya que se produce un error muy grande.

A continuaci—n modificaremos el algoritmo del mŽtodo de Runge-Kutta para resolver esta ecuaci—n diferencial tomando como  el valor 0.01 y el rango [0,1]. De este modo obtendremos 100 valores; puesto que no se produce pr‡cticamente error y con su representaci—n junto con la funci—n de la soluci—n real podemos comprobar que nos encontramos ante una aproximaci—n mejor:

 



Alojamiento con 500GB de espacio y 5000GB de ancho de banda por 4 euros al mes
Cómo contratar servicios de hosting con Dreamhost
Descuento, promocode para dreamhost de $50