2011-03-02 42 views
0

我会感到有点帮助。我需要在正交规则中创建简单的应用计数定积分,它在运行时作为参数给出。我开始添加参数,但是当我使用括号时,编译器不会编译我的应用程序。然后我开始陷入困境,如何将参数传递为某些计算部分的一个组成部分?C - 定积分正交规则

感谢

编辑:

int x; 
int i; 
float sum=0; 
double PI; 

printf("Please enter the parts to divide the interval: "); 
scanf("%d", &x); 

for (i=1; i<x; i+=2){ 
    if (i%4==1) 
     sum=sum+1./(double)i; 
    else 
     sum=sum-1./(double)i; 
} 
PI= 4*sum; 
printf("The sum is %f\n", sum); 
printf("Approximate value of PI is %f\n", PI); 
+6

向我们展示你尝试过什么。 – Muggen 2011-03-02 16:19:37

+0

编辑,我需要找出如何近似积分的某些输入 – Waypoint 2011-03-02 16:28:44

+1

尝试使用'(float)'而不是'(double)'。或者将'sum'声明为'double'。 – 2011-03-02 16:29:41

回答

1

很难知道你问这里。

你试图做不同的订单做高斯或一些其他类型的正交计划?

你是否遇到了问题,弄清楚如何传递函数指针以通过数值积分函数进行评估?

当你说你有一个编译器错误时,它表明你甚至没有得到可以判断你的实现是否工作的点。你怎么知道C?您应该阅读并消化错误消息并返回到语言参考,以查看出错位置,直到所有编译器错误消失。

一旦你达到那个目标,乐趣就会开始:现在你必须担心你的代码是否真的有效。

更新:我没有在您发布的代码中看到任何正交。看起来像一个简单的欧拉或辛普森的规则。

我建议像 “数字食谱”:

http://eiffel.ps.uci.edu/cyu/p231C/LectureNotes/lecture10:integration/lecture10.pdf

+0

我把这个简单的代码放在这里,我要求的是如何在C中概括应用程序的帮助,这个应用程序将近似给定函数的参数,并依赖于我选择的区间数,它会有一些准确性。我寻求一些通用的代码,一般来说如何近似积分,因为对我来说,现在是大阻碍。像PI一样,我会得到更好更好的结果,限制为3,14159265 ... – Waypoint 2011-03-02 16:38:36

+0

请阅读我发布的参考文献。它可以完成,但不像你写的那样。 – duffymo 2011-03-02 16:55:45

+0

谢谢你的链接,它的耻辱,没有正交(或矩形)的方法,我知道它不是最好的......但我会看得更远。 – Waypoint 2011-03-02 17:01:01