编写程序求一元二次方程的根,考虑虚根情况;
时间: 2024-10-24 18:18:33 浏览: 13
编写程序求解一元二次方程通常涉及二次公式 \( ax^2 + bx + c = 0 \),其中 \( a \), \( b \), 和 \( c \) 是给定的系数,且 \( a \neq 0 \)。程序首先会检查判别式 \( D = b^2 - 4ac \),来确定根的情况:
- 当 \( D > 0 \) 时,有两个实数根,可以使用公式 \( x = \frac{-b \pm \sqrt{D}}{2a} \) 来计算。
- 当 \( D = 0 \) 时,有一个重根(重复),\( x = -\frac{b}{2a} \)。
- 当 \( D < 0 \) 时,方程有复数根,即两个共轭虚根,形如 \( x = \frac{-b}{2a} \pm i\sqrt{\frac{|D|}{a}} \),其中 \( i \) 是虚数单位。
在编程时,可以先定义函数接受三个系数作为参数,然后计算并返回根。对于虚数部分,需要引入复数运算库来处理。下面是使用Python的一个简单示例:
```python
import cmath
def solve_quadratic(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:
return -b / (2 * a)
else: # Discriminant is negative
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
return (real_part, complex(real_part, imaginary_part))
# 测试示例
coefficients = [1, -3, 2]
roots = solve_quadratic(*coefficients)
print(f"Roots for the equation {coefficients[0]}x^2 + {coefficients[1]}x + {coefficients[2]} are:", roots)
```
阅读全文