谷歌刚刚给我送来了一个循环木马。我的指示是:
可以使用以下级数计算pi的近似值: pi =4*1- 1/3 + 1/5 - 1/7 + 1/9…+(- 1) ^n/(2n+1) 编写一个C++程序来使用本系列计算pi的近似值。程序采用输入n,它确定π值近似中的项数,并输出逼近项。包括一个循环,允许用户对新值n重复计算,直到用户说她或他想结束程序。
我从来没有学过微积分,所以这在我的脑海中,我不知道如何完成我的要求。
#include<iostream>
#include<iomanip>
#include<cmath>
#include<math.h>
using namespace std;
int main()
{
//declare variables
double sum, pi;
int n;
//prompt user
cout << "How many decimals would you like to calculate pi to? ";
cin >> n;
//calculate pi
//print response
cout << fixed << setprecision (n) << pi << endl;
return 0;
}数学和数学是努力使我得到的东西正常工作的结果,它解决了我的一些错误,但我知道我真的需要做更多的工作。我想我需要循环,因为这是我在课堂上的位置,但我不知道该循环什么。我应该如何实现这个系列?
我知道你们都不愿意做作业谢谢!
发布于 2015-09-19 20:13:10
有人已经为你做了微积分,给出了这个级数的总和。您需要一个函数,如下所示:
double pi(int n) {
double sum = 0.0;
int sign = 1;
for (int i = 0; i < n; ++i) {
sum += sign/(2.0*i+1.0);
sign *= -1;
}
return 4.0*sum;
}泰勒级数不是很精确:10,000个项,近似为3.1414926535900345。一百万项,近似为3.1415916535897743。一亿项,近似为3.141592643589326。
不是很好。
发布于 2015-09-19 20:13:41
通过计算((-1)^n)/(2n + 1)来计算泰勒级数的第n项。要计算到第n项,你应该从0循环到n,把最后的结果加到每个循环末尾的π的当前近似上。
发布于 2015-09-19 20:15:20
级数的思想是,n越大,数值越精确。因此,如果您只是简单地编写这段代码并运行n=2,那么它将是完全错误的。可以是递归的,也可以是简单的。我给它简单的方式
double partialSeries = 0d;
for (i = 0; i < n; i++) // you give the value to n
if (i % 2 == 0)
partialSeries += 1/(2.0 * i + 1);
else
partialSeries -= 1/(2.0 * i + 1);
double series = 4 * partialSeries;https://stackoverflow.com/questions/32672693
复制相似问题