python求解一元二次方程
时间: 2023-09-25 16:16:17 浏览: 116
一元二次方程的一般形式为 $ax^2+bx+c=0$,其中 $a,b,c$ 是实数且 $a\neq 0$。求解一元二次方程有公式:$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
可以使用 Python 代码实现:
```python
import math
def quadratic_equation(a, b, c):
delta = b**2 - 4*a*c
if delta < 0:
return "无实数解"
elif delta == 0:
x = -b / (2*a)
return x
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
return x1, x2
# 示例
print(quadratic_equation(1, -3, 2))
# 输出: (2.0, 1.0)
```
其中,`quadratic_equation` 函数接受三个参数 `a`、`b`、`c`,分别代表一元二次方程中的系数。如果方程无实数解,则返回字符串 `"无实数解"`。如果方程有两个实数解,则以元组的形式返回两个解。如果方程有一个实数解,则直接返回该解。
相关问题
python求解一元二次方程的根,包括复数根
可以使用 `cmath` 模块来计算一元二次方程的根,包括复数根。以下是示例代码:
```python
import cmath
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b**2 - 4*a*c
if delta < 0:
x1 = (-b + cmath.sqrt(delta)) / (2 * a)
x2 = (-b - cmath.sqrt(delta)) / (2 * a)
print("该方程有两个复数根:", x1, "和", x2)
elif delta == 0:
x = -b / (2 * a)
print("该方程有一个实数根:", x)
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print("该方程有两个实数根:", x1, "和", x2)
```
在上面的代码中,我们使用 `cmath` 模块的 `sqrt()` 函数来计算方程的根。当判别式小于 0 时,我们使用 `cmath` 模块来计算复数根;当判别式等于 0 时,我们仍然使用公式求实数根;当判别式大于 0 时,我们同样使用公式求实数根。
Python求解一元二次方程的代码
以下是Python求解一元二次方程的代码:
```python
import math
def solve_quad(a, b, c):
delta = b**2 - 4*a*c
if delta < 0:
return None
elif delta == 0:
x = -b / (2*a)
return x
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
return x1, x2
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项c:"))
result = solve_quad(a, b, c)
if result == None:
print("该方程无实根")
elif isinstance(result, float):
print("方程的唯一实根为:", result)
else:
print("方程的两个实根为:", result)
```
运行程序后,用户需要依次输入二次项系数a,一次项系数b和常数项c,程序将输出方程的实根。如果方程无实根,则输出“该方程无实根”。
阅读全文