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

4 萊布尼茲級數

本章摘要

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

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

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

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

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

我們用兩種方法來驗證。

方法1:我們連續地加10 000項,看看和是多少,這個方法可以用for循環語句來實現。

代碼如下:

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

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

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

start——計數從start開始,默認是從0開始。

stop——計數到stop結束,但不包括stop。

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

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

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

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

代碼如下:

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

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

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

我們發現,一共要循環100萬次才達成目標。

總結:在明確知道要循環多少次的情況下,可以用for語句來構建循環;而不能預知要循環多少次的情況下,可以用while語句來構建循環。

練習

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

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

主站蜘蛛池模板: 磐安县| 页游| 白河县| 泰宁县| 诏安县| 洱源县| 铜梁县| 屏东县| 榕江县| 万年县| 清徐县| 鱼台县| 安西县| 平远县| 延安市| 湖口县| 新津县| 那坡县| 宕昌县| 江油市| 海宁市| 工布江达县| 新田县| 鹿邑县| 郎溪县| 阿拉善右旗| 阿拉善盟| 车险| 武隆县| 广元市| 大方县| 南京市| 白山市| 涟源市| 阿克苏市| 缙云县| 离岛区| 武陟县| 安陆市| 织金县| 曲沃县|