官术网_书友最值得收藏!

4 萊布尼茲級數(shù)

本章摘要

數(shù)學知識:萊布尼茲級數(shù)的通項公式,無窮級數(shù)求和的公式表示法。

編程知識:for和while循環(huán)語句的特點,Python加、減、乘、除的寫法,賦值的方法,運算符的優(yōu)先級。

萊布尼茲(1646—1716)是德國哲學家、數(shù)學家、職業(yè)律師,歷史上少見的通才,被譽為17世紀的亞里士多德。在數(shù)學上,他和牛頓先后獨立發(fā)現(xiàn)了微積分,1684年,他首先公開發(fā)表了第一篇微分論文,定義了微分概念,采用了微分符號dx、dy;1686年,他又首先公開發(fā)表了積分論文,討論了微分與積分,使用了積分符號∫。這些數(shù)學符號今天我們?nèi)栽谑褂谩4送猓R布尼茲還發(fā)明并完善了二進制,這是今天計算機科學的數(shù)學基礎(chǔ)。在研究微積分的過程中他首先發(fā)現(xiàn)了一個非常簡潔的求圓周率的公式:

首先我們來認識一下這個通項公式:分母全是奇數(shù),可以用2n-1表示,從n=1開始取值,分子為1,每一項的符號則是正負符號交錯,第一項是正的,第二項為負,那么可以寫成(-1)n+1n=1時為正,上面這個公式也可以寫成如下形式:

其中,∑是一個求和符號,讀音是Sigma,符號底下的n=1表示從1開始,上面的∞表示一直加下去,直至無窮。用這個求和符號后面接通項公式,就表示了一個無窮級數(shù)的求和。注意,我們在學習有理數(shù)的性質(zhì)時,有“兩個有理數(shù)的和仍是有理數(shù)”的結(jié)論,這個級數(shù)反映了這樣一個事實,即無窮多個有理數(shù)的和可以是無理數(shù)。下面我們寫一個Python程序來驗證上面這個公式是否正確。

我們用兩種方法來驗證。

方法1:我們連續(xù)地加10 000項,看看和是多少,這個方法可以用for循環(huán)語句來實現(xiàn)。

代碼如下:

我們初始定義了兩個變量sum為0,sign為-1,sum是為了存放累加的和,sign就是為了計算(-1)n+1,初始為-1,以后每次再乘以一個-1,就計算出了這個(-1)n+1的值。代碼中我們也看到乘法用“*”來表示,除法用“/”來表示,為了讓2*n-1作為一個整體來計算,我們用“()”把它括起來。

程序中用了一個for來控制循環(huán)多少次,句型為“for(控制變量)in(有序序列):”,這里面包括冒號“:”在內(nèi)一共5個元素,一個都不能少;Python中range()函數(shù)可以創(chuàng)建一個整數(shù)列表,一般用在for循環(huán)中。

range(start,stop[,step])的參數(shù)說明:

start——計數(shù)從start開始,默認是從0開始。

stop——計數(shù)到stop結(jié)束,但不包括stop。

step——步長,默認為1,如果為1,這個參數(shù)可以不填。

range(1,10)實際上將生成[1,2,3,4,5,6,7,8,9]這個列表,n就依次從1一直變到9,每次增加1。程序中range(1,10001),所以程序中就從1開始一直循環(huán)變到10000結(jié)束。

程序中我們用sum+=sign/(2*n-1)實現(xiàn)累加,sum+=是sum=sum+…的一種簡寫法,這句話表示循序累加。這個程序累計執(zhí)行10000次后,結(jié)果確實與π很接近了。

假如我們已知π=3.141 592 6,希望驗證這個公式要加到n為多少時才能與已知的π之間的誤差小于0.000 01,可以用while這種循環(huán)語句的方式來驗證,while循環(huán)語句的句法為“while(循環(huán)繼續(xù)的條件):”,包含3個元素。

代碼如下:

這次我們用到了while這種循環(huán)方法,這個程序中有兩個新的知識點。

(1)我們用import導入了math這個模塊,并且在程序中用math.pi來引用這個模塊中定義的π常數(shù),大家可以在Python的Console中嘗試一下,它的值是3.141 592 653 589 793。

(2)我們調(diào)用了Python中內(nèi)置的函數(shù)abs(),這個函數(shù)就是求絕對值,程序中判斷是否繼續(xù)循環(huán)的條件就是判斷我們求出來的級數(shù)和的4倍與π的差是否比0.000 001更小,如果還沒有就繼續(xù)求和,直到滿足要求。

我們發(fā)現(xiàn),一共要循環(huán)100萬次才達成目標。

總結(jié):在明確知道要循環(huán)多少次的情況下,可以用for語句來構(gòu)建循環(huán);而不能預知要循環(huán)多少次的情況下,可以用while語句來構(gòu)建循環(huán)。

練習

1.用for循環(huán)編程求1+2+3+…+2020的和。可以首先講解等差數(shù)列的求和方法,再編程驗證。

2.分別用for循環(huán)語句和while循環(huán)語句編程求1+3+5+7+…+2021的和,注意在講解時,要小朋友們先找到通項公式,然后用通項公式求出應該循環(huán)多少次。

主站蜘蛛池模板: 鱼台县| 西盟| 麻江县| 长顺县| 望谟县| 瓦房店市| 贡觉县| 江口县| 油尖旺区| 宜都市| 崇文区| 弋阳县| 留坝县| 时尚| 西藏| 开封县| 克拉玛依市| 谷城县| 桑植县| 巴彦淖尔市| 建瓯市| 德兴市| 福鼎市| 农安县| 海原县| 新密市| 蚌埠市| 永吉县| 西贡区| 永仁县| 万盛区| 睢宁县| 红桥区| 黔江区| 大荔县| 金华市| 灵台县| 兴宁市| 道真| 沅陵县| 康保县|