| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4576 人关注过本帖
标题:求定积分程序??
只看楼主 加入收藏
龙芯
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-12
收藏
 问题点数:0 回复次数:14 
求定积分程序??
我接触C语言没有多长时间,我是初中还没有毕业,不知道什么是定积分的概念.在网上也没有搜到满意的答案,请教各位什么是定积分??能否用指向函数的指针作函数参数来实现5个函数的定积分呢??谢谢
搜索更多相关主题的帖子: 积分 
2006-05-27 23:43
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
开个玩笑,怎么不叫“汉芯”?
谭先生第二版p.243-245详细介绍了“函数指针”请仔细领会。稍后,再给你发“定积分”程序。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-28 06:28
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 

定积分就是求函数曲线与x轴所曲成的图形的面积


2006-05-28 07:18
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
/*用函数指针概念求定积分(复化Simpson法)*/
#include<stdio.h>
#include<math.h>
double f1(double x)/*f1(x)是被积函数1*/
{
return 1/(1+x*x);
}
double f2(double x)/*f2(x)是被积函数2*/
{
return sin(x);
}
double Simp(double a,double b,double (*fun)())
/*形参b,a是积分的上下限,函数指针fun指向被积函数*/
{
#define NUM 100 //越大越精
double Simp=0,dx=(b-a)/NUM;
int i;
double x1=a,x2=a+dx;
for(i=0;i<NUM;i++,x1=x2,x2+=dx)
Simp+=(fun(x1)+4*fun((x1+x2)/2)+fun(x2))/6*dx;
return Simp;
}
main()
{
/*用复化辛卜生法分别计算下列定积分
1 π
∫1/(1+x^2)dx ∫sin(x)dx
0 0
*/
double Pi=3.1415926535898;
printf("第一个定积分≈%lf\n",Simp(0,1,f1));
printf("第二个定积分≈%lf\n",Simp(0,Pi,f2));
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-28 07:57
学好C
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-5-18
收藏
得分:0 

看来得把定积分知识重看一便了`
晕那


2006-05-28 09:08
学好C
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-5-18
收藏
得分:0 
4楼的程序我运行了一下 19个错误 晕死```

2006-05-28 09:16
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 
斑竹强啊!

奋斗改变一切!!
2006-05-28 09:19
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(学好C)4楼的程序我运行了一下 19个错误 晕死...
以下是引用学好C在2006-5-28 9:16:00的发言:
4楼的程序我运行了一下 19个错误 晕死```

请切屏下来,看看是怎样的19个error(s),否则视为诬蔑不实之词。
正常的运行结果应为
第一个定积分≈0.785398
第二个定积分≈2.000000

[此贴子已经被作者于2006-5-28 9:50:58编辑过]


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-28 09:48
空中鱼
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-5-14
收藏
得分:0 


∫1/(1+x^2)dx 程序为
0

main()
{int i,n;
float h,a,b,e,x,sum1,sum2,c,d,f;
a=0.0;b=1.0;
printf("input n:");//n为将区间分为多少份
scanf("%d",&n);
h=(b-a)/(6.0*n);
sum1=0;
for(i=2;i<2*n;)
{x=i/(2*n);
e=1+x*x;
sum1=sum1+e;
i=i+2;
}
d=sum1;
sum2=0;
for(i=3;i<2*n;)
{x=i/(2*n);
e=1+x*x;
sum2=sum2+e;
i=i+2;
}
f=sum2;
c=h*(1+a*a+4*d+2*f+1+b*b);

printf("%6.5f",c);
}

剩下的那个也类似

2006-05-28 20:42
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用空中鱼在2006-5-28 20:42:00的发言:


∫1/(1+x^2)dx 程序为
0

main()
{int i,n;
float h,a,b,e,x,sum1,sum2,c,d,f;
a=0.0;b=1.0;
printf("input n:");//n为将区间分为多少份
scanf("%d",&n);
h=(b-a)/(6.0*n);
sum1=0;
for(i=2;i<2*n;)
{x=i/(2*n);
e=1+x*x;
sum1=sum1+e;
i=i+2;
}
d=sum1;
sum2=0;
for(i=3;i<2*n;)
{x=i/(2*n);
e=1+x*x;
sum2=sum2+e;
i=i+2;
}
f=sum2;
c=h*(1+a*a+4*d+2*f+1+b*b);

printf("%6.5f",c);
}

楼主要求的函数指针在哪儿呢?空中鱼朋友!


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-29 03:08
快速回复:求定积分程序??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038072 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved