简述
以前也是用过这个东西的,但是一直都不是很清楚原理。
后来理解了牛顿法了之后,发现这个东西,就是牛顿法的一个简单的应用而已。
代码
target:就是目标数
我们在下面就是为了求这个数的开根号。
同样的原理,我们只需要修改方程中的对应的指数,我们就可以实现了
func部分
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)