python给定一个一元二次方程式ax +bx+c=0的系数a、b和c,求该方程的根(a≠0)。
时间: 2024-10-13 09:08:28 浏览: 29
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
在Python中,可以使用数学库`cmath`来处理复数解的情况,如果一元二次方程的判别式`b**2 - 4*a*c`小于零,说明有两个复数根。下面是一个函数示例,用于计算一元二次方程的实数或复数根:
```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, 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
# 使用示例
a, b, c = 1, -3, 2
solution = quadratic_solver(a, b, c)
print(f"一元二次方程 {a}x^2 + {b}x + {c} 的根是:")
for i, root in enumerate(solution):
print(f"根{f' ({i+1})' if len(solution) > 1 else ''}: {root}")
```
阅读全文