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

我试图实现一个函数来计算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 ++相当陌生,我能得到的任何帮助都非常感谢


你应该用一些值来评估函数,例如10:

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

输出:

the value for pi is 3.14109

在你的例子中, pi是一个接受参数的函数。 因此你必须添加括号和像这样的参数pi(50) 。 50只是一个使用任何你想要的例子。

链接地址: http://www.djcxy.com/p/70989.html

上一篇: Calculating Pi using the Taylor series C++

下一篇: Verilog code to compute cosx using Taylor series approximation