输入参数a,b,c,求一元二次方程ax2 +bx +c =0 的根。(带复根)
时间: 2023-12-10 08:41:56 浏览: 158
一元二次方程的求根公式为:
x = (-b ± sqrt(b^2 - 4ac)) / 2a
如果判别式(b^2 - 4ac)大于等于0,则方程有实数根;如果判别式小于0,则方程有复数根。
如果判别式为0,则方程有唯一的实数根,即:
x = -b / 2a
根据上述公式,我们可以编写如下的 Python 代码来求解一元二次方程的根(带复根):
```python
import cmath
def quadratic_equation(a, b, c):
# 计算判别式
discriminant = b**2 - 4*a*c
# 如果判别式大于等于0,则方程有实数根
if discriminant >= 0:
x1 = (-b + cmath.sqrt(discriminant)) / (2*a)
x2 = (-b - cmath.sqrt(discriminant)) / (2*a)
return x1, x2
# 如果判别式小于0,则方程有复数根
else:
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(abs(discriminant)) / (2*a)
x1 = complex(real_part, imaginary_part)
x2 = complex(real_part, -imaginary_part)
return x1, x2
# 调用函数测试
print(quadratic_equation(1, -2, 1)) # (1+0j, 1+0j)
print(quadratic_equation(1, 2, 1)) # (-1+0j, -1+0j)
print(quadratic_equation(1, 1, 1)) # (-0.5+0.8660254037844386j, -0.5-0.8660254037844386j)
```
其中,cmath.sqrt() 函数用于计算复数的平方根。
阅读全文