c语言用梯形法求积分

c语言用梯形法求积分,第1张

a区间起点,b积分区间中点, n是这个区间划分数。每一个划分的长度为h=(b-a)/n。每一个划分利用梯形算法来梁启求积分,即:上底+下底乘以高再除以2。第一个小梯形面积为 (f(a) + f(a+h))*h/2,第二个为 (f(a+h)+f(a+2h))*h/2,依次类推。将这些加和加起来有:

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12476845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存