用python编程:求方程ax+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根并输出结果。从主程序输入a,b,c的值
时间: 2023-11-29 07:05:21 浏览: 89
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑)
以下是用 Python 编写的程序,求解方程 $ax+bx+c=0$ 的根:
```python
import math
def solve_positive(a, b, c):
"""当 b^2 - 4ac > 0 时,求解方程的根"""
delta = b * b - 4 * a * c
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
return x1, x2
def solve_zero(a, b, c):
"""当 b^2 - 4ac = 0 时,求解方程的根"""
x = -b / (2 * a)
return x
def solve_negative(a, b, c):
"""当 b^2 - 4ac < 0 时,求解方程的根"""
real_part = -b / (2 * a)
imag_part = math.sqrt(abs(b * b - 4 * a * c)) / (2 * a)
x1 = complex(real_part, imag_part)
x2 = complex(real_part, -imag_part)
return x1, x2
if __name__ == '__main__':
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b * b - 4 * a * c
if delta > 0:
x1, x2 = solve_positive(a, b, c)
print("方程的两个实根分别为:x1={:.2f}, x2={:.2f}".format(x1, x2))
elif delta == 0:
x = solve_zero(a, b, c)
print("方程有一个实根:x={:.2f}".format(x))
else:
x1, x2 = solve_negative(a, b, c)
print("方程的两个虚根分别为:x1={}, x2={}".format(x1, x2))
```
程序中,`solve_positive` 函数用于求解当 $b^2 - 4ac > 0$ 时方程的根,`solve_zero` 函数用于求解当 $b^2 - 4ac = 0$ 时方程的根,`solve_negative` 函数用于求解当 $b^2 - 4ac < 0$ 时方程的根。在主程序中,根据 $b^2 - 4ac$ 的值调用对应的函数,并输出结果。
阅读全文