上一篇
Python二次方程式计算教程 - 详细步骤与代码示例
- Python
- 2025-07-16
- 1629
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)
本文由LouHuiWu于2025-07-16发表在吾爱品聚,如有疑问,请联系我们。
本文链接:http://pjw.521pj.cn/20255706.html
发表评论