C语言,用梯形法编程求定积分x^3+x⼀2+1的值

2025-03-03 07:41:41
推荐回答(1个)
回答1:

这个其实很简单,给你做了一个很简单的通用的积分函数,
已经做过优化,自己一调用就可以了,效率很高。

#include

double f(double x) //返回函数的值
{ double y;
y=x*x+x*2+1.0;
return y;
}

double Integrate(double (*f)(double),double a,double b,int n) //计算函数的定积分
{ double dx,y,sy,x;
if(n<=1)return 0.0;
dx=(b-a)/n;
x=a;
sy=0.0;
for(int i=0;i<=n;i++,x+=dx)
sy+=f(x);
sy-=f(a)/2.0;
sy-=f(b)/2.0;
return sy*dx;
}

void main()
{ double s;
s=Integrate(f, 1, 3, 100000);
printf("s=%lf\n",s);
}