Python 二次方程求根器
使用 Python 中的判别式求解二次方程并识别实数根和复数根。
概述
二次方程的形式为 ax² + bx + c = 0。求解该方程需要二次公式:“x = (-b ± sqrt(b² - 4ac)) / 2a”。
术语“b² - 4ac”称为判别式。如果为正,则有两个不同的实根。如果为零,则为一个实根。如果为负,则为两个复根。
Python 内置的 cmath 模块支持复数,即使判别式为负,我们也能找到根。
代码和执行输出
强大的求解器能够处理实数、零和复数判别式。
quadratic.py
在编辑器中尝试import cmath
def find_roots(a, b, c):
d = (b**2) - (4*a*c) # discriminant
# Calculate both roots
sol1 = (-b - cmath.sqrt(d)) / (2*a)
sol2 = (-b + cmath.sqrt(d)) / (2*a)
return sol1, sol2
# Test equation: x^2 - 5x + 6 = 0
r1, r2 = find_roots(1, -5, 6)
print("Roots of x^2 - 5x + 6 = 0:")
print(f"Root 1: {r1.real:.1f}")
print(f"Root 2: {r2.real:.1f}")端子输出
Roots of x^2 - 5x + 6 = 0:
Root 1: 2.0
Root 2: 3.0逐步实施
- 物理模型和轨迹跟踪系统
- 几何碰撞检测向量
- 数学求解器
常见问题解答
为什么使用“cmath”而不是“math”?
如果您尝试计算负数的平方根,标准“math”模块将引发 ValueError。 “cmath”(复数数学)模块自动处理虚根。