Python求解一元二次方程
时间: 2023-11-05 09:15:29 浏览: 65
可以使用以下代码求解一元二次方程:
```python
import math
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项系数c:"))
delta = b**2 - 4*a*c
if delta < 0:
print("方程无实数解")
elif delta == 0:
x = -b / (2*a)
print("方程有唯一解,x = ", x)
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print("方程有两个实数解,x1 = ", x1, ",x2 = ", x2)
```
其中,使用 `input` 函数获取用户输入的二次项系数、一次项系数和常数项系数。根据判别式的值,分别输出方程的解。注意,如果判别式小于0,则说明方程无实数解。
相关问题
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,程序将输出方程的实根。如果方程无实根,则输出“该方程无实根”。
阅读全文