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
(这需要在程序开始时使用 import
ing cmath
)。
使用cmath
,我得到这个结果:
Problem #5
Root 1: 1.1401754250991378j
Root 2: 1.1401754250991378j
(其中 j
是 -1 的平方根)。
我对 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
(这需要在程序开始时使用 import
ing cmath
)。
使用cmath
,我得到这个结果:
Problem #5
Root 1: 1.1401754250991378j
Root 2: 1.1401754250991378j
(其中 j
是 -1 的平方根)。