用泰勒方法计算圆周率
Calculating Pi with Taylor Method C++
谷歌刚刚给我安排了一轮循环。我的指示是:
圆周率的近似值可以用下面给出的级数来计算:
π= 4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 ... + ((- 1) ^ n)/(2 n + 1)]
用这个级数写一个c++程序来计算圆周率的近似值。程序的输入n决定了pi值近似值的项数,并输出近似值。包括一个循环,允许用户对新值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;
}
的cmath和math.h是剩余的尝试,使我得到的工作正常,它解决了我的一些错误,但我知道我真的需要做更多。我假设我需要循环,因为这是我在课堂上的位置,但我不知道该循环什么。我应该如何实现这个系列?
我知道你们都不喜欢家庭作业辅导,所以如果你能给我指出正确的方向,我会尽力的。谢谢!
已经有人通过给出级数和为你做了微积分。你需要一个函数;像这样:
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
。1亿项,近似是3.141592643589326
。
计算泰勒级数的第n项是通过计算((-1)^n)/(2n + 1)
来完成的。要计算到第n项,您应该从0循环到n,在每个循环结束时将最终结果与当前的pi近似值相加。
级数的思想是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;
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 用C++计算圆周率;我在哪里搞砸了
- 在C++OpenMP中使用蒙特卡罗方法以两种方式计算圆周率
- 用泰勒方法计算圆周率
- 用C++计算圆周率
- 用Chudnovsky算法计算圆周率
- 用泰勒方法和循环计算圆周率
- 计算圆周率的数字