一元二次方程求根算法 - 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))  # 输出两个解,并按从大到小顺序

代码解释

  1. 输入系数: 使用 input() 函数获取用户输入的系数 a、b、c,并使用 float() 函数将其转换为浮点数类型。

  2. 判断系数 a:

    • 如果 a 为 0,则方程退化为一元一次方程,判断 b 是否为 0。
      • 如果 b 也为 0,则输出 Data error,表示方程不成立。
      • 否则,输出一元一次方程的解 -c/b
  3. 计算判别式: 如果 a 不为 0,则计算判别式 delta = b² - 4ac。

  4. 判断判别式:

    • 如果 delta 小于 0,则方程无实数解。
    • 如果 delta 等于 0,则方程有一个重根。
    • 如果 delta 大于 0,则方程有两个不同的实数解。
  5. 求解方程:

    • 如果方程有解,则根据判别式的值,计算方程的解。
    • 如果有两个不同的实数解,则将两个解按从大到小顺序输出,并使用符号 & 分隔。

总结

本文介绍了一元二次方程求根算法的 Python 代码实现,并详细解释了代码逻辑。该代码能够处理各种情况,包括无解、重根、两个不同实数根等。希望本文能够帮助读者更好地理解一元二次方程求根算法。


原文地址: https://www.cveoy.top/t/topic/mtNP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录