打印根目录时未得到结果

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

我正在尝试使用牛顿法来计算根,但是当我打印结果时,我得到了nan。请问错误是什么。当我手动区分时,我得到正确的结果。

from sympy import *

x_sym = sym.symbols('x')

a = 0.1

b = pi

x = 1.0

func = x**2 - sin(x)

for i in range(1, 10):
    x1 = x - func / diff(func, x_sym)

    if abs(b - a) <= 1.0E-8:
        break
    x = x1

print('The root is: %0.8f' % x1)
python sympy newtons-method
1个回答
0
投票

What is inf and nan?您被零除。 “ diff(func,x_sym)”

for i in range(1, 10):
    x1 = x - func / diff(func, x_sym)
    z=diff(func, x_sym)
    print('is diff zero?',z,type(z),z/z,'bonus why zoo?',1/z)

像Python中的东西一样被零除会产生nan或如果它是“真实的”零则抛出零除错误。

`diff: 0 <class 'sympy.core.numbers.Zero'>`
© www.soinside.com 2019 - 2024. All rights reserved.