符号运算能力
之前的章节我们知道了各种规则和概念,本章节我们将看看大家的熟练度,是否可以自己把公式推一遍。
这个能力直接决定你能不能跟着论文里的推导走下去,而不是在作者跳步的地方卡住,每个知识点都配了交互演示,特别是 (a+b)² 的几何切分动画,看一遍就能明白"交叉项 2ab 是从哪来的"。
为什么"符号运算能力"很重要
读论文时经常会遇到这种情况:作者写了"经过化简,可得……",中间跳过了三五步。
如果符号运算不够熟练,这几步跳跃会直接把你挡在门外。
如果熟练,你可以自己把这几步补上,真正"跟上"作者的思路,而不是被动接受结论。
同样一条规则,"知道"和"能闭着眼睛熟练运用"是两个能力层级。这一章练的就是后者。
从 (a+b)² 到多元展开
最基础的恒等式
几何视角:为什么多出一个"2ab"
把 理解成"边长为 a+b 的正方形的面积",可以把这个正方形切成 4 块:
| 区域 | 形状 | 面积 |
|---|---|---|
| 左上角 | 边长为 a 的正方形 | |
| 右上角 | 长 b、宽 a 的长方形 | |
| 左下角 | 长 a、宽 b 的长方形 | |
| 右下角 | 边长为 b 的正方形 |
四块面积加起来 。
这个"2ab"不是凭空冒出来的,而是两个交叉的长方形。点击下方"展开"按钮,看四块面积如何分开。
推广到三个变量
按照"每一对变量都会产生一个交叉项"的规律,可以直接写出:
推导逻辑:把 看成 ,展开时每一项和每一项两两相乘。
相同变量相乘得到平方项(),不同变量相乘会出现两次(比如 和 ),合并后就是 。
推广到向量
这个规律在向量运算里以另一种形式反复出现,比如计算两个向量差的模长平方:
本质就是把 里的"数"换成了"向量",把"乘法"换成了"点积"。
看到论文里出现类似的展开,可以直接联想到这里学的规则--新公式往往是旧规则换了一层皮,这正是"符号运算能力"帮你"看穿"新公式的方式。
实例
# 思路:随便代入几个数,看等式两边是否相等
for a, b in [(2, 3), (5, 1), (0.5, 2.5), (-1, 4)]:
lhs = (a + b) ** 2 # 左边:(a+b)²
rhs = a ** 2 + 2 * a * b + b ** 2 # 右边:a² + 2ab + b²
print(a, b, abs(lhs - rhs) < 1e-12)
# 顺便验证向量版本:‖x - y‖² = ‖x‖² - 2x·y + ‖y‖²
import math
x, y = (3, 4), (1, 2)
lhs = (x[0]-y[0])**2 + (x[1]-y[1])**2
rhs = (x[0]**2 + x[1]**2) - 2*(x[0]*y[0] + x[1]*y[1]) + (y[0]**2 + y[1]**2)
print(abs(lhs - rhs) < 1e-12)
执行以上代码输出结果为:
2 3 True 5 1 True 0.5 2.5 True -1 4 True True
这个"随机代入验证"的方法非常实用:忘了公式细节时,代几个数就能确认自己记的版本对不对。
练习:展开 和 。
点击查看答案
分别把 和 代入 即可。
化简、变形、配方
配方法:把一般式变成"顶点式"
配方法的目标是把 这种"缺一块"的式子,凑成一个完整的平方:
例题:把 配方,得到 。
验证:展开 ,确实相等。
配方法的两个典型用途:
| 用途 | 做法 | 例子 |
|---|---|---|
| 求二次函数顶点 | 直接看出顶点 (-3, -7),不需要画图或求导 | |
| 凑完全平方简化推导 | 把复杂多项式凑成平方项 | 最小二乘法、正态分布最大似然估计的中间步骤 |
化简的一般思路
遇到一个复杂表达式,通常按这个顺序尝试:
| 顺序 | 技巧 | 说明 |
|---|---|---|
| 1 | 合并同类项 | 把相同的变量幂次合并 |
| 2 | 提取公因式 | 找出所有项共有的因子提出来 |
| 3 | 利用恒等式 | 套用 、 等现成公式 |
| 4 | 换元 | 反复出现的复杂子表达式用新变量代替 |
换元法例题:化简 。
令 t = x² + 1
原式 = t² - 3t + 2 = (t-1)(t-2)
代回 t:
= (x²+1-1)(x²+1-2)
= x² · (x²-1)
= x⁴ - x²
能不能自己推导公式,是分水岭
"看懂"和"能推"是两个能力层级
| 层级 | 表现 |
|---|---|
| 能读懂 | 看着推导步骤,能理解"这一步为什么成立" |
| 能推导 | 合上书,自己能把这几步重新走一遍 |
很多人卡在论文阅读上,卡的不是"新知识",而是这一层:公式用到的都是前三章讲过的规则,只是需要在没有提示的情况下自己组织出正确的步骤顺序。
完整推导练习:均方误差的最小值
问题:给定 n 个数据点,想找一个常数 c,使得所有点到 c 的"平方距离之和" 最小,求最优的 c。
推导过程:
设 f(c) = Σᵢ (xᵢ - c)²
展开每一项(用到 (a-b)² 公式):
f(c) = Σᵢ (xᵢ² - 2cxᵢ + c²)
= Σᵢ xᵢ² - 2c·Σᵢxᵢ + n·c² (把 Σ 拆到每一项,c 是常数可以提出来)
这是关于 c 的二次函数,开口向上(c² 系数为 n > 0),
顶点(最小值点)在 c = -B/2A,这里 B = -2Σxᵢ,A = n
代入:c = -(-2Σxᵢ) / (2n) = Σxᵢ / n
结论:最优的 c 正好是所有数据点的平均值。
这个推导只用了本章和第一章的知识(平方展开、Σ 求和、二次函数顶点公式),却推出了统计学里"为什么均值是最小化平方误差的最优点"这个重要结论。
拖动滑块亲手验证:c 偏离平均值时,平方距离之和如何变大。
实例
data = [1, 3, 4, 8, 9]
mean = sum(data) / len(data)
def sq_error(c):
"""f(c) = Σ(xᵢ - c)²"""
return sum((x - c) ** 2 for x in data)
print(mean) # 均值 = 5
print(sq_error(mean)) # c = 均值时的误差
# 对比几个偏离均值的 c:误差都更大
for c in [0, 3, 5, 7, 10]:
print(c, sq_error(c))
执行以上代码输出结果为:
5.0 46.0 0 171 3 66 5 46 7 66 10 171
注意 c=3 和 c=7 的误差相等(都是 66)--它们到均值 5 的距离相同,这正是抛物线"关于顶点对称"的体现。
练习:尝试不看上文,独立重新推导一遍"均值最小化平方误差"的过程,只用三个工具:平方展开公式、Σ 的线性性质、二次函数顶点公式。
点击查看答案
展开 ,识别为开口向上的二次函数,顶点 ,即均值。
本章小结
| 技能 | 一句话核心 |
|---|---|
| (a+b)² 展开 | 几何上是"切正方形",交叉项来自两个方向的乘积,可推广到多变量和向量 |
| 配方法 | 把"缺一块"的式子凑成完整平方,用于求顶点、简化推导 |
| 化简思路 | 合并同类项 → 提取公因式 → 套用恒等式 → 换元 |
| 独立推导 | 能不看答案重新走一遍推导,是读懂论文公式的分水岭 |
