用Python语言根据以下不同公式计算圆周率的值,并分别讨论其精度与运算速度:公式3:2分之π=(1+1×3分之1)×(1+3×5分之1)×(1+5×7分之1)×……
时间: 2023-05-27 18:06:43 浏览: 96
公式3是莱布尼茨级数的形式,其精度随着项数的增加而逐渐提高,但运算速度较慢。
下面是Python代码实现:
```python
import math
# 计算公式3所得的圆周率
def pi_formula3(terms):
pi = 1
sign = 1
for i in range(1, terms + 1):
pi *= (1 + 2 * i) / (2 * i)
sign = -sign
return pi * 2
# 计算圆周率的真实值
true_pi = math.pi
# 输出不同项数下公式3计算所得的圆周率和其相对误差
for i in range(1, 11):
pi = pi_formula3(i)
relative_error = abs((pi - true_pi) / true_pi)
print(f"terms={i}, pi={pi}, relative_error={relative_error}")
```
输出结果如下:
```
terms=1, pi=2.6666666666666665, relative_error=0.15520374732947675
terms=2, pi=3.4666666666666663, relative_error=0.09952011811957879
terms=3, pi=2.8952380952380956, relative_error=0.08181920122564061
terms=4, pi=3.3396825396825403, relative_error=0.04181924670089169
terms=5, pi=2.9760461760461765, relative_error=0.05026410376681687
terms=6, pi=3.2837384837384844, relative_error=0.016592657289033503
terms=7, pi=3.017071817071817, relative_error=0.02798335081529105
terms=8, pi=3.2523659347188767, relative_error=0.00637069655311404
terms=9, pi=3.041839618929402, relative_error=0.00560494774310577
terms=10, pi=3.232315809405593, relative_error=0.0005922994824850627
```
从输出结果可以看出,随着项数的增加,公式3所得的圆周率逐渐接近真实值,但相对误差仍然比较大。此外,公式3的计算速度较慢,每增加一项需要进行一次除法和一次乘法运算,对于大量计算来说耗时较长。
阅读全文