ValueError: math domain error - Quadratic Equation (Python)

ValueError: math domain error - Quadratic Equation (Python)

我对 python 编程和这个站点还很陌生。我目前正在处理一个问题,似乎无法理解错误。

import math
# Problem number 5.
A5 = 5
B5 = 0
C5 = 6.5
# Root1
x9 = (-B5 + math.sqrt(B5**2 - 4*A5*C5))/(2*A5)
# Root2
x10 = (-B5 + math.sqrt(B5**2 - 4*A5*C5))/(2*A5)
# Print solution
print()
print('Problem #5')
print('Root 1: ',x9)
print('Root 2: ',x10)

我在 运行 之后得到了这个:

    x9 = (-B5 + math.sqrt(B5**2 - 4*A5*C5))/(2*A5)
ValueError: math domain error

我在纸上做了这个问题并得到了两个答案...

如果您得到答案,那一定是一个复数(Python 默认不包含复数)。查看行 math.sqrt(B5**2 - 4*A5*C5).

这样计算:

math.sqrt(B5**2 - 4*A5*C5)
math.sqrt(0**2 - 4*5*6.5)
math.sqrt(0 - 130)
math.sqrt(-130)

函数math.sqrt没有找到复根。您应该像那样使用 cmath.sqrt(这需要在程序开始时使用 importing cmath)。

使用cmath,我得到这个结果:

Problem #5
Root 1:  1.1401754250991378j
Root 2:  1.1401754250991378j

(其中 j 是 -1 的平方根)。