python编写程序求一元二次方程ax2+bx+c=0的根。当b2-4ac>0时,方程有两个不同的根,计算并输出两个根;当b2-4ac=0时,方程有两个相同的根,计算并输出对应的根;当b2-4ac<0时,方程无根。
时间: 2024-10-08 21:05:44 浏览: 33
在Python中,你可以使用`cmath`模块处理复数解的情况,因为对于负判别式(b² - 4ac < 0),一元二次方程会有复数解。以下是一个简单的函数,用于求解一元二次方程:
```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)
print(f"方程有两个不同的实数根:{root1:.2f} 和 {root2:.2f}")
elif discriminant == 0:
# 两个相同的实数根
root = -b / (2 * a)
print(f"方程有两个相同的实数根:{root:.2f}")
else:
# 复数解
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
print("方程无实数根,有两对共轭复数解:")
print(f"({real_part:.2f} + {imaginary_part:.2f}i) 和 ({real_part:.2f} - {imaginary_part:.2f}i)")
# 示例输入
a = 1
b = -3
c = 2
solve_quadratic_equation(a, b, c)
```
在这个例子中,你可以根据需要替换变量 `a`, `b`, `c` 来测试不同的一元二次方程。
阅读全文