劉洋 王德貴
歐拉數(shù)極限值和斯坦納極值問(wèn)題,是數(shù)學(xué)史上著名的數(shù)論問(wèn)題,收錄在《100個(gè)著名初等數(shù)學(xué)問(wèn)題》的第12題和第89題,今天我們用Python來(lái)分析和求解。
函數(shù)
當(dāng)x無(wú)限增大時(shí)的極限值。今天我們只求解第一個(gè)函數(shù)的極限值。
根據(jù)題意,要先判斷函數(shù)
在x無(wú)限增大時(shí),是否有極限?如果有極限,是多少?
可以證明,函數(shù)在(0,+∞)上是增函數(shù),利用Excel圖表處理功能,做出在(0,500)上函數(shù)圖像如下圖,可以看到,在x無(wú)限增大時(shí),函數(shù)值在2.5-3之間,而且函數(shù)值變化很小。
根據(jù)題意,我們利用for循環(huán),讓x值逐漸增大,來(lái)分析y的極限值。
從前面的分析,寫出程序代碼。
運(yùn)行結(jié)果如下,大家可以看到,在(1,100)上,y的值逐漸增大,并在2.7左右。
那我們繼續(xù)增大取值范圍,(1,10000)、(1,1000000)、(1,100000000),最后發(fā)現(xiàn),y趨近一個(gè)值:2.718281828……
這里用到了數(shù)學(xué)中的冪函數(shù),在Python里函數(shù)pow(x,y)的意義為xy,也可以表示為x**y,大家使用時(shí)注意,用函數(shù)pow(x,y)時(shí),需要導(dǎo)入數(shù)學(xué)模塊math,而x**y則不用。
運(yùn)行結(jié)果如下:
我們求解是在10的8次方范圍內(nèi),10的10次方運(yùn)行超過(guò)了12個(gè)小時(shí)。從函數(shù)值的變化趨勢(shì),大家不難發(fā)現(xiàn),這個(gè)極限值就是無(wú)理數(shù):e。
其實(shí)函數(shù)
在(0,+∞)上的極限值,也是e的定義。
如果x為正變數(shù),x取何值時(shí),x的x次方根為最大?
即求函數(shù)
在(0,+∞)上的極值問(wèn)題。
這是一個(gè)與歐拉極限值相關(guān)的函數(shù)極值問(wèn)題,函數(shù)在(0,+∞)上,函數(shù)值是如何變化的呢?
我們利用Python的for循環(huán),進(jìn)行分析計(jì)算。
下面先測(cè)試一定范圍內(nèi)的變化情況,再具體分析。
運(yùn)行程序,輸出結(jié)果如下:
后面的函數(shù)值,越來(lái)越小了,說(shuō)明在x=3附近有極值。
在x=3附近有極值,那我們就分析在(2.0,4.0)上的單調(diào)性,為了保留一位小數(shù),采取除以10的方法。
運(yùn)行結(jié)果如下:
不難發(fā)現(xiàn),函數(shù)在x=2.7附近有極值,那么極值點(diǎn)一定在(2.60,2.80)上。
進(jìn)一步分析函數(shù)在(2.60,2.80)上的單調(diào)性,修改程序,直接求極大值,無(wú)須全部輸出。
運(yùn)行結(jié)果如下:
我們依次提高精度,求解極大值。
運(yùn)行結(jié)果如下:
從以上分析和精度的提高,我們發(fā)現(xiàn),x的值趨近一個(gè)特殊值,即x=e時(shí),
的值最大。
e,作為數(shù)學(xué)常數(shù),是自然對(duì)數(shù)函數(shù)的底數(shù)。有時(shí)稱它為歐拉數(shù)(Euler number),以瑞士數(shù)學(xué)家歐拉命名;也有個(gè)較鮮見(jiàn)的名字納皮爾常數(shù),以紀(jì)念蘇格蘭數(shù)學(xué)家約翰·納皮爾(JohnNapier)引進(jìn)對(duì)數(shù)。它和圓周率π一樣,都是無(wú)理數(shù),是數(shù)學(xué)中最重要的常數(shù)之一。
將一個(gè)數(shù)分成若干等份,要使各等份乘積最大,怎么分?
答案是:使等分的各份盡可能接近e值。例如,把10分成10÷e≈3.7份,但3.7份不是整數(shù),四舍五入,所以分成4份,每份為10÷4=2.5,這時(shí)2.5**4=39.0625乘積最大,如分成3或5份,乘積都小于39。參見(jiàn)運(yùn)行結(jié)果。
運(yùn)行結(jié)果如下,我們發(fā)現(xiàn)4等份時(shí)乘積最大:
那我們編程直接輸出最大項(xiàng)及前后各項(xiàng),那么為什么除以e呢?
輸入整數(shù)、小數(shù),是否都可以呢?若是只計(jì)算最大值及其前后的兩個(gè)值,或是只求乘積的最大值,如何編程呢?有興趣的同學(xué)可以去做一下,這里不再贅述。
兩個(gè)問(wèn)題的結(jié)論事先作者也不知道,因而整個(gè)求解過(guò)程,就是我分析、研究的過(guò)程,循序漸進(jìn),最后得出結(jié)論。也希望這個(gè)分析處理問(wèn)題的思路給學(xué)生一個(gè)啟發(fā):掌握分析方法非常重要。
今天我們認(rèn)識(shí)了e,它是我們數(shù)學(xué)上很重要的常數(shù)。有關(guān)e的相關(guān)知識(shí),大家可自行查閱相關(guān)資料。本文希望大家在學(xué)習(xí)Python過(guò)程中,了解更多的數(shù)學(xué)史,學(xué)習(xí)更多的數(shù)學(xué)知識(shí)。