Python求取一元一次方程(ax²+bx+c=0)的实解。(考虑a是否大于0以及该方程是否存在实根即b²-4ac是否大于0)
时间: 2024-09-06 16:02:48 浏览: 43
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
在Python中求解一元二次方程(ax²+bx+c=0)的实根,首先需要判断方程是否有实根。根据判别式Δ=b²-4ac,我们可以知道:
- 如果Δ>0,则方程有两个不相等的实根;
- 如果Δ=0,则方程有两个相等的实根(重根);
- 如果Δ<0,则方程没有实根。
对于求解实根,我们可以使用以下公式:
对于两个不相等的实根情况,两个实根的求法为:
x₁ = (-b + sqrt(Δ)) / (2a)
x₂ = (-b - sqrt(Δ)) / (2a)
对于两个相等的实根(重根)情况,实根的求法为:
x₁ = x₂ = -b / (2a)
下面是使用Python实现的代码示例:
```python
import math
# 定义求解函数
def solve_quadratic_equation(a, b, c):
# 计算判别式
delta = b**2 - 4*a*c
# 判断方程是否有实根
if delta > 0:
# 两个不相等的实根
root1 = (-b + math.sqrt(delta)) / (2*a)
root2 = (-b - math.sqrt(delta)) / (2*a)
return root1, root2
elif delta == 0:
# 两个相等的实根(重根)
root = -b / (2*a)
return root, root
else:
# 没有实根
return None
# 示例:求解方程 x² + 4x + 4 = 0 的实根
a, b, c = 1, 4, 4
roots = solve_quadratic_equation(a, b, c)
print("方程的实根为:", roots)
```
阅读全文