当前位置:首页 > Python > 正文

Python二次方程式计算教程 - 详细步骤与代码示例

Python二次方程式计算教程

掌握求解ax² + bx + c = 0的完整方法

什么是二次方程式?

二次方程式是形如 ax² + bx + c = 0 的方程,其中:

  • a 是二次项系数(不能为零)
  • b 是一次项系数
  • c 是常数项

关键概念: 二次方程式的解称为"根",可以通过求根公式计算。根的个数和类型由判别式决定。

二次方程求根公式

二次方程的解可以通过以下公式求得:

x = [-b ± √(b² - 4ac)] / (2a)

其中 b² - 4ac 称为判别式(Discriminant),它决定了根的性质:

判别式 > 0

两个不同的实数根

判别式 = 0

两个相同的实数根(重根)

判别式 < 0

两个复数根

Python实现二次方程求解

下面是完整的Python代码,可以计算任何二次方程的解:

import cmath  # 导入复数数学模块

def solve_quadratic(a, b, c):
    """
    求解二次方程 ax² + bx + c = 0
    返回方程的解
    """
    # 计算判别式
    discriminant = (b ** 2) - (4 * a * c)
    
    # 根据判别式的值计算根
    if discriminant > 0:
        # 两个不同的实数根
        root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
        root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
        return root1.real, root2.real, "两个不同的实数根"
    
    elif discriminant == 0:
        # 两个相同的实数根(重根)
        root = -b / (2 * a)
        return root, root, "两个相同的实数根"
    
    else:
        # 两个复数根
        root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
        root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
        return root1, root2, "两个复数根"

# 获取用户输入
print("二次方程式计算器: ax² + bx + c = 0")
a = float(input("请输入系数 a: "))
b = float(input("请输入系数 b: "))
c = float(input("请输入系数 c: "))

# 确保a不为零
if a == 0:
    print("错误:系数a不能为零!")
else:
    # 求解方程
    root1, root2, root_type = solve_quadratic(a, b, c)
    
    # 显示结果
    print("\n计算结果:")
    print(f"方程: {a}x² + {b}x + {c} = 0")
    print(f"根的类型: {root_type}")
    print(f"根1: {root1}")
    print(f"根2: {root2}")

代码说明:

  • 使用cmath模块而不是math模块,因为它可以处理复数
  • 定义solve_quadratic函数封装求解逻辑
  • 根据判别式的值返回不同类型的根
  • 处理了系数a为零的错误情况
  • 提供用户友好的输入输出界面

实际计算示例

示例1:两个实数根

方程:2x² + 5x - 3 = 0

输入:a=2, b=5, c=-3

输出:

  • 根1: 0.5
  • 根2: -3.0

示例2:重根

方程:x² - 4x + 4 = 0

输入:a=1, b=-4, c=4

输出:

  • 根1: 2.0
  • 根2: 2.0

示例3:复数根

方程:x² + 2x + 5 = 0

输入:a=1, b=2, c=5

输出:

  • 根1: (-1+2j)
  • 根2: (-1-2j)

发表评论