h*(f(a)/2 + f(a+h) + ... +f(a+(n-1)h) + f(b))/2)。预先将f(a)/2 和f(b)/2加起来,其它数据即f(a+h) + ... f(a+(n-1)n)用橡姿如循环处理,然后将所有结果乘以h即可册羡。
#include<stdio.h>#include<math.h>
double f(double x)
{
return sqrt(4-x*x)
}
main()
{
double a,b,s1,s2,s,h,m=1E-6
int 迟消团n,i
printf("请输入桥迟积分下限a和积分上限b\n")
scanf("%lf%lf",&a,&b)
s2=0
n=10000
// do
{
s1=s2
n=2*n
h=(b-a)/n
i=1
s2=0
do
{
s=(f(a+i*h)+f(a+(i-1)*h))*h/2
s2=s2+s
i=i+1
}
while(i<码橘=n)
}
// while((fabs(s1-s2))>(m*(fabs(s2)-fabs(s1))))
printf("f(x)在[a,b]上的定积分为%.10lf",s2)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)