b2b網(wǎng)站怎么建設(shè)免費(fèi)做網(wǎng)站怎么做網(wǎng)站
目錄
一、庫(kù)函數(shù)計(jì)算 π
二、近似值計(jì)算 π
三、無(wú)窮級(jí)數(shù)計(jì)算 π
四、割圓術(shù)計(jì)算 π
五、蒙特卡羅法計(jì)算 π
六、計(jì)算800位精確值
從2020年開(kāi)始,每年的3月14日又被定?為國(guó)際數(shù)學(xué)日?,是2019年11月26日?聯(lián)合國(guó)教科文組織?第四十屆大會(huì)上正式宣布的。巧合的是這一天既是愛(ài)因斯坦的生日,又是霍金的忌日,兩位物理界的巨擘一個(gè)出生于(1879)另一個(gè)離世于(2018)這個(gè)日子。
以前,3月14日還是一年一度的慶祝常數(shù)π的節(jié)日,由圓周率最常用的近似值3.14而來(lái),稱為圓周率日(π Day)。
圓周率(π)是圓的周長(zhǎng)與直徑的比值,一般用希臘字母π表示,是一個(gè)在數(shù)學(xué)及物理學(xué)中普遍存在的數(shù)學(xué)常數(shù)。π也等于圓形之面積與半徑平方之比,是精確計(jì)算圓周長(zhǎng)、圓面積、球體積等幾何形狀的關(guān)鍵值。
公元263年,中國(guó)數(shù)學(xué)家劉徽用“割圓術(shù)”計(jì)算圓周率,他先從圓內(nèi)接正六邊形,逐次分割一直算到圓內(nèi)接正192邊形,給出π=3.141024的圓周率近似值。他說(shuō):“割之彌細(xì),所失彌少,割之又割,以至于不可割,則與圓周合體而無(wú)所失矣?!边@包含了求極限的思想。
公元480年左右,南北朝時(shí)期的數(shù)學(xué)家祖沖之進(jìn)一步得出精確到小數(shù)點(diǎn)后7位的結(jié)果,給出不足近似值3.1415926和過(guò)剩近似值3.1415927,還得到兩個(gè)近似分?jǐn)?shù)值,密率355/113和約率22/7。密率是個(gè)很好的分?jǐn)?shù)近似值,要取到才能得出比略準(zhǔn)確的近似。在之后的800年里祖沖之計(jì)算出的π值都是最準(zhǔn)確的。
計(jì)算機(jī)的出現(xiàn)使π值計(jì)算有了突飛猛進(jìn)的發(fā)展。經(jīng)吉尼斯世界紀(jì)錄認(rèn)證,目前π的最準(zhǔn)確值,超過(guò)小數(shù)點(diǎn)后62,831,853,071,796位。
今天來(lái)用python代碼來(lái)算算圓周率?π,也算比較應(yīng)景的。方法有很多,列舉幾個(gè)如下:
一、庫(kù)函數(shù)計(jì)算 π
>>> import math
>>> math.pi
3.141592653589793
>>> math.acos(-1)
3.141592653589793
>>> math.atan(1)*4
3.141592653589793
>>> math.atan2(2,2)*2*2
3.141592653589793
二、近似值計(jì)算 π
>>> print(22/7)
3.142857142857143
>>> print(355/113)
3.1415929203539825
>>> print(102573/32650)
3.141592649310873
>>> import math
>>> print(16*math.atan(1/5)-4*math.atan(1/239))
3.1415926535897936
>>> print(32*math.atan(1/10)-4*math.atan(1758719/147153121))
3.1415926535897936
>>> math.pi #比對(duì)
3.141592653589793
三、無(wú)窮級(jí)數(shù)計(jì)算 π
π/4 = 1?- 1/3?+ 1/5?- 1/7?+ 1/9?- 1/11?+ 1/13?- 1/15?...
pi=0
for i in range(1,10000000):pi+=0.5/(i**2-i+0.1875)print(pi)'''
3.1415926035880934
>>>
'''
π = 3 + 4/(2*3*4) - 4/(4*5*6) + 4/(6*7*8) - 4/(8*9*10) + 4/(10*11*12) - 4/(12*13*14) ...
pi=3
for i in range(2,10000000,4):pi+=4/(i*(i+1)*(i+2))-4/((i+2)*(i+3)*(i+4))print(pi)'''
3.1415926535895253
>>>
'''
from math import sqrt
pi=0
for i in range(1,10000000,2):pi+=1/(i*i)print(sqrt(8*pi))'''
3.141592589927253
>>>
'''
from math import sqrt
pi=0
for i in range(1,10000000):pi+=1/(i**4)print(sqrt(sqrt(90*pi)))'''
3.141592653589592
>>>
'''
印度天才數(shù)學(xué)家拉馬努金1914年發(fā)表了一個(gè)圓周率計(jì)算公式,每計(jì)算一項(xiàng)可以得到8位的十進(jìn)制精度;以上公式由Jonathan Borwein和Peter Borwein兄弟倆在1987年用基于橢圓積分變換的理論給出證明并改良過(guò)后的公式。
from math import sqrt
from math import factorialfor j in range(1,6):pi=0for i in range(j):pi+= (26390*i+1103)*factorial(4*i)/(factorial(i)**4)/(396**(4*i))print("%.20f"%(1/(2*sqrt(2)*pi/9801)))'''
3.14159273001330552333
3.14159265358979400418
3.14159265358979311600
3.14159265358979311600
3.14159265358979311600
>>>
'''
以上代碼算到第三項(xiàng)就到精度極限了,應(yīng)該是python本身精度不夠引起的。
四、割圓術(shù)計(jì)算 π
割圓術(shù):古代(魏晉)數(shù)學(xué)家劉徽 公元263年《九章算術(shù)注》記載,現(xiàn)代數(shù)學(xué)用三角函數(shù)來(lái)表示分割的三角形面積,如下切割3億份就能得到15位精度
>>> from math import sin
>>> sin(2*math.pi/300000000)*300000000/2
3.141592653589793
五、蒙特卡羅法計(jì)算 π
方法:單位圓外接一個(gè)正方形,然后向其中隨機(jī)撒點(diǎn),通過(guò)計(jì)算落在圓內(nèi)的點(diǎn)數(shù)與總點(diǎn)數(shù)之比計(jì)算圓周率。以圓心為原點(diǎn)坐標(biāo),計(jì)算點(diǎn)與原點(diǎn)的距離,距離不于1的有效點(diǎn)數(shù) hits 增一。
from random import randomDots = 2000000for j in range(5):hits = 0for i in range(Dots):x,y = random(),random()dist = (x**2+y**2)**0.5if dist <= 1.0:hits+=1pi = 4 * (hits/Dots)print(pi)
?每次計(jì)算距離有三次 ** 運(yùn)算,所以速度有點(diǎn)慢;精度也不高,200萬(wàn)個(gè)點(diǎn)能得出 3.14 兩位精度。
六、計(jì)算800位精確值
a,c=10000,2800
b=e=0
f=[0]*2801
while b!=c:f[b]=a//5b+=1
while c!=0:d=0g=c*2b=cwhile 1:d+=f[b]*ag-=1f[b]=d%gd//=gg-=1b-=1if b!=0:d*=belse:breakc-=14print('%.4d'%(e+d//a),end='')e=d%a
?這段代碼比較神奇的,以前我寫(xiě)過(guò)關(guān)于此的文章,請(qǐng)見(jiàn):http://t.csdn.cn/5oEAA
回過(guò)來(lái),作為一名數(shù)學(xué)愛(ài)好者,再次慶祝一下這個(gè)數(shù)學(xué)節(jié)日,也算符合教科文組織確立本紀(jì)念日的目的:“為慶祝數(shù)學(xué)在生活中的美麗和重要性”。最后,讓我們來(lái)共同欣賞一下 π 的獨(dú)特魅力:
萊布尼茨級(jí)數(shù)?
?平方數(shù)倒數(shù)之和無(wú)窮級(jí)數(shù)
歐拉恒等式——5個(gè)常量構(gòu)成“最美公式”,有理數(shù)無(wú)理數(shù)實(shí)數(shù)虛數(shù)融匯一體
雙曲幾何三角形面積公式
高斯-博內(nèi)定理
等周不等式?
拉馬努金“最丑”的數(shù)學(xué)公式
愛(ài)因斯坦廣義相對(duì)論的核心方程:愛(ài)因斯坦場(chǎng)方程
海森堡不確定性原理是量子力學(xué)的一個(gè)重要原理?
霍金黑洞溫度公式,除了有pi還包含了牛頓的萬(wàn)有引力常數(shù)(G)、普朗克常數(shù)(h)、光速(c)、以及玻爾茲曼常數(shù)(k)