首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用泰勒方法C++计算Pi

用泰勒方法C++计算Pi
EN

Stack Overflow用户
提问于 2015-09-19 20:07:08
回答 3查看 24.2K关注 0票数 0

谷歌刚刚给我送来了一个循环木马。我的指示是:

可以使用以下级数计算pi的近似值: pi =4*1- 1/3 + 1/5 - 1/7 + 1/9…+(- 1) ^n/(2n+1) 编写一个C++程序来使用本系列计算pi的近似值。程序采用输入n,它确定π值近似中的项数,并输出逼近项。包括一个循环,允许用户对新值n重复计算,直到用户说她或他想结束程序。

我从来没有学过微积分,所以这在我的脑海中,我不知道如何完成我的要求。

代码语言:javascript
运行
复制
#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;
}

数学和数学是努力使我得到的东西正常工作的结果,它解决了我的一些错误,但我知道我真的需要做更多的工作。我想我需要循环,因为这是我在课堂上的位置,但我不知道该循环什么。我应该如何实现这个系列?

我知道你们都不愿意做作业谢谢!

EN

回答 3

Stack Overflow用户

发布于 2015-09-19 20:13:10

有人已经为你做了微积分,给出了这个级数的总和。您需要一个函数,如下所示:

代码语言:javascript
运行
复制
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

不是很好。

票数 4
EN

Stack Overflow用户

发布于 2015-09-19 20:13:41

通过计算((-1)^n)/(2n + 1)来计算泰勒级数的第n项。要计算到第n项,你应该从0循环到n,把最后的结果加到每个循环末尾的π的当前近似上。

票数 0
EN

Stack Overflow用户

发布于 2015-09-19 20:15:20

级数的思想是,n越大,数值越精确。因此,如果您只是简单地编写这段代码并运行n=2,那么它将是完全错误的。可以是递归的,也可以是简单的。我给它简单的方式

代码语言:javascript
运行
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32672693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档