高效估計開方和e
上一篇估計開方的文章裡,介紹了一種簡便的方法去估計
的值,當然評論裡有大牛也提到牛頓迭代或許更高效。 牛頓迭代、弦割法等等最初都是為了
計算非線性方程零點
產生的,可以設計一個以
為零點的函式,在收斂域內作幾次迭代,就可以得到相當精確的結果。 事實上,前一篇文章裡的方法也有背景,就是連分數,計算的階越高,相當於連分數的階數越高,下面這個式子便可以解釋這一點:
本文,就以牛頓迭代為背景,介紹一種方法來估計
和
。 (值得注意的是,估值的結果往往是一個體積龐大的分數,但是事實上,
根據丟番圖逼近理論,在之前估計 #FormatImgID_6# 的文章中出現的結果均為同體積分數中的最佳值,意即估計值與 #FormatImgID_7# 之間不存在分母更小的既約分數
)
首先考慮
的左側。
構造數列滿足
,易知
。
不妨取
,則有
,
第三項即有
位準確數字。再考慮
的右側。
構造數列滿足
,易知
。
不妨取
,則有
,
此結果具有
位準確數字。
這種方法雖然看起來高效的一比,但事實上,
背後的工作要遠遠比算幾個數要多
。 不僅要考慮收斂性和收斂速度,還要考慮計算成本。 上面給的例子也只是我覺得比較適合手算的數列。
如果為了計算
,也可以利用類似的辦法,但是要注意,一般的,滿足
且
以及存在
及
使對任意
都有
的函式(這句話真長),基本都會帶著
之類的玩意,所以迭代起來較為繁瑣,就儘量只迭代一次,並且初值選的越接近
越好。 這就要求函式的一階導數在
附近越接近於
越好。
其實,對於
的下界,
的估計效果就已經非常好了,主要是上界的問題,上界若是利用
及
這樣的連續分數拆分,也只能得到
這樣粗糙的結果。 來看下迭代的效果:
構造數列滿足
,易知
。
不妨取
,則有
。
這個方法除了會帶對數之外,精度還是相當不錯的。 如果硬要得到分數結果,可以利用泰勒的上界:
,令
即可得到
,有五位的精度。
用泰勒雖然可以迅速的逼近
的值,但是由於通分之後分子帶有
,計算量並不會小到哪裡去,而得到的結果也不是同體積分數中的最佳值,所以更多的時候寧願會使用
這樣的結果也不會帶著一大坨式子去懟……
等後面寫篇文章專門介紹連分式,會有更好的估計
的方法和結果。