C语言实习用梯形法或辛普森法求解定积分的值

求一个函数f(x)在[a,b]上的定积分,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。为了近似求出此面积,可将[a,b]区间分成若干个小区... 求一个函数f(x)在[a,b]上的定积分,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。为了近似求出此面积,可将[a,b]区间分成若干个小区间,每个区间的宽度为(b-a)/n,n为区间个数。近似求出每个小的曲边梯形面积,然后将n个小面积加起来,就近似得到总的面积,即定积分的近似值。当n越大(即区间分的越小),近似成都越高。
算法分析:数值积分通常用的算法如下。
①梯形法:用小梯形代替小曲边梯形。
②辛普森法:在小区间范围内,用一条抛物线代替该区间的f(x),将(a,b)区间分成2n个小区间。
展开
 我来答
笃侠6A
推荐于2016-12-01 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3256万
展开全部
//梯形法求定积分
#include<stdio.h>
#include<math.h>
//定义被积函数
double func(double x){
return sin(x)*cos(x);
}

void main(){
double a,b,h,x,sum;
int i,n;
printf("Input a b and n: ");
scanf("%lf%lf%d",&a,&b,&n);
h=(b-a)/n;
x=a;
sum=(func(a)+func(b))/2;
for(i=1; i<n; i++){
x += h;
sum += func(x);
}
sum *= h;
printf("sum=%.4lf\n",sum);
}
追问
这就可以了是吗。
追答
这个函数要替换成你的被积函数。
double func(double x){
return sin(x)*cos(x);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式