找出莱布尼茨公式中近似π到n个有效数字所需的项数

  • 本文关键字:有效数字 布尼茨 python loops pi
  • 更新时间 :
  • 英文 :


我必须找到用莱布尼茨级数求和来近似π到n个有效数字所需的项数。我已经找到了和和的近似值,但是我不知道如何开始写出比较两个变量中sigfigs的函数,甚至不知道如何确定给定数中sigfigs的个数。如有任何帮助,我将不胜感激。

sum = 0
for i in range(800001):
    int = ((-1)**i) / (2*i+1)
    sum += int 
print(sum) 
pi = sum*4

打印(pi)

因子(-1)**i表示级数中的项具有交替的符号。而且,这些项的大小是单调递减的。这种级数的一个特性是,截断该级数所产生的误差小于所包含的最小项。

由于这个问题的上下文,我怀疑你实际上对知道如何检查最低有效数字不感兴趣,而是想知道什么时候你的近似值'足够好'。

当通过计算序列的和来逼近任何值时,终止计算的最简单方法是改进答案,直到它足够接近,使其平方(或绝对值)与上一项的差小于预定的容差。

这样做的一个好方法是检查,而不是使用for循环,使用while循环来检查答案是否与前面提到的答案不同。

最新更新