Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Una rutina en C++ para resolver ecuaciones diferenciales



Partes: 1, 2

  1. Abstract
  2. Introducción
  3. Ecuaciones diferenciales de primer
    orden
  4. Resolución numérica a un sistema
    de acoplado de N ecuaciones diferenciales usando el
    método Runge–Kutta
  5. Ecuaciones diferenciales de segundo
    orden
  6. Conclusiones
  7. Referencias
  8. Apéndice

Implementación de una rutina en
C++ para la resolución de ecuaciones diferenciales
ordinarias de primer y segundo orden usando el método
numérico de Runge–Kutta y de Adams–Bashforth
Moulton

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: Métodos Numéricos, Runge
Kutta , Adam–Bashforth Moulton, Ecuaciones Diferenciales,
C++

Introducción

Existe una gran variedad de métodos
numéricos para resolver ecuaciones diferenciales p. ej.
Regla del Trapecio, Regla del Punto Medio, Métodos
Predictores–Correctores, Método de Euler, etc. Los
softwares que existen, que se enfocan a resolver ecuaciones
diferenciales, poseen una interfaz gráfica al usuario, la
cual facilita la resolución de las ecuaciones
diferenciales. Estos software, aunque son fáciles de usar,
tienen como gran defecto el que se requiere una cantidad
considerable de memoria. En muchos casos, el usar programas tan
pesados, refiriéndonos a recursos computacionales, es como
el intentar matar una mosca con un cañón. En el
presente artículo, se muestra una rutina creada en C++
para resolver ecuaciones diferenciales de la forma:

Monografias.com

y de la forma:

Monografias.com

usando el método numérico
Runge–Kutta de cuarto orden y el método
Adam-Bashforth Moulton de cuarto orden. El programa creado en el
lenguaje C++, lee de un archivo externo la función que se
pretende resolver expresada en forma de cadena de texto. Esto
hace que el programa sea flexible, pues no hay necesidad de
modificar y compilar el código fuente cada vez que se
pretenda evaluar una función diferente, sólo es
necesario abrir el archivo externo y remplazar la función
existente por la función nueva a evaluar. 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.

Monografias.com(1)

El método de Runge–Kutta para la
solución ecuaciones diferenciales de primer orden
es:

Monografias.com

En el algoritmo que se define en la
ecuación (2),

Monografias.com

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:

Monografias.com

El primer ejemplo que se resuelve es el
siguiente:

Monografias.com(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.

Monografias.com

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 rojo

La imágen superior muestra, que ambos
métodos numéricos dan una buena solución a
la ecuacion diferencial (10). Para medir la efectividad del
algoritmo se calculó el error porcentual (porcentaje de
error entre la solución real y la solución
aproximada) usando:

Monografias.com(11)

en donde v representa el valor real y el
vapprox es el valor obtenido al usar el método
numérico. En la siguiente imágen se muestra el
error porcentual obtenido al implementar los dos métodos
numéricos, Runge–Kutta y
Adam-Bashforth–Moulton, para obtener la solución
numérica a la ecuación diferencial (10)

Partes: 1, 2

Página siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter