Python求一元二次方程ax 2+bx +c=0 的根。
时间: 2024-09-12 16:04:34 浏览: 53
在Python中,可以使用cmath模块或直接编写一个函数来求解一元二次方程。这里我会提供一种常见的解决方案,使用公式法:
```python
import cmath
def quadratic_solver(a, b, c):
# 计算判别式
discriminant = (b**2) - (4*a*c)
if discriminant > 0:
# 两个实数根
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
elif discriminant == 0:
# 只有一个实数根
root = -b / (2*a)
return root, None
else:
# 两个复数根
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-discriminant) / (2*a)
root1 = complex(real_part, imaginary_part)
root2 = complex(real_part, -imaginary_part)
return root1, root2
# 示例:求解方程x^2 + 5x + 6 = 0
a, b, c = 1, 5, 6
solution = quadratic_solver(a, b, c)
print("Roots:", solution)
```
在这个例子中,`quadratic_solver`函数接受系数a、b和c作为参数,然后计算并返回方程的根。如果方程有两个实数根,会分别返回;如果有两个共轭复数根,则返回它们的复数形式。
阅读全文