理學(xué)院,上海200237)1 引 言歐拉常數(shù)γ是在數(shù)學(xué)及物理領(lǐng)域十分重要的常數(shù),應(yīng)用也很廣泛[1],如計(jì)"/>
姚清照, 賀黎明
(華東理工大學(xué) >理學(xué)院,上海200237)
歐拉常數(shù)γ是在數(shù)學(xué)及物理領(lǐng)域十分重要的常數(shù),應(yīng)用也很廣泛[1],如計(jì)算黎曼ζ函數(shù)[2]、Somos二次遞歸常數(shù)[3],以及Ising鏈模型中的關(guān)聯(lián)長(zhǎng)度[4]等等.對(duì)歐拉常數(shù)的計(jì)算十分重要,然而要得到高精度的近似值,僅僅對(duì)歐拉常數(shù)的原始定義
進(jìn)行直接計(jì)算是比較困難的,這就需要有更高效的理論方法.有許多針對(duì)原定義數(shù)列Dn表達(dá)式進(jìn)行修正實(shí)現(xiàn)加速收斂的工作[5-7].Lu等人[7]使用了連分式修正(modification)的方法提高收斂速度,并給出明確的余項(xiàng)表達(dá)式.本文在此修正數(shù)列的基礎(chǔ)上,首次采用通用Levin變換的方法進(jìn)行二次加速收斂修正歐拉常數(shù)數(shù)列,數(shù)值計(jì)算表明由此可以得到更為高效、精確的計(jì)算結(jié)果.
用來(lái)定義歐拉常數(shù)的數(shù)列Dn收斂緩慢,收斂速度和n-1相當(dāng).Lu等人在Dn基礎(chǔ)上提出一種運(yùn)用連分式修正原定義后更快收斂到歐拉常數(shù)的數(shù)列
(1)
其中p,q是正整數(shù).可以證明,如果取p=1時(shí)有
非線性數(shù)列變換T是一種將已知部分和數(shù)列集合{[sm]},變換成一個(gè)有望更快收斂到原數(shù)列極限s的新數(shù)列集合{[s′m]}的運(yùn)算規(guī)則
T∶{[sm]}→{[s′m]},
其中sm表示原數(shù)列的1到m項(xiàng)之和,m是非負(fù)整數(shù).在實(shí)際計(jì)算中,只考慮對(duì)有限個(gè)元素構(gòu)成的序列
{sl,sl+1,…,sNm}
進(jìn)行變換.
Weniger對(duì)常用的加速收斂非線性數(shù)列變換方法做了很好的歸納和總結(jié).在眾多算法中,尤以Levin變換具有收斂速度快,計(jì)算效率高的突出優(yōu)點(diǎn).Levin變換假設(shè)數(shù)列部分和集合{[sm]}與它們的極限s滿足關(guān)系式
(2)
其中ωm是余項(xiàng)估計(jì),β為偏移常數(shù).將上式移項(xiàng)化簡(jiǎn)并用k階線性的差分算符Δk消去關(guān)于m的k-1階多項(xiàng)式,經(jīng)過(guò)整理就可以得到通用Levin變換
(3)
再用Sidi[9]的方法能得到簡(jiǎn)潔且適用于計(jì)算的通用Levin變換3項(xiàng)遞推公式:
(4)
本文采用Weniger的建議只考慮取β=1.
余項(xiàng)估計(jì)值對(duì)于Levin變換是至關(guān)重要的.基于不同的余項(xiàng)模型的Levin變換稱之為u變換、v變換等.對(duì)于有明確余項(xiàng)表達(dá)式的部分和序列,可采用(2)式的模型表達(dá)式,由此得到的變換式稱通用Levin變換.此余項(xiàng)表達(dá)式的近似程度越好,Levin變換的收斂速度越快,這是Levin變換的顯著優(yōu)點(diǎn).反之,Levin變換就不能很好地收斂,這同時(shí)也是它的顯著弱點(diǎn).
Dn的余項(xiàng)大致為n-1,所以歐拉常數(shù)的直接計(jì)算是非常困難的.Lu等人[7]給出了改進(jìn)的歐拉常數(shù)的系列表達(dá)式.(1)式中p越大,連分式的形式越復(fù)雜,其余項(xiàng)越小,收斂越快.如取p=3,可有
其余項(xiàng)為n-8,顯然比Dn收斂快得多.
表1 連分式修正前后數(shù)列收斂的數(shù)值結(jié)果比較
表2 通用Levin變換對(duì)連分式修正前后數(shù)列加速收斂的數(shù)值結(jié)果比較
為了更細(xì)致地研究這個(gè)問(wèn)題,利用計(jì)算機(jī)代數(shù)系統(tǒng)Maple把這里的所有結(jié)果重復(fù)進(jìn)行了計(jì)算,結(jié)果列于表3右側(cè).使用Maple的所有計(jì)算結(jié)果都采用有理分式的形式,所以就完全克服了舍入誤差的影響.與Fortran采用有限字長(zhǎng)的浮點(diǎn)計(jì)算結(jié)果形成鮮明對(duì)比的是,由Maple得到的Levin變換結(jié)果的精度呈現(xiàn)出不斷增加的趨勢(shì).
表3 通用Levin變換對(duì)加速收斂的Fortran和Maple計(jì)算結(jié)果比較
歐拉常數(shù)是一個(gè)具有重要應(yīng)用價(jià)值的數(shù)學(xué)常數(shù),有針對(duì)歐拉常數(shù)的專門算法研究,但是近幾十年一直沒(méi)有很好的進(jìn)展.本文在已有的歐拉常數(shù)修正算法基礎(chǔ)上再利用更具廣泛性的非線性變換算法進(jìn)行二次加速,極大的提高了計(jì)算效率.此外針對(duì)舍入誤差對(duì)非線性變換的負(fù)面影響,可以利用Maple的有理式計(jì)算功能予以克服.通過(guò)與Fortran的浮點(diǎn)運(yùn)算結(jié)果比較,克服了舍入誤差的Levin變換可以使歐拉常數(shù)的計(jì)算精度不斷增長(zhǎng)的趨勢(shì)保持不變.
致謝本文工作的主要結(jié)果是建立在Lu等人的對(duì)歐拉常數(shù)數(shù)列Dn連分式修正基礎(chǔ)之上,有關(guān)非線性變換的算法主要參閱了Weniger的綜述文章.在這里向這些作者一并表示感謝.