使用泰勒级数 C++ 计算 Pi
Calculating Pi using the Taylor series C++
我正在尝试实现一个使用泰勒级数计算圆周率的函数,这是我的代码
#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 的最新估计中的误差,则执行泰勒级数的代码将停止 运行 =11=]
我正在考虑通过使用类似的 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只是一个例子,随便你怎么用。
我正在尝试实现一个使用泰勒级数计算圆周率的函数,这是我的代码
#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 的最新估计中的误差,则执行泰勒级数的代码将停止 运行 =11=]
我正在考虑通过使用类似的 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只是一个例子,随便你怎么用。