python 求解一元二次方程
时间: 2024-12-03 10:15:02 浏览: 13
在Python中,你可以使用`cmath`模块处理复数,或者`numpy`模块提供更高级的数值计算功能来求解一元二次方程。一元二次方程的一般形式是 ax^2 + bx + c = 0。以下是使用`cmath`库解决这个问题的基本步骤:
```python
import cmath
def solve_quadratic_equation(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, root)
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 + x + 1 = 0
a, b, c = 1, 1, 1
solutions = solve_quadratic_equation(a, b, c)
print(f"方程 {a}x^2 + {b}x + {c} 的解是:{solutions}")
```
这个函数会返回一元二次方程的实根或复根。如果需要使用`numpy`的话,可以先安装`numpy`,然后使用`numpy.roots`函数。
阅读全文