Cómo calcular el área debajo de y = cosx [0, pi / 2] en C

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.

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.

Para calcular el área bajo una función, calcule la iteración de la función para los valores entre los que se encuentra el área. para [0, pi / 2], use:

g (pi / 2) -g (0), donde g es la integral de su función f (x), en este caso -sin (x)

ver tabla de integrales

La computadora no puede realizar una integración continua, por lo que debe dividir el área completa en segmentos rectangulares y luego calcular el área de cada segmento y sumarlos. La eficiencia del resultado dependerá del número de segmento que tomará (más segmento dará un resultado más eficiente).