牛頓法求根號數(Python)

2021-08-20 23:57:46 字數 1123 閱讀 5132

以前也是用過這個東西的,但是一直都不是很清楚原理。

後來理解了牛頓法了之後,發現這個東西,就是牛頓法的乙個簡單的應用而已。

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 ...