求一元二次方程的根程序
时间: 2024-11-06 12:23:40 浏览: 8
C++通过自定义函数求一元二次方程的根
求解一元二次方程 \( ax^2 + bx + c = 0 \) 的标准算法通常涉及计算判别式 \(\Delta = b^2 - 4ac\),然后基于其值来确定根的情况:
1. 当 \(\Delta > 0\) 时,有两个不相等的实数根,可以使用公式 \(x = \frac{-b \pm \sqrt{\Delta}}{2a}\) 来计算。
2. 当 \(\Delta = 0\) 时,有一个重根(即两个相同的实数根),\(x = -\frac{b}{2a}\)。
3. 当 \(\Delta < 0\) 时,方程有两个复数根,这时需要使用复数形式的根公式。
以下是Python的一个简单示例,展示了如何编写求解一元二次方程的程序:
```python
import cmath
def quadratic_solver(a, b, c):
# 计算判别式
delta = (b ** 2) - (4 * a * c)
if delta > 0:
x1 = (-b + cmath.sqrt(delta)) / (2 * a)
x2 = (-b - cmath.sqrt(delta)) / (2 * a)
return x1, x2
elif delta == 0:
x = -b / (2 * a)
return x, x
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-delta) / (2 * a)
root1 = complex(real_part, imaginary_part)
root2 = complex(real_part, -imaginary_part)
return root1, root2
# 测试函数
a = float(input("请输入a的值: "))
b = float(input("请输入b的值: "))
c = float(input("请输入c的值: "))
roots = quadratic_solver(a, b, c)
print(f"方程 {a}x^2 + {b}x + {c} 的根为: ", roots)
阅读全文