已知一元二次方程ax 2 +bc+c=0的三个系数,求解方程的实根。设计 equation(a,b,c)函数,三个参数分别为二次项系数a,一次项系数b和常数项系数c。计算Δ=b 2 −4ac。若Δ≥0,则有实根,返回两个实根,要求保留2位小数,英文逗号分隔;若Δ<0,则没有实根,返回“没有实根”。 计算方程两个根的公式为:x= 2a −b± b 2 −4ac
时间: 2023-11-27 16:51:15 浏览: 167
以下是Python实现:
```python
import math
def equation(a, b, c):
delta = b ** 2 - 4 * a * c
if delta < 0:
return "没有实根"
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
return "{:.2f},{:.2f}".format(x1, x2)
```
使用方法:
```python
result = equation(1, 2, 1) # x^2 + 2x + 1 = 0
print(result) # 输出 -1.00,-1.00
result = equation(1, 2, 3) # x^2 + 2x + 3 = 0
print(result) # 输出 没有实根
```
相关问题
求解一元二次方程 ax2+bx+c=0的根,系数a、b、c的值从输入获取
求解一元二次方程的一般形式 \(ax^2 + bx + c = 0\) 的根,通常采用公式法,也称为韦达定理(Vieta's formulas)。当给定三个系数 a、b 和 c 后,我们可以计算出两个根 x1 和 x2,它们的关系是:
\[x_1 + x_2 = -\frac{b}{a}\]
\[x_1 \times x_2 = \frac{c}{a}\]
如果你需要编程实现这个过程,你需要首先检查 a 是否为零,因为如果 a=0,原方程将不再是一元二次方程。然后,可以使用这些公式计算根,或者借助于数学库中的 `sqrt()` 函数(对于实数根)以及复数运算(如果 b^2 - 4ac < 0 时有复数根)。
以下是一个简单的 Python 示例:
```python
import cmath
def solve_quadratic_equation(a, b, c):
discriminant = b**2 - 4*a*c
if a == 0:
raise ValueError("方程不是一元二次方程")
# 实数根
if discriminant >= 0:
x1 = (- cmath.sqrt(discriminant)) / (2 * a)
else:
# 复数根
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
x1 = complex(real_part, imaginary_part)
x2 = complex(real_part, -imaginary_part)
return x1, x2
# 示例
coefficients = float(input("请输入系数 a, b, c(以逗号分隔): "))
a, b, c = map(float, coefficients.split(','))
root1, root2 = solve_quadratic_equation(a, b, c)
print(f"方程的根是 {root1} 和 {root2}")
对于一元二次方程ax2+bx+c=0,输入其三个系数 a 、 b 、 c ,输出方程的根,python
在Python中,你可以使用数学库`math`或者直接通过公式计算一元二次方程的根,如果a不为零,则方程的解可以用下面的公式来表示:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
这是一个名为“求根公式”(Quadratic Formula)。如果你需要编写一个函数来计算这个方程的两个根,你可以这样做:
```python
import cmath
def solve_quadratic_equation(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:
root = -b / (2*a)
return root, None # 返回单实数根或None表示有两个相等的实数根
else: # 当判别式小于0时,有复数根
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-discriminant) / (2*a)
return real_part, imaginary_part
# 示例
coefficients = float(input("请输入a, b, c的值(以逗号分隔): "))
a, b, c = map(float, coefficients.split(','))
solution = solve_quadratic_equation(a, b, c)
print(f"方程的根为: {solution}")
```
在这个函数中,我们首先检查判别式是否大于0、等于0或小于0,然后分别计算实数根(如果有)、两个相等的实数根,或者是复数根。
阅读全文