如上所述,我做了一个牛顿-图森法来求一个给定数的平方根。
def newton(f, fprime, eps):
x0 = 10
while True:
fx0 = f(x0)
if abs(fx0) < eps:
return x0
fpx0 = fprime(x0)
if fpx0 == 0:
return None
x0 = x0 - fx0/fpx0
我知道一般来说,你不应该使用while True循环,但在我的例子中,它是好的,我的问题是,当f(x)=logx和f'(x)=1x时,我运行代码并得到一个数学错误,我假设要么是由于记录一个负值或除以0。
试着把你的初始x0猜测值改成一个更接近于根的值。
例如,x0 = 2将给你解。