编程求一元二次方程的根(要求实数范围分两种情况,虚数范围也能输出)
时间: 2024-10-12 14:08:01 浏览: 21
VB011-求一元二次方程的根
一元二次方程的一般形式为 ax^2 + bx + c = 0,其中 a、b 和 c 是常数,a ≠ 0。解这个方程通常涉及到求根公式,即 x = [-b ± sqrt(b^2 - 4ac)] / (2a)。对于实数系数,如果判别式 b^2 - 4ac > 0,方程有两个不同的实数根;如果 b^2 - 4ac = 0,方程有一个重根(即两个相同的实数根);而当 b^2 - 4ac < 0 时,方程有两个复数根,也称为虚根。
在编程中,可以创建一个函数接收 a、b 和 c 作为参数,并计算判别式的值。然后根据判别式的正负分别处理三种情况:
1. 实数双根:直接计算并返回两个实数值。
2. 实数单根:计算一个重复的实数值。
3. 虚数根:利用复数数学库(如Python的cmath模块)计算复数解。
以下是一个简单的 Python 示例:
```python
import cmath
def quadratic_roots(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), -b / (2*a)
else:
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-discriminant) / (2*a)
return complex(real_part, imaginary_part), complex(real_part, -imaginary_part)
# 示例
a = 1
b = -3
c = 2
result = quadratic_roots(a, b, c)
print(f"Real roots: {result[0]}, {result[1]}")
```
阅读全文