首页
社区
课程
招聘
[求助]用C语言求定积分问题
发表于: 2008-1-17 19:28 6708

[求助]用C语言求定积分问题

2008-1-17 19:28
6708
在网上看到份用用C语言求定积分的代码:

#include "math.h"
double f(double x) /*定义被积函数*/
{
    return x*x+3*x+2;
}

double integrate(double a,double b) /*定义积分公式函数*/
{
      double t,h;
      int i,n=100;
       t=0.5*(f(a)+f(b));
       h=fabs(a-b)/n;
       for(i=1;i<n;i++)
       t+=f(a+i*h);
       t=t*h;
       return t;
}

void main() /*定义主函数*/
{
   printf("\n%f\n",integrate(0,2));
}

对于这句  t=0.5*(f(a)+f(b));  我不理解,觉得应该是 t=0 啊
还有 for(i=1;i<n;i++) 我感觉应该是for(i=1;i<=n;i++)
不过经过实验,我的感觉貌似都是错的
所谓求定积分,无非就是求曲边梯形的面积,分割成N个矩形,加在一起就是答案了
我高等数学没学好........望高手指教...

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
n
∑  (f(a+(i-1)*h)+f(a+i*h))/2 * h
i=1

高度用的是小区间两端的平均值
2008-1-17 20:15
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
3
还有什么你不会的么
2008-1-17 20:49
0
雪    币: 232
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
高度好象可以取小区间里的任何值吧...
能解释那份代码所使用的方法吗??
2008-1-17 21:01
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
你把我写那个展开合并一下应该就是你们程序的样子了
只有两端的f(a)和f(b)是各自一个0.5的系数
其余项的都有两个,合并起来系数是0.5+0.5=1了
2008-1-17 21:14
0
雪    币: 232
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
原来是这样啊......
THX A LOT...
2008-1-17 21:37
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
巡警就是厉害,什么都懂
2008-1-19 22:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习....
2008-1-19 23:42
0
游客
登录 | 注册 方可回帖
返回
//