關於此實驗
大多數方程式無法用公式求解,但計算機卻能瞬間算出 √2 或 cos x = x 的根。牛頓法就是原因之一:從一個猜測值出發,沿著切線向下走到 x 軸,並將交點作為下一個猜測值。在單根附近,正確位數大致每一步翻一倍。先看看它如何運作,再看看它如何失效:重根、水平切線、週期軌道、發散,以及它在複平面上繪出的分形吸引域。
學習目標
- 從切線方程式推導牛頓迭代公式
- 從誤差表中辨認二次收斂
- 解釋為什麼在重根處收斂會變成線性
- 舉例說明牛頓法何時會失效:水平切線、週期軌道和發散
- 描述吸引域,並解釋為什麼它們在複平面上的邊界是分形
使用方法
- 1使用 x² − 2 和 x₀ = 3,逐步演示此方法並觀察數字欄。正確數字的位數大致如何增加?
- 2證明當 f(x) = x² − a 時,迭代會變成 x_{n+1} = (x_n + a/x_n)/2,也就是巴比倫法。
- 3選擇 (x − 1)²(x + 2),並從 2.5 開始。將每一步的誤差與單根情況比較。比值是多少?
- 4選擇 x³ − 2x + 2,並從恰好為 0 的位置開始。會發生什麼事?現在從 0.1 或 −0.5 開始。
- 5選擇 arctan x。求仍會收斂的最大初始值,精確至小數點後兩位。
- 6切換至複平面,考察 z³ − 1。在腦海中放大兩種顏色的邊界:為什麼那裡總有第三種顏色的點?
模型
假設
- 計算採用雙精度,約有16位有效數字,因此誤差在接近10^−16時不再下降。
- 誤差是到最近精確根的距離;這裡展示的每個函數,其根都是已知的。
- 當切線變為水平、|x|超過10^6,或迭代40步後,方法就會停止。
- 在複平面上,起始點依其在50步內到達的根著色;所需步數越多,顏色越暗。始終無法到達根的點會以近乎黑色繪製。
在課堂上試試這個實驗
- Q1從x₀ = 2開始進行兩步牛頓迭代,估算10的立方根。
- Q2為什麼牛頓法要想表現良好,根附近的f′(x)必須不為零?
- Q3求f(x) = 1/x − a的牛頓迭代式。對於無法進行除法的電腦來說,它為什麼有用?
- Q4對於f(x) = x^(1/3),證明x_{n+1} = −2x_n。這對任意起始值代表什麼?
- Q5比較牛頓法和二分法:哪種方法用較少的步數達到10位有效數字?哪種方法能保證奏效?
常見問題
為什麼它被稱為牛頓-拉夫森法?
艾薩克·牛頓於1669年描述了一種用於多項式的方法,每一步都會改寫多項式。約瑟夫·拉弗森於1690年發表了較簡單的迭代形式,托馬斯·辛普森則於1740年提出了通用的微積分版本。
實際應用中的求解器如何避免這裡展示的失敗?
可以將牛頓法與二分法等安全方法結合(例如布倫特法);當函數值會因此變大時縮短步長(阻尼牛頓法或線搜尋);也可以從透過其他方法找到的良好初始估計值開始。
牛頓法用在哪裡?
它用於在硬體中計算平方根和倒數、求解工程與物理學中的非線性方程式、對微分方程式進行隱式時間步進,以及用於將牛頓法套用於梯度以尋找極小值的最佳化問題。
