一元二次方程求根算法 - Python 代码实现
一元二次方程求根算法 - Python 代码实现
本文将使用 Python 代码实现一元二次方程求根算法,并详细解释代码逻辑。
问题描述
给定一个一元二次方程 ax² + bx + c = 0,其中 a、b、c 为用户输入的实数,要求根据输入的数值求解方程的实数解。
代码实现
a = float(input()) # 输入a
b = float(input()) # 输入b
c = float(input()) # 输入c
if a == 0: # 如果a为0
if b == 0: # 如果b也为0
print('Data error') # 输出错误信息
else: # 如果b不为0
print('方程只有一个解:{}'.format(-c/b)) # 输出一元一次方程的解
else: # 如果a不为0
delta = b*b - 4*a*c # 计算判别式
if delta < 0: # 如果判别式小于0
print('该方程无实数解') # 输出无实数解
elif delta == 0: # 如果判别式等于0
print('方程有一个重根:{}'.format(-b/2/a)) # 输出重根
else: # 如果判别式大于0
x1 = (-b + delta**0.5) / 2 / a # 计算第一个解
x2 = (-b - delta**0.5) / 2 / a # 计算第二个解
if x1 > x2: # 如果第一个解比第二个解大
x1, x2 = x2, x1 # 交换两个解的顺序
print('方程有两个不同的实数解:{}&{}'.format(x2, x1)) # 输出两个解,并按从大到小顺序
代码解释
-
输入系数: 使用
input()函数获取用户输入的系数 a、b、c,并使用float()函数将其转换为浮点数类型。 -
判断系数 a:
- 如果 a 为 0,则方程退化为一元一次方程,判断 b 是否为 0。
- 如果 b 也为 0,则输出
Data error,表示方程不成立。 - 否则,输出一元一次方程的解
-c/b。
- 如果 b 也为 0,则输出
- 如果 a 为 0,则方程退化为一元一次方程,判断 b 是否为 0。
-
计算判别式: 如果 a 不为 0,则计算判别式 delta = b² - 4ac。
-
判断判别式:
- 如果 delta 小于 0,则方程无实数解。
- 如果 delta 等于 0,则方程有一个重根。
- 如果 delta 大于 0,则方程有两个不同的实数解。
-
求解方程:
- 如果方程有解,则根据判别式的值,计算方程的解。
- 如果有两个不同的实数解,则将两个解按从大到小顺序输出,并使用符号
&分隔。
总结
本文介绍了一元二次方程求根算法的 Python 代码实现,并详细解释了代码逻辑。该代码能够处理各种情况,包括无解、重根、两个不同实数根等。希望本文能够帮助读者更好地理解一元二次方程求根算法。
原文地址: https://www.cveoy.top/t/topic/mtNP 著作权归作者所有。请勿转载和采集!