python练习题三——圆周率的计算

前言

大家好 好久没有更新郭csdn了,今天做了一道python练习题分享给大家。对于圆周率pi大家肯定是再熟悉不过了,并且大家都知道他约等于3.1415926,但是如何计算圆周率大家可能还不太熟悉,今天我分享一个用泰勒公式计算圆周率的办法。

正文

泰勒公式是我们大学高等数学中非常重要的一项内容,包括以后大家如果参加研究生数学考试的话没用泰勒公式计算极限有时是一个非常有效的方法。常用的泰勒公式如下图:
在这里插入图片描述
本文采用arcsinx的泰勒公式对圆周率进行计算,具体的代码如下:

import matplotlib.pyplot as plt
import math
#求解n的阶乘
def f(n):
    s1=1
    s=1
    while s<(n+1):
        s1=s1*s
        s=s+1
    return s1
#设计arcsinx的泰勒公式
def g(x,n):
    S=0
    for i in range(n):
        S=S+f(2*i)/(pow(4,i)*(2*i+1)*pow(f(i),2))*pow(x,(2*i+1))
    return S
real=[]
sim=[]
for i in range(1,10):
    real.append(math.pi)
for i in range(1,10):
    sim.append(2*g(1,i*500))
print(sim)
plt.plot(real,color='green',linestyle='--',label='real')
plt.plot(sim,color='pink',linestyle='--',label='sim')
plt.legend(loc='upper right')
plt.show()

实验结果

本文首先用泰勒公式的前9项来计算圆周率,计算结果如下图:

在这里插入图片描述
可以看到通过前九项计算的圆周率还是存在较大误差的。为了提高精度,本文分别用泰勒公式的前500 ,1000,1500,2000,2500,3000,3500项来计算圆周率:
在这里插入图片描述
可以看出结果有了明显的提升(注意:虽然和图一形状相似,注意数座标轴的不同)

结语

通过泰勒公式计算圆周率,采用的项数越多,计算速度也就越慢(到10000项的时候速度就比较慢了),当然通过泰勒公式也可以计算其他特殊的数字 ,例如e,今天的分享就到这里了,大家再见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值