牛顿法求根号数(Python)
生活随笔
收集整理的這篇文章主要介紹了
牛顿法求根号数(Python)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡述
以前也是用過這個東西的,但是一直都不是很清楚原理。
后來理解了牛頓法了之后,發(fā)現(xiàn)這個東西,就是牛頓法的一個簡單的應(yīng)用而已。
代碼
target: 就是目標數(shù)
xT+1=xT?f(xT)f′(xT)x_{T+1} = x_{T} - \frac{f(x_T)}{f'(x_T)} xT+1?=xT??f′(xT?)f(xT?)?
若收斂,則
x?=x??f(x?)f′(x?)x_{*} = x_{*} - \frac{f(x_*)}{f'(x_*)} x??=x???f′(x??)f(x??)?
即,只有當f(x?)f(x_*)f(x??)為0即可。
所以,求根號時,選擇的方程為
f(x)=x2?Nf(x) = x^2 - Nf(x)=x2?N
用牛頓法就可以計算出根號N
from sympy import *x = symbols("x")target = 10 func = x ** 2 - target ffunc = diff(func, x) MAXSTEP = 100 step_count = 0 x0 = target / 2 temp = 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 += 1 print(x0) print(step_count)總結(jié)
以上是生活随笔為你收集整理的牛顿法求根号数(Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛顿法求解方程(python和C++)
- 下一篇: 重根迭代法解方程(两种方法)(Pytho