任意输入系数a,b,c的值,要求输出一元二次议程ax2+bx+c=0的根。
时间: 2024-09-15 20:02:53 浏览: 38
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
解决一元二次方程 \( ax^2 + bx + c = 0 \) 的根,可以使用二次公式,即 \( x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \)。这个公式适用于任何实数系数 \( a \),\( b \),\( c \),其中 \( a \neq 0 \),因为如果 \( a = 0 \),它将变成一次方程。
首先,你需要检查判别式 \( D = b^2 - 4ac \),确定根的情况:
1. 如果 \( D > 0 \),方程有两个不同的实数根。
2. 如果 \( D = 0 \),方程有一个重根(两个相同的实数根)。
3. 如果 \( D < 0 \),方程无实数根,但有两个共轭复数根。
以下是Python中计算并打印解的示例:
```python
import math
def calculate_roots(a, b, c):
discriminant = b**2 - 4*a*c
if a == 0:
raise ValueError("一元二次方程不能有零的二次项")
if discriminant > 0:
root1 = (-b + math.sqrt(discriminant)) / (2 * a)
root2 = (-b - math.sqrt(discriminant)) / (2 * a)
return f"方程的两个实根分别为 {root1:.2f} 和 {root2:.2f}"
elif discriminant == 0:
root = -b / (2*a)
return f"方程有一个重根 {root:.2f}"
else:
real_part = -b / (2*a)
imaginary_part = math.sqrt(-discriminant) / (2*a)
return f"方程有两个复数根,分别为 {real_part:.2f} ± {imaginary_part:.2f}i"
# 示例系数
a = 1
b = -5
c = 6
roots = calculate_roots(a, b, c)
print(roots)
阅读全文