使用泰勒级数C ++计算Pi

时间:2017-04-30 02:19:27

标签: c++ function loops pi taylor-series

我试图使用泰勒系列实现一个计算pi的函数,这是我的代码

#include <iostream>
#include <math.h>
using namespace std;

double pi(int n)
{
double sum = 1.0;
int sign = -1;

for (int i = 1; i < n; i++)
{
    sum += sign / (2.0 * i + 1.0);
    sign = -sign;
}
return 4.0 * sum;
}


int main()
{
 cout << "the value for pi is" << pi ;
}

由于某些原因,我的代码一直返回1,但我不明白为什么

作为附注我想做到这样,如果系列的最新术语的绝对值小于pi的最新估计中的误差,则执行泰勒系列的代码将停止运行

我正在考虑通过使用类似的for循环来计算错误,并且在整个函数中执行do ... while循环,一旦满足此条件就停止pi的计算,但是我是不确定是否有更简单的方法来执行此操作或从何处开始。

我对这个论坛和c ++很新,我能得到的任何帮助都非常感谢

2 个答案:

答案 0 :(得分:1)

您应该使用某个值来评估函数,例如10:

cout << "the value for pi is " << pi(2000)<<endl;

输出:

the value for pi is 3.14109

答案 1 :(得分:0)

您的示例中的

pi是一个带参数的函数。因此,您必须添加括号和类似pi(50)的参数。 50只是你想要的一个例子。