Método de fuerza de rute B
Bueno, la forma más sencilla sería generar una aproximación a través de una suma de Riemann. Tenga en cuenta que también hay otras formas de calcularlo: calcular el área bajo una curva utilizando sumas de Riemann
Para resumir, piensa en el área como un conjunto finito de rectángulos debajo de la curva. Para calcularlos, recorre una distancia predeterminada a lo largo de x (este sería el ancho de cada rectángulo), luego calcula su altura ingresando ese valor de x en la fórmula original para obtener un y. Luego calcula el área de ese rectángulo multiplicando el ancho y la altura. Para cada uno de estos, los sumas en un total que es lo que devuelves al final. Para hacerlo más preciso, haga sus pasos más pequeños, aunque esto significa que habría más procesamiento para hacerlo más preciso.
- Soy muy malo en matemáticas, pero quiero ser programador. ¿Debo solicitar la programación?
- ¿Qué cursos de matemáticas en la universidad son más importantes para la informática?
- ¿Cuál es la mejor manera de manejar los problemas de coma flotante con cálculos financieros en JavaScript?
- ¿Hasta qué punto puede comprimir un archivo comprimido de manera eficiente?
- ¿Cuáles son los cursos / libros matemáticos útiles para SRM de TopCoder?
Si simplemente desea un algoritmo en C ++ que haga esta idea exacta: C ++ Fuente: Cálculo integral definido
O mi versión C mucho más simple (aunque mucho más insegura): Ideone.com
El principio FP de su función de área
Efectivamente, está haciendo algo similar a lo que hacen las personas que trabajan en la programación funcional en algunas situaciones: hacer una función que tome otra función como una de sus entradas.
Entonces, la idea es que su función de “área bajo curva” toma 3 argumentos: el valor inicial x, el valor final xy una función que transforma x en y (esta sería su función cos (x)). En C y C ++ puede pasar una función como puntero a una función. También es posible que desee un cuarto argumento para indicar la precisión
…
Tenga en cuenta que esta no es la mejor manera o la más rápida. No la parte FP, sino la suma de Riemann. Porque cuanto más preciso lo desee, más tiempo llevará ejecutarlo. Efectivamente para obtener una precisión absolutamente perfecta significa que su algoritmo es un O (∞), es decir, nunca terminará.
Aunque en la mayoría de los casos esto sería suficiente, ya que rara vez necesitaría calcular en tal grado. Sin mencionar que si no está utilizando algún tipo de tipo de datos BigNumber y solo está utilizando dobles, entonces el resultado no puede dar nada más preciso que un doble.
U singles integrales
En lugar de su algoritmo Riemann Sum, podría usar una integral precalculada. Aunque eso significa que su función de área solo funciona en esa fórmula.
Su función específica se anota como esta (una integral definida, ya que tiene un punto inicial y final para x):
Esa es en realidad una integral de “identidad”. Es equivalente a la fórmula:
O más correctamente
Entonces, en este caso particular, simplemente puede devolver 1.0. Por supuesto, si la fórmula cambia, o el inicio / parada cambia, esto también necesitaría cambiar.