朱德凱,蘇岐芳
(臺州學(xué)院 電子與信息工程學(xué)院,浙江 臨海 317000)
自然常數(shù)e是繼π后人類發(fā)現(xiàn)的又一個超越數(shù),其最初的定義源自金融領(lǐng)域以及計算機領(lǐng)域?qū)蓚€問題的解決[1],后來在自然科學(xué)、工程技術(shù)等領(lǐng)域中的許多問題也運用到e的近似值,如力學(xué)歐拉公式、衰變定律[2]、牛頓冷卻定律[3]等。自然常數(shù)e在不同領(lǐng)域有著廣泛的應(yīng)用,對其進行正確、快速的估計是非常重要的。
各高校的“數(shù)學(xué)分析”教材里均給出了自然常數(shù)e的原始定義[4]:
采用式(1)的計算方法,考慮其誤差
從式(2)中可以看出,該算法收斂速度較慢,因此引入其他計算方法非常有必要。下面列舉幾種現(xiàn)有的計算方法[4-8]:
其中,式(3)的算法利用了Taylor展開式,式(5)的算法利用了積分上限,兩種算法分別對自然常數(shù)e進行了估計。但文獻[4-8]中并未解決對式(4)、式(5)算法的誤差估計以及對式(6)算法的證明,本文將對此進一步進行理論和實驗分析。
由“拉格朗日余項”可知,式(3)算法的誤差為
將式(7)與式(2)的比值取極限,易得
從而說明式(3)算法的收斂速度比式(1)算法的收斂速度快。
由于式(5)算法和n沒有關(guān)系,但能夠初步確定2<e<3,由“閉區(qū)間套定理”受到啟發(fā),構(gòu)造一個閉區(qū)間套{[an,bn]},其中a1=2,b1=3,接著每次取中點m,并查看兩式
觀察哪一個更接近于1,就選擇其上限和m構(gòu)成一個新的閉區(qū)間,反復(fù)操作便可得到{[an,bn]}。由于迭代初始端點值為有理數(shù),所以經(jīng)過有限次迭代后得到的閉區(qū)間端點值也均為有理數(shù),并且有:
上述算法的收斂速度即為二分法的收斂速度[9],誤差為
將式(13)與式(2)的比值取極限,易得
將式(7)與式(13)的比值取極限,易得
從而說明式(5)算法的收斂速度比式(1)算法的收斂速度快,比式(3)算法的收斂速度慢。
首先,證明式(6)算法的合理性。
再利用兩次stolz公式得到其極限值:
于是可得
即式(6)算法得證。
接著,得出式(6)算法的誤差為:
不難看出,式(6)算法是比較繁瑣的,難以找到其誤差的等價量,但是能夠定性分析其收斂速度一定不快,后續(xù)將繼續(xù)進行實驗分析。
由式(8)、式(12)、式(14)、式(15),已經(jīng)得出式(4)算法、式(1)算法、式(5)算法、式(3)算法的收斂速度是依次遞增的,而式(6)算法的收斂速度待確定。為此利用MATLAB程序來更直觀地展示上述5種算法的收斂速度和誤差情況。
由于不同算法迭代所需要的時間大不相同,考慮到計算機計算的時間,在此先將誤差限設(shè)置為10-1,采用MATLAB代碼編程得到5種算法收斂情況的對比,如圖1所示。
圖1 5種算法收斂情況對比圖
通過觀察圖1中極限值曲線的增長情況以及誤差曲線的遞減情況,能夠確定式(6)算法的收斂速度<式(4)算法的收斂速度<式(1)算法的收斂速度,并且均比式(3)算法和式(5)算法的收斂速度慢。再將誤差限設(shè)置為10-5,單獨比較式(3)算法和式(5)算法的收斂速度,采用MATLAB代碼編程得到這兩種算法收斂情況的對比,如圖2所示。
圖2 兩種算法收斂情況對比圖
從圖2可以看出,式(5)算法的收斂速度小于式(3)算法的收斂速度。綜上所述,實驗所得結(jié)果與前面的理論分析結(jié)果是一致的。
經(jīng)過理論分析與實驗計算,得出式(3)算法的收斂速度是最快的,但是通過觀察發(fā)現(xiàn)其有兩個缺點:①該算法涉及到“階乘”,它會大大地增加計算機運行的時間。②該算法需要利用“循環(huán)語句”進行不斷地迭代,其中每次迭代都是在后面加上一項,隨著n的增大,會迅速減小,這會導(dǎo)致在進行精細運算時產(chǎn)生較大的誤差。
為了避免以上兩個缺點,需進一步優(yōu)化改進算法,在此給出如下算法[4]:
設(shè)有a1=1,an=n(an-1+1),n=2,3,…,于是
現(xiàn)給出式(17)算法的證明如下:
考慮到算法的實用性,將計算誤差控制在小數(shù)點后15位,在此給出式(17)算法的MATLAB編程代碼如下:
通過上述代碼對e進行估計,得到:e=2.71828128245904……。若將誤差限設(shè)置為小數(shù)點后15位,式(3)算法所需運行時長為0.001954 s,而式(17)算法所需運行的時長僅為0.000788 s,說明式(17)算法最優(yōu)。
本文通過對自然常數(shù)e的5種算法進行理論和實驗分析,并經(jīng)過改進與優(yōu)化后,得到的新算法有效地避免了原有算法中存在的問題,同時節(jié)約了計算機運行的時間,提高了使用效率。