在數值分析的領域裡,牛頓-拉夫森法(Newton-Raphson method)以其驚人的收斂速度而著稱,這個根尋找算法由艾薇沙·牛頓和約瑟夫·拉夫森的名字命名。簡單來說,這個方法透過探尋一個函數的根,逐步改善對其根的預估,特別是在一開始的估算相對接近根的情況下。
牛頓法的收斂速度是如此之快,以至於每一次迭代都能使正確的位數大約增加一倍。
牛頓法的基本思路是,從一個初始估算開始,透過該函數的切線來逼近函數的根。假設我們有一個實值函數 f ,及其導數 f′,並選擇一個初始值 x0 作為 f 的根的估計值。如果 f 函數滿足某些條件,且初始猜測接近正確答案,那麼我們可以透過以下步驟進行迭代:
xn+1 = xn - f(xn) / f′(xn)
這邊的 xn+1 是利用當前估計點 xn 和函數的切線來計算下一個更接近根的估計。由於不斷迭代,產生的根的估算將會收斂,並最終達到所需的精確度。值得一提的是,當根的重數只有一次時,這個收斂速度是二次的,也就是說,正確位數在每一步中將大約翻倍。
牛頓法的根源可以追溯到古巴比倫時期的計算技術,那時期的數學家們可能已經在使用類似於牛頓法的方法來找出平方根。此後的數十世紀,數學家如海榮和阿拉伯數學家 Jamshīd al-Kāshī 等,也提出類似的根尋找方法,雖然沒有明確以牛頓法的名義存在。牛頓於17世紀的作品中首次明確地表述了這個方法,並隨後被約瑟夫·拉夫森等數學家進一步發展與簡化。
牛頓法的最大優勢在於其二次收斂的特性,即每次迭代都能顯著地改善根的預估值。這使得牛頓法在實際應用中,特別是在解決具有單一根的非線性方程時顯得非常有效。此外,牛頓法並不需要尋找根的明確公式,僅需函數與導數的數值計算。如果能夠直接計算導數,牛頓法的效率更是無可比擬。
然而,在某些情況下,即使牛頓法的理論上是如此理想,實際運用時卻可能會遇到收斂失敗的情形。
儘管牛頓法在許多情況下都表現良好,但它也並非沒有挑戰。在一些情況下,可能會由於導數無法明確計算,或初始估算選擇不當而導致收斂失敗。此外,若所尋根的重數大於一,收斂速度可能只有線性,這就意味著每次迭代改善的效果會大打折扣,特別是當多個根接近時,迭代的次數會大幅增加。
牛頓法的二次收斂特性使其成為數值分析中的一項神奇技巧,然而,在實際的數值計算中,一些挑戰仍然存在於複雜的函數與特殊的初始條件下,這讓人不禁思考,究竟數學的奧秘有多深呢?