原理:梯形法求积分
https://wuli.wiki/online/NumInt.html
c语言实现:
#include <stdio.h>
//定积分运算函数:integral
//参数1:被积函数 参数2:积分下限 参数3:积分上限 参数4:运算精度(数值越大精度越高)
//返回值:积分运算结果
float integral(float (*f)(float),float a,float b,int precision=1000){
float h = (b-a)/precision;
float result = 0;
for(float i = 0;i<b-a;i+=h){
result += (f(a+i)+f(a+i+h))/2;
}
return result*h;
}
//x^2+3x-29
float fun_1(float x){
return x*x+3*x-29;
}
int main(){
printf("函数x^2+3x-29在区间[2,44]的定积分是:%f\n",integral(fun_1,2.0f,44.0f,1000));
return 0;
}