以前也是用過這個東西的,但是一直都不是很清楚原理。
後來理解了牛頓法了之後,發現這個東西,就是牛頓法的乙個簡單的應用而已。
target:就是目標數
x t+
1=xt
−f(x
t)f′
(xt)
x_ = x_ - \frac
xt+1=
xt−
f′(x
t)f
(xt
)若收斂,則
x ∗=
x∗−f
(x∗)
f′(x
∗)
x_ = x_ - \frac
x∗=x∗
−f′
(x∗
)f(x
∗)
即,只有當f(x
∗)
f(x_*)
f(x∗)
為0即可。
所以,求根號時,選擇的方程為
f (x
)=x2
−n
f(x) = x^2 - n
f(x)=x
2−n用牛頓法就可以計算出根號n
from sympy import
*x = symbols(
"x")
target =
10func = x **
2- target
ffunc = diff(func, x)
maxstep =
100step_count =
0x0 = target /
2temp = func.subs(x, x0)
while step_count < maxstep and
abs(temp)
>1e-
10:x0 = x0 -
(temp /
(ffunc.subs(x, x0)))
temp = func.subs(x, x0)
step_count +=
1print
(x0)
print
(step_count)
牛頓迭代法求根
給定乙個正數a,不用庫函式求其平方根。設其平方根為x,則有x2 a,即x2 a 0。設函式f x x2 a,則可得圖示紅色的函式曲線。在曲線上任取一點 x0,f x0 其中x0 0那麼曲線上該點的切線方程為 求該切線與x軸的交點得 因為1 2式中x0作為分母,所以在之前限定了一下初始值不要選0。那麼...
牛頓迭代法求根
幫朋友做的乙個題目,關於牛頓迭代法求方程的根.不難,但是費了我很長時間,以前的知識,重新拾起來卻很耗時間。今天做一記錄,一來加深印象,二來備必要時檢視。1 牛頓迭代法的基本知識 參考資料 newton s method and loops 上面的資料闡述很詳細,我就不多加補充。2 問題簡述 用牛頓迭...
牛頓迭代法 求 根
這是乙個求根很牛皮的乙個方法,迭代幾次後精度也變得非常的高了.假設我們求 2的值,用牛頓迭代法.大致過程就是隨便選取乙個自認為離根比較近的,離譜點也沒事,假如選x 4,然後不斷進行如下操作 不斷令 x x f x f x f x x 2 a a 2 所以就是 x 4 14 8 2.25 再一次 x ...