如上所述,我已经进行了牛顿-拉普森方法来查找给定数的平方根
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
我知道一般情况下您不应该使用True循环,但就我而言,这很好,我的问题是当f(x)= logx且f'(x)= 1 / x时,我运行代码并获得数学公式错误,我假设是通过记录负数或除以0。无论如何,关于如何解决它的一些帮助都将非常有用,因为我似乎无法找到为什么只有日志有问题的原因
尝试将初始x0猜测值更改为更接近根的值。
例如,x0 = 2将为您提供解决方案。