8. 编写一个函数,求一元二次方程的根。
时间: 2024-05-22 11:13:12 浏览: 20
def quadratic(a, b, c):
"""
求解一元二次方程的根
:param a: 二次项系数
:param b: 一次项系数
:param c: 常数项
:return: 两个解的元组,如果没有实数解,返回None
"""
delta = b ** 2 - 4 * a * c
if delta < 0:
return None
elif delta == 0:
return (-b / (2 * a),)
else:
x1 = (-b + delta ** 0.5) / (2 * a)
x2 = (-b - delta ** 0.5) / (2 * a)
return (x1, x2)
相关问题
用python编写一个函数,求一元二次方程的根
以下是一个求解一元二次方程的根的Python函数:
```python
import math
def quadratic_equation(a, b, c):
"""
求一元二次方程的根
ax^2 + bx + c = 0
返回一个元组,包含两个根(可能相等)
"""
delta = b * b - 4 * a * c
if delta < 0:
return None
elif delta == 0:
x = -b / (2 * a)
return (x, x)
else:
sqrt_delta = math.sqrt(delta)
x1 = (-b + sqrt_delta) / (2 * a)
x2 = (-b - sqrt_delta) / (2 * a)
return (x1, x2)
# 示例
print(quadratic_equation(2, 3, 1)) # (-0.5, -1.0)
print(quadratic_equation(1, -6, 9)) # (3.0, 3.0)
print(quadratic_equation(1, 2, 3)) # None
```
在这个函数中,参数 `a`, `b`, `c` 分别表示一元二次方程的三个系数。函数首先计算判别式 `delta`,如果 `delta` 小于 0,则方程无实数根,函数返回 `None`;如果 `delta` 等于 0,则方程有一个实数根,函数返回一个长度为 1 的元组;如果 `delta` 大于 0,则方程有两个不同的实数根,函数返回一个长度为 2 的元组。函数中使用了 Python 标准库中的 `math.sqrt` 函数来计算平方根。
编写一个求一元二次方程的根的小程序
当然,我可以帮你介绍一下编写一个求一元二次方程根的小程序。下面是一个简单的示例代码:
```python
import math
def solve_quadratic_equation(a, b, c):
# 计算判别式
discriminant = b**2 - 4*a*c
# 判断方程的根的情况
if discriminant > 0:
# 有两个实根
root1 = (-b + math.sqrt(discriminant)) / (2*a)
root2 = (-b - math.sqrt(discriminant)) / (2*a)
return root1, root2
elif discriminant == 0:
# 有一个实根
root = -b / (2*a)
return root
else:
# 无实根
return "无实根"
# 测试
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项c:"))
result = solve_quadratic_equation(a, b, c)
print("方程的根为:", result)
```
这个程序通过输入二次项系数a、一次项系数b和常数项c,计算并输出方程的根。程序中使用了math库中的sqrt函数来计算平方根。