本站摘要:伽利略变换与麦克斯韦方程组的冲突不是笼统的"不一样",而是精确的一条:波动方程在旧表换系后改变形状。本节用数值演示把这条裂缝找出来,并盘点当年物理学家修补它的三条路线——每条都通向别扭。
第二章证明了旧表在实验上已经资不抵债(零结果、同时性纠纷),本站从方程层面出具验尸报告,通往 3.2 的新表推导。
麦克斯韦方程组在真空里化简出一个波动方程,一维形式写作:电场对时间的二阶导数等于 c 平方乘以电场对空间的二阶导数。这个方程的解是以速度 c 传播的波。问题来了——导数是相对特定坐标变量取的,换参考系就要按链式法则换算导数,方程的形式可能跟着变。
用伽利略变换搬这道方程:t 撇等于 t,x 撇等于 x 减 v 乘 t。求导链式法则展开后,新系里的方程多出两项——一阶时间导数项和一阶空间导数项。用一句直观的话说:在旧表下,一个惯性系里的"纯波动",到另一个惯性系里成了"流动中的波动",方程不再自持。波动方程的形状没有守住。
# 演算 1:伽利略换系后波速如何改变(数值演示) # 波在 S 系以速度 c 向右传播:波形 f(x - c*t) # 换到以速度 v 追波的 S' 系:x = x' + v*t, t = t' import math c = 1.0 # 归一化波速 v = 0.6 # 追赶者速度 def wave(x, t): return math.sin(2*math.pi*(x - c*t)) # S 系中的行波 # S 系:固定 x=0 处,相邻两个波峰的时间间隔 = 周期 T T = 1.0 # S' 系:追赶者看到的波峰间距被拉长,波速应为 c - v print("S 系测得波速:", c) print("伽利略预言 S' 系波速:", c - v) # 输出: 0.4 # 验证:波峰在 S 系满足 x = c*t;在 S' 系坐标 x' = x - v*t = (c-v)*t # 波峰位置(S' 系)随时间线性斜率为 c-v —— 波速确实变成 0.4 # 若这束波是光:c 变 0.4c,但迈克尔逊-莫雷实验说各向光速都是 c。 # 裂缝就在这里:旧表守不住波动方程,也就守不住麦克斯韦。
演算 1 用一列正弦波演示了裂缝的机理:旧表下波速随参考系线性缩水。声波确实如此(介质提供绝对参照),但 1.3 的实验宣判光不如此。要么麦克斯韦方程只在以太系成立,要么旧表必须重写——这是第一章两难的技术重述。
面对裂缝,十九世纪末的物理学家提出过三条路线,值得逐一验尸:
| 路线 | 做法 | 代价 |
|---|---|---|
| 以太优选系 | 承认方程只在以太系成立 | 迈克尔逊-莫雷零结果直接否决 |
| 修改麦克斯韦 | 让方程容纳伽利略变换 | 与所有电磁实验矛盾,无人成功 |
| 修改变换表 | 让方程在新表下保持形式 | 时间空间概念需要重建(爱因斯坦路线) |
第三条路线在当时看来最激进——动"时间"这个词本身就是挑衅——但它是唯一走得通的。3.2 节将执行这条路线:保留麦克斯韦方程,把换算表换成能让波动方程保形的那种。
# 演算 2:新表需要在"追光者"处交付什么 # 洛伦兹换算下(3.2 推出),S' 系波速 u' = (u - v) / (1 - u*v/c^2) c = 1.0 def lorentz_sub(u, v): return (u - v) / (1 - u*v/c**2) for u_label, u, v in [("光速波 c", 1.0, 0.6), ("光速波 c", 1.0, 0.9), ("声速类波 0.3", 0.3, 0.1)]: up = lorentz_sub(u, v) print(f"{u_label}, v={v}: 新表给出 S' 系波速 = {up:.6f}") # 输出: # 光速波 c, v=0.6: 新表给出 S' 系波速 = 1.000000 # 光速波 c, v=0.9: 新表给出 S' 系波速 = 1.000000 # 声速类波 0.3, v=0.1: 新表给出 S' 系波速 = 0.217391 # 注意:速度为 c 的波在新表下不变(这正是设计目标); # 低速波(如声)在新表下近似 c-v=0.2,与伽利略差 1.7%,日常听不出区别。
演算 2 展示了新表的目标规格:光速输入永远输出光速;低速输入则与旧表几乎一致——旧表的低速精度必须被新表继承,否则牛顿力学两百年战绩无法解释。这个"既要刹车又要兼容"的规格,决定了新表只能是 3.2 节即将解出的那种特定形式。
最后做一次新旧数值对照,看旧表在 0.6c 档位的具体误差——这组数字同时预演了 3.2 的成品:
# 演算 3:旧表 vs 新表——同一事件的两种搬运(v=0.6c) c = 299_792_458 v = 0.6 * c g = 1.25 # 3.2 将解出 A=gamma,此处先引用 for x in [+150.0, -150.0]: # 车厢中部前后各 150 米处的事件,t=2 微秒 t = 2.0e-6 t_new = g * (t - v*x/c**2) # 新表:时间要掺入位置 x_new = g * (x - v*t) print(f"x={x:+.0f}米: 旧表(2.000微秒, {x - v*t:+.1f}米) → 新表({t_new*1e6:.3f}微秒, {x_new:+.1f}米)") # 输出: # x=+150米: 旧表(2.000微秒, -209.8米) → 新表(2.125微秒, -262.2米) # x=-150米: 旧表(2.000微秒, -509.8米) → 新表(2.875微秒, -637.2米) # 旧表把两次搬运的时间都记成 2 微秒;新表按位置分账:+150 米处快 0.125 微秒, # -150 米处慢 0.875 微秒——0.75 微秒的分歧正是 2.1 节闪光案的全貌。
对照表读出三层信息:时间不再全场一律(位置参与换算)、空间差被γ放大(−509.8 对 −637.2 米)、且两个误差都是现代原子钟可测的量级——旧表在 0.6c 的世界里不是"略有偏差",是系统性错账。
⚠️ 概念提醒:说"伽利略变换错了"仍要加限定——它是洛伦兹变换在低速下的近似(3.2 末将数值验证),错的是把它当精确规律的地位。科学的更替常常不是拆楼,是换地基。
💡 注意一个反差:洛伦兹本人 1904 年已写出几乎一样的公式,却坚持"收缩是真实的力学效应""地方时间是数学技巧"。同样的方程,配上"这是近似/这是补丁"的解读就是旧物理,配上"这是时空本身"的解读就是相对论——公式不选边,解读见真章。
验尸报告完毕。下一节动手术:从两条公设出发,把新换算表一行一行解出来。