1. 程式人生 > 其它 >SkyWalking 分散式追蹤系統

SkyWalking 分散式追蹤系統

牛頓迭代法;思路;問題

什麼是牛頓迭代法

牛頓-拉弗森方法 Newton-Raphson method 用來近似求解多項式的根

公式

顧名思義,該方法採用迭代的思想,已知曲線方程\(f(x)\), 在\(x_n\)點做切線,求\(x_{n+1}\)
\(x_n\)點的切線方程為

\[f(x_n)+f'(x_n)(x-x_n) \]

那麼\(x_{n+1}\)即為

\[f(x_n)+f'(x_n)(x_{n+1}-x_n)=0\\ x_{n+1}=x_n-\frac {f(x_n)} {f'(x_n)} \]

從泰勒展開的角度理解

\[f(x)=f(x_0)+f'(x_0)(x-x_0)+\frac {f"(\xi)(x-x_0)^2} {2!} \]

忽略二次項

\[f(x) \approx f(x_0)+f'(x_0)(x-x_0) \]

從這個式子也可以看出,在使用牛頓迭代法時,需要選取一個較為解接近真實解的\(x_0\)作為迭代基數,\(x_0\)要在\(x\)附近

牛頓迭代法的問題

牛頓迭代法不是總能收斂的,所以在某些情況下找不到足夠近似的根

駐點

越來越遠離

此處根點很顯然是0點,而\(f'(0)\)不存在

迴圈震盪

這種情況\(x_{n+1}=-x_n\)

不能完整求出所有的根

這種有多個根的函式,因為選擇的起始點,只能求到附近的根

總結

函式在整個定義域內最好是二階可導的

起始點對求根計算影響重大,可以增加一些別的判斷手段進行試錯

求平方根用牛頓-拉弗森方法是安全的

Reference

https://www.zhihu.com/question/20690553