Rutina en c++
Abstract
El siguiente texto muestra el uso del método numérico Runge–Kutta de cuarto orden y el método multipaso predictor de Adam-Bashforth Moulton de cuarto orden para la resolución de Ecuaciones D
iferenciales. Se implementó una rutina en C++ y se calculó la solución numérica a varios problemas que se encuentra en la literatura con el propósito de medir la eficiencia del algoritmo. Se esperan, de los lectores, valiosos comentarios y críticas, pues serán de gran ayuda para la relización de futuras versiones del programa.
Palabras Clave: …ver más…
Para la implentación del programa se utilizo la libreria gratuita function parser for C++ v2.2 por Warp.
Ecuaciones diferenciales de primer orden
Las ecuaciones diferenciales de primer orden, relacionan la primera derivada con una función f(x, y) y solo es necesario una condición inicial para resolver el problema.
(1)
El método de Runge–Kutta para la solución ecuaciones diferenciales de primer orden es:
En el algoritmo que se define en la ecuación (2),
El método de Runge–Kutta requiere de cuatro evaluaciones por paso, ver ecuaciones (3), (4), (5) y (6). El otro método numérico que se presenta para resolver ecuaciones diferenciales de primer orden, es el de Adam-Bashforth–Moulton de cuarto orden, el cual se define como:
El primer ejemplo que se resuelve es el siguiente:
(10)
usando ambos métodos numéricos, Runge–Kutta y Adam-Bashforth–Moulton, se encontró la solución numérica y(x) a la ecuacion diferencial (10), en el rango [0, 10] con un tamaño de paso h=0.001. El programa guarda el resultado en un archivo, la solución obtenida entonces se puede graficar usando cualquier software graficador, que dados los puntos haga la gráfica. En este proyecto se utilizó el graficador gnuplot.
Solución numérica obtenida al resolver la ecuación diferencial (10) usando el algoritmo de Runge–Kutta (en azul), y el de Adam-Bashforth–Moulton (en verde). Se usó un tamaño de paso h=0.001. La solución analítica se muestra en color