繁体   English   中英

为什么我会收到“ZeroDivisionError: float 除以零”错误?

[英]Why am I getting `ZeroDivisionError: float division by zero` error?

我想在 y=0 处找到函数的 x 值。

from pynverse import inversefunc
from math import pi,sqrt
R=20
C=5*10**-9
L=5*10**-4
Z= (lambda x: sqrt(R**2+(1/(2*pi*C*x)-2*pi*L*x)**2))
inversefunc(Z,y_values=0)

但我收到以下错误代码:

Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
inversefunc(Z,y_values=0)
File "C:\Python27\lib\site-packages\pynverse\inverse.py", line 113, in inversefunc
trend = np.sign(func(ref2, *args) - func(ref1, *args))
File "<pyshell#15>", line 1, in <lambda>
Z= (lambda x: sqrt(R**2+(1/(2*pi*C*x)-2*pi*L*x)**2))
ZeroDivisionError: float division by zero

请帮我看看为什么! 谢谢你。

当除数为 0 时,您可以通知答案未定义,您应该使用普通函数,而不是 Python 中的命名 lambdas。

from pynverse import inversefunc
from math import pi,sqrt


def Z(x):
    # Can define these globally if necessary.
    R = 20
    C = 5 * 10**-9
    L = 5 * 10**-4

    return sqrt(R**2 + (1/(2*pi*C*x) - 2*pi*L*x)**2))


try:
    inversefunc(Z, y_values=0)
except ZeroDivisionError:
    print("answer is undefined")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM