¿Cuál es el algoritmo para integrar una función usando un programa de computadora?

En términos generales, hay dos enfoques para la integración: simbólico y numérico. La integración simbólica básicamente sigue exactamente las mismas reglas que un humano para integrar una función, manipulando la función algebraicamente. La integración numérica, por otro lado, se aproxima a una integral al dividir la función en pequeños segmentos, aproximar esos sectores y sumarlos. (Los algoritmos reales pueden ser un poco más complejos que esto, pero esa es la idea general).

Integración simbólica

La integración simbólica es quizás más interesante: puede darnos una integral indefinida y trata bien con todo tipo de comportamientos “extraños” como las asíntotas y las discontinuidades. Esto es lo que hace WolframAlpha cuando le das una solución integral, ¡incluso puede mostrar sus pasos! Estos pasos no representan el algoritmo real para idearlos, pero de todos modos son interesantes.

El algoritmo de Risch se puede utilizar para integrar simbólicamente cualquier función compuesta de funciones elementales. Sin embargo, creo que el problema más general de integrar cualquier función simbólicamente no tiene una solución algorítmica. El algoritmo de Risch depende de resolver el problema constante que no tiene una solución algorítmica general conocida. En la práctica, los sistemas de álgebra computacional existentes como Mathematica combinan el algoritmo de Risch con la heurística para resolver integrales simbólicas.

Integración Numérica

Si solo desea el resultado de una integral definida, en realidad no tiene que integrar la función simbólicamente ni producir una integral indefinida. En su lugar, puede utilizar la integración numérica que calcula una aproximación de la integral definida.

Un algoritmo de integración numérica muy simple podría ser calcular una suma de Reimann con secciones muy pequeñas. Esto es fácil de escribir pero se desempeña muy mal para ciertas funciones; la aproximación resultante depende en gran medida de las formas exactas que componen la suma.

Un algoritmo más preciso para la integración numérica se llama cuadratura de Tanh-sinh. Este algoritmo tiende a ser preciso en la mayoría de las funciones y es “robusto contra el error en presencia de singularidades en los puntos finales de la integral” (citado de la documentación de la biblioteca de integración de Haskell).

Para la mayoría de las aplicaciones, la integración numérica probablemente sea suficiente. Existen diferentes métodos que pueden cambiar la precisión por la velocidad y viceversa. Lo más probable es que no necesite los algoritmos de integración simbólica más complejos a menos que esté escribiendo un sistema de álgebra de computadora usted mismo.

Actualizado: Realmente depende de la complejidad de la respuesta esperada 🙂

Si habla de funciones polinomiales, la representación basada en listas vinculadas del polinomio funciona bien tanto para la integración definitiva como para la indefinida.
Pero para una función general, no creo que se trate de algoritmos y si está más interesado en la implementación, le sugiero que busque algunas bibliotecas existentes.