为什么AI,物理学家顶尖的人才总是出现在欧美?原因出现在这!
"物理太难教 —— 不是学生笨,是教学方式错了。我们让学生记各种枯燥公式,却没有弄懂公式的基本含义、它们在现实生活中代表什么。" —— 清华某教授 / 马斯克的教学观
"我们的大脑只记住有现实意义的事物。要了解事物的原因,才能自然地把知识吸收进去。"
“培养训练你的物理直觉,就是让你的本能反应就是正确的,接近客观计算的结果 ” -- 杨振宁
数学教育的另一个深层失败,是把数学从它出生的物理土壤里连根拔起,端到课堂上当成一堆抽象符号让学生背。但几乎每一条重要的数学公式,最初都是在回答一个具体的物理问题 —— 把那个问题剥掉,公式就成了不可理解的咒语。
这一章和 Chapter 0、0.5 是一组元章节:0 教换视角,0.5 教读公式,0.7 教追溯公式回到它出生的物理现象。三章合起来,是这个项目的"如何学",而 Chapter 1–7 是"学什么"。
0.7.1 大脑的进化规律:只记得住"有现实意义的事"
人类大脑从未为"记住抽象符号"而进化 —— 它进化出来是为了预测真实世界里下一秒会发生什么:一只猛兽、一颗果子、一场暴雨。教学方式如果违背这条进化规律,再聪明的学生也只会"考完就忘"。
"我们的大脑只记住有现实意义的事物。要了解事物的原因,才能自然地把知识吸收进去。" —— 同上
这是为什么"先讲公式,再举几个例题"的标准课堂结构是反认知的:例题在大脑里只是公式的注脚,而不是公式的来源。反过来才对 —— 先抛出现象(炮弹为什么走抛物线?为什么共振能震塌大桥?为什么火星轨道是椭圆?),让学生在好奇心张到最大时亲手把现象拆开,公式就会自然地从拆解过程中浮现。
0.7.2 内燃机式学习:拆开 → 端详 → 装回去
"假如我们想了解内燃机的工作原理,那最好的办法就是把它拆开,查看每一个零件,再把它们组装回去。"
这正是本项目对待每一条数学公式的方式:
- 找到这条公式诞生时所要解决的真实物理问题(例如:傅里叶级数 ← 蒸汽机金属杆的散热)。
- 用 PyTorch / 数值方法把那个物理现象先模拟出来(先有"火星轨道是椭圆"的仿真画面,再讨论二阶 ODE)。
- 拆开仿真代码里每一行,看每个数学零件(导数、积分、矩阵、傅里叶基)各承担什么角色。
- 把零件重新组装成现代形式(例如把欧拉法重写成
torch.autograd+optimizer.step())。 - 回到现象:调一下参数,看看现象怎么变 —— 这是理解公式和记忆公式的本质区别。
0.7.3 数学公式 ↔ 物理现象的字典
| 数学对象 | 它最早回答的物理问题 | 拆开后看到的零件 | 现代化身 |
|---|---|---|---|
| 导数 \(\dfrac{dy}{dx}\) | 落体瞬时速度(伽利略 1638、牛顿 1666) | 极限缩小的差商 | torch.autograd.grad |
| 二阶导 \(\ddot{x}\) | 加速度 → 牛顿第二定律 \(F=ma\) | 速度的变化率 | RNN / 神经 ODE 的状态更新 |
| 积分 \(\int v\,dt\) | 累计走过的路程 / 弹道射程 | 黎曼和 | 蒙特卡洛、ELBO |
| 微分方程 | 弹簧、单摆、RC 电路、热传导 | 同一个方程描述全部 | 神经 ODE、扩散模型 |
| 复指数 \(e^{i\omega t}\) | 交流电、谐振子、量子相位 | 旋转 = 频率 | FFT、Transformer 位置编码 |
| 拉普拉斯算子 \(\nabla^2\) | 静电势、稳态温度、引力势 | "邻居的平均 − 自己" | 图卷积网络 (GCN) |
| 傅里叶变换 | 棱镜分光、声音分解、热传导 | 把复杂波拆成纯音叠加 | JPEG、MP3、CNN 卷积核 |
| 最小作用量原理 | 光走最短路径、力学轨迹 | 拉格朗日量、欧拉-拉格朗日方程 | 强化学习的策略梯度 |
| 李群 / 对称性 | 诺特定理 1918:守恒律 ↔ 对称性 | 时间平移 → 能量守恒 | 等变神经网络 |
| 张量 | 弹性应力、惯性矩、广义相对论 | 多方向间的耦合系数 | torch.Tensor 这个名字 |
| 哈密顿量 \(H\) | 经典力学相空间、量子力学 | 能量 = 动能 + 势能 | 哈密顿蒙特卡洛 (HMC) |
| 概率分布 | 玻尔兹曼 1877:分子热运动 | 微观状态数 → 熵 | 扩散模型、能量基模型 |
| 矩阵乘法 | 海森堡 1925:原子光谱 | 算子的复合 | nn.Linear 的全部 |
一句话:数学不是凭空发明的形式系统,而是物理现象在符号上的留影。 看不到现象就看不懂公式;看见了现象,公式就成了你早就认识的老朋友的一张照片。
0.7.4 问题驱动 vs 工具驱动 —— 课堂的两种走向
| 工具驱动(标准课堂) | 问题驱动(本项目) | |
|---|---|---|
| 起点 | "今天我们学傅里叶级数。" | "蒸汽机金属杆为什么会烫坏?傅里叶 1807 年是怎么算出来的?" |
| 公式来源 | 老师板书定义 | 学生从仿真现象里反推出来 |
| 学生角色 | 记号管理员 | 现象侦探 |
| 记忆机制 | 反复抄写 → 短期记忆 | 关联现实 → 长期记忆 |
| 迁移能力 | 只会做"做过的题" | 见到新现象会主动找数学工具 |
这条原则贯穿 Chapter 1–7 的每一个脚本:先问"这是为了解决什么真实问题",再写代码,最后才让公式作为副产品出现。
0.7.5 可视化与代码
- 可视化(每个脚本都先放出物理现象的动图,再揭示背后数学):
- 落体与抛物线:伽利略斜面实验复现 → 二次曲线如何"自动浮现"
- 单摆 → 二阶 ODE:从悬挂质点的实拍轨迹反推 \(\ddot\theta + \frac{g}{L}\sin\theta = 0\)
- 弹簧 → 谐振子 → 矩阵指数 \(e^{At}\):让"矩阵指数"从弹簧弹回去的动画里浮现
- RC 电路充放电 ↔ 放射性衰变 ↔ 银行复利:同一个 \(\dot{y} = -ky\) 在三个看似无关现象里
- 共振:用音叉、塔科马大桥视频佐证微分方程的频率响应
- 蒸汽机金属杆散热(接 Chapter 5 的傅里叶):先有热成像图,再有偏微分方程
- 行星椭圆轨道:复现开普勒 1609 年的火星轨道反推
- 内燃机 PV 图:把卡诺循环画成 \(\oint p\,dV\) —— 积分就是"做的功"
- 代码:
ch00_7_physics_first/ falling_body_to_derivative.py—— 自由落体仿真 → 数值微分 → 牛顿的 \(\dot{x}\)pendulum_to_ode.py—— 单摆轨迹拟合 → 让 ODE 自动现身(torch + scipy)spring_matrix_exp.py—— 二维谐振子用 \(e^{At}\) 解,揭示矩阵指数 = 旋转rc_decay_unification.py—— RC、放射性、复利三组数据用同一个 ODE 拟合resonance_tacoma.py—— 强迫振动的频率响应曲线 + 塔科马桥视频对照kepler_from_observation.py—— 仅从离散观测点反推椭圆轨道(呼应 ch04 谷神星)engine_pv_cycle.py—— 卡诺循环的 PV 图 → \(\oint p\,dV\) → 积分作为"功"noether_symmetry.py—— 用 SymPy 验证:时间平移对称 ⇒ 能量守恒(诺特定理 1918)
元教学意义:本章是 Chapter 0、0.5 之外的第三块基石。读完后,每学一个新数学概念都自动问一句: "这条公式当年是为了解释什么物理现象?把那个现象的代码先写出来,公式还会让我害怕吗?" —— 这是把数学从"应试符号"还原成"思维语言"的最短路径。
本文小结:很多年前,我在北京和一个英国留学的博士的朋友谈论国内物理教育,他形象的比喻了如何学空气动力学:国内是先学空气动力学课本一堆的枯燥公式物理定律理论,最后都没了兴趣,大部分人连飞机都没摸过就放弃了。而欧美很多国家是反过来,先上来直接拆开飞机,然后组装回去,再风洞跑一跑自己做的飞机和模型,最后才来学空气动力学。我想把这个例子也送给读者,也是本文的核心。