为什么这个牛顿-拉普森法的查找方法会返回一个错误的log

问题描述 投票:-1回答:1

如上所述,我做了一个牛顿-图森法来求一个给定数的平方根。

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。

python python-3.x logarithm derivative newtons-method
1个回答
1
投票

试着把你的初始x0猜测值改成一个更接近于根的值。

例如,x0 = 2将给你解。

© www.soinside.com 2019 - 2024. All rights reserved.