方程是含未知数的等式,不等式把等号换成大小关系。本节是"x 的一生"的成长期:从一次方程的移项,到二次方程的求根公式与判别式,再到不等式解集在数轴上的表达。上一节的因式分解在这里立刻变现——乘积为零只需一个因数为零。
一笔钱存入银行,一年后本息共 10600 元,年利率 2%。设本金为 x,方程是 1.02x = 10600。解法就一个动作:两边同除 1.02,x = 10600 ÷ 1.02 ≈ 10392.16 元。一次方程的全部秘密就是"对两边做相反的操作,把 x 单独留在一边"——移项变号、去分母、去括号,每一步都是这个原则的具体化。
>>> from sympy import symbols, solve, Eq, Rational >>> x = symbols('x') >>> solve(Eq(Rational(102,100)*x, 10600)) [530000/51] >>> 530000/51 10392.156862745098
SymPy 用精确分数给出 530000/51,化成小数与估算一致。
解 x 平方 - 5x + 6 = 0。因式分解:(x - 2)(x - 3) = 0,所以 x = 2 或 x = 3。乘积为零只需一个因数为零——上一节的分解在这里一击命中。
不是所有二次式都分解得干净。x 平方 - 4x + 1 = 0 用求根公式:判别式 Δ = b 平方 - 4ac = 16 - 4 = 12,根为 x = (4 ± 根号12)/2 = 2 ± 根号3。判别式是先遣侦察:
| 判别式 Δ | 根的情况 | 例 |
|---|---|---|
| 大于 0 | 两个不同实根 | x 平方 - 5x + 6 |
| 等于 0 | 两个相等实根 | x 平方 - 6x + 9 |
| 小于 0 | 无实根(复根) | x 平方 + x + 1 |
韦达定理不解方程就能算根的性质:两根之和 = -b/a,两根之积 = c/a。对 x 平方 - 5x + 6:和为 5、积为 6,反推两个根正是 2 与 3。对 x 平方 - 4x + 1:和为 4、积为 1——注意"和为整数、积为整数"不代表根本身是整数,2 加根号3 与 2 减根号3 恰好和 4 积 1。
>>> from sympy import solve, symbols, sqrt, expand >>> x = symbols('x') >>> solve(x**2 - 5*x + 6, x) [2, 3] >>> solve(x**2 - 4*x + 1, x) [2 - sqrt(3), 2 + sqrt(3)] >>> solve(x**2 + x + 1, x) # 无实根,给出复根 [-1/2 - sqrt(3)*I/2, -1/2 + sqrt(3)*I/2] >>> # 韦达定理复核:两根之和、之积 >>> r1, r2 = 2 + sqrt(3), 2 - sqrt(3) >>> expand(r1 + r2), expand(r1*r2) (4, 1)
第三行连接了第一章:判别式小于 0 时根躲进了复数域,正是当年逼出 i 的场景。

解 2x - 5 小于 7:移项得 2x 小于 12,x 小于 6。与方程几乎一样,唯一的雷区是不等式两边乘(或除)负数时,不等号方向翻转。解 -2x + 3 小于 9:移项 -2x 小于 6,两边除 -2,翻向,x 大于 -3。
二次不等式借助图像最稳:解 x 平方 - 5x + 6 大于 0。抛物线开口向上,与横轴交于 2 和 3,图像在横轴上方对应"两头"区间:x 小于 2 或 x 大于 3。反过来 x 平方 - 5x + 6 小于 0 对应"中间":2 小于 x 小于 3。
>>> from sympy import solve_univariate_inequality, symbols, And >>> x = symbols('x') >>> solve_univariate_inequality(x**2 - 5*x + 6 > 0, x) (2 > x) | (x > 3) >>> solve_univariate_inequality(-2*x + 3 < 9, x) x > -3
SymPy 用"或"连接两个区间,与数轴上两段阴影一致。
⚠️ 常见坑:两边平方也是"隐性乘正负不明"。x 大于 2 时两边平方安全;x 小于 -2 时平方后关系反转;-2 小于 x 小于 2 时平方根本不保号。涉及平方的变形先问自己:两边的符号确定吗?
解 (x + 1)/(x - 2) = 3,标准动作是两边乘 (x - 2) 化整式:x + 1 = 3x - 6,解得 x = 3.5。但乘 (x - 2) 自带前提"x 不等于 2",若解出的根恰好撞上禁区就是增根,必须扔掉。规矩一句:分式方程解完必验根,把根代回每个分母看是否为零。
>>> from sympy import symbols, solve >>> x = symbols('x') >>> solve((x + 1)/(x - 2) - 3, x) [7/2] >>> solve((x - 2)/(x - 2) - 1, x) # 全体非 2 实数都满足,无孤立根 []
SymPy 守规矩地不给增根。
问:不等式两边能开平方吗?
答:先确认两边非负。x 平方大于 9 开方得 x 大于 3 或 x 小于 -3,写成"x 大于 3"就丢了解。
x + y = 10、2x − y = 2:两式相加消去 y,得 3x = 12,x = 4,回代 y = 6。消元法的手法就是"用等式的合法变形制造抵消"。几何上每个方程是一条直线,解就是交点——两线平行则无解(矛盾组),重合则无穷多解。第三种解法代入法(把 y = 10 − x 代入第二式)与加减消元法结果必然一致,互相可作验算。含三个未知数时如法炮制,逐个消元降维——这是线性代数"高斯消元"的初中版雏形。
根解出来了,x 的一生进入下一阶段:不再问"x 是几",而问"x 变动时会发生什么"——函数登场。