定积分求解
- 矩形法将定积分化为多个函数连续的和。 基本思想是将区间[a,b] 进行n等分 当n越大的时候结果越准确。 图形化成一小块一小块的矩形。底边长都为(b - a) / n. 高为每个等分点的函数值。 然后将每个矩形的面积相加即为所求。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float integral(float(*func)(float), float a, float b, int n)
{
int i;
float x, h, s = 0;
h = (b - a) / n;
x = a;
for ( i = 0; i <n ; i++)
{
x = x + h;
s = s + (*func)(x) * h;
}
return s;
}
float fsin(float x)
{
return sin(x);
}
float fcos(float x)
{
return cos(x);
}
float fexp(float x)
{
return exp(x);
}
int main()
{
float a1, b1, a2, b2, a3, b3;
float (*pfunc)(float);
float sum;
int n = 20;
printf("Please enter a3,b3:\n");
scanf("%f%f", &a3, &b3);
pfunc = fexp;
sum = integral(pfunc, a3, b3, n);
printf("cosx的定积分为:%f\n", sum);
system("pause");
return 0;
}