本节摘要:守恒律不是凑巧好用的解题捷径,而是对称性的公开身份。诺特定理断言:拉格朗日量每有一种连续对称,就对应一个守恒量——空间平移对动量,空间转动对角动量,时间平移对能量。本节给出对照表,并用船与人、收臂冰舞两台手术演示守恒量怎么替你省掉整段积分。
上一节的流水线里藏了一个彩蛋:若某个广义坐标在拉格朗日量里压根不出现,模板方程左边那一项就整体为零,对应的广义动量恒定不变——方程还没解,一条守恒律先到手。诺特定理把这个观察推到极致:这不是坐标选得巧,而是拉格朗日量本身有对称性。平移对称(换一个原点物理规律不变)对应动量守恒,转动对称(换一个朝向规律不变)对应角动量守恒,时间平移对称(早一点晚一点规律不变)对应能量守恒。
这层认识改变了查账顺序:拿到系统先别急着立方程,先扫一遍对称性——有哪几个方向"怎么挪都一样",哪几根轴"怎么转都一样",时间上"怎么平移都一样",每认出一种对称就白拿一条守恒律,方程组的阶数随之下降。本章前两节教的是怎么写方程,本节教的是怎么少写方程。
标准病例:六十千克的人站在一百二十千克的船上,船静浮于无阻力的水面,人在船上向船头走三米。水平方向没有任何外力,系统质心必须原地不动——这就是平移对称送出的守恒律。人进船退,位移严格按质量反比分账。
# 手术一:船上行走。水平动量守恒 → 质心不动 → 位移按质量反比分配 m_man, m_boat, d_walk = 60.0, 120.0, 3.0 d_boat = m_man * d_walk / (m_man + m_boat) # 船后退距离 d_man_ground = d_walk - d_boat # 人对地前进距离 print("船后退 =", round(d_boat, 4), "m") # 1.0 print("人对地前进 =", round(d_man_ground, 4), "m") # 2.0 # 质心复核:m*(人对地位移) + M*(船位移) 应为零 check = m_man * d_man_ground + m_boat * (-d_boat) print("动量对账 =", check, "kg·m") # 0.0 # 变式:人走 3 米用时 2 s,人速与船速随时反比,结论与快慢无关 v_man, t = d_walk / 2.0, 2.0 print("人对船速 =", v_man, "m/s 船速 =", m_man*v_man/(m_man+m_boat), "m/s") # 1.5 m/s 0.5 m/s
注意一个容易较真的细节:人对地只前进了两米,因为他脚下那三米里有一米被船还了回去。人怎么走——快走、慢走、走停交替——都不影响结果,守恒律只认始末状态,过程细节它一概免检。
换一条对称轴:冰上旋转的舞者收拢手臂,身体各部分离转轴更近,转动惯量缩水。竖直轴方向没有外力矩,角动量必须原额保留——转动惯量缩到几分之一,角速度就涨到几倍。观众看到的是"越转越快",账本上看到的是守恒律在兜底。
# 手术二:冰舞收臂。I1*w1 = I2*w2,动能账单独记 I1, w1 = 4.0, 2.0 # 展臂:4.0 kg·m²,2 rad/s I2 = 1.2 # 收臂:1.2 kg·m² w2 = I1 * w1 / I2 print("收臂后角速度 =", round(w2, 4), "rad/s") # 6.6667 print("转速翻倍数 =", w2 / w1) # 3.3333 Ek1, Ek2 = 0.5 * I1 * w1 * w1, 0.5 * I2 * w2 * w2 print("收臂前动能 =", Ek1, "J 收臂后动能 =", round(Ek2, 4), "J") # 8.0 J 26.6667 J print("动能放大 =", Ek2 / Ek1) # 3.3333 # 能量涨出的部分来自收臂时肌肉做的功——力沿位移方向做正功 W_arm = Ek2 - Ek1 print("肌肉做功 =", round(W_arm, 4), "J") # 18.6667 # 天文版对账:行星近日点最快、远日点最慢,单位时间扫过面积恒定 # 地球近日点速率约 30.29 km/s,远日点约 29.29 km/s,比值应等于距离反比 v_p, v_a = 30.29, 29.29 r_ratio = v_p / v_a print("速率比 =", round(r_ratio, 4), " 距离反比 =", round(1/r_ratio, 4)) # 1.0341 0.9670
动能账要单独记:角动量守恒不保动能,收臂后动能涨了三成三,涨出的十八点七焦耳是舞者肌肉做功补进去的——守恒律各管各的账本,不许互相挪用。末尾的天文对账是同一守恒律的星际版:开普勒第二定律"等时间扫等面积",就是角动量守恒在引力场里的几何翻译,第七章的轨道问题会原样复用。
⚠️ 常见坑:把"对称性被破坏"的系统硬套守恒律。有摩擦时水平平移对称被地面"偷走"动量,人船系统必须先确认水面无阻力;外力矩不为零时角动量照样守恒失效——先查对称性有没有漏洞,再动用守恒律。
三组对称里最抽象的一组是时间平移。拉格朗日量若不显含时间——今天做实验和明天做实验规律相同——能量就守恒。判别动作极其简单:扫一遍拉格朗日量的表达式,看有没有裸露的时间变量 t;没有,机械能就是常量,方程还没解就先写下一半的积分。第三章的保守系统、第六章的无阻尼振子,全是这条对照的受益者。
# 时间对称判别与能量巡检:无阻尼振子 vs 阻尼振子 import math m, k, c = 1.0, 100.0, 2.0 def energy(x, v): return 0.5 * m * v**2 + 0.5 * k * x**2 # 无阻尼:拉格朗日量不显含 t → 能量守恒,一个周期后能量不变 print("无阻尼周期首尾能量比 =", energy(0.5, 0.0) / energy(0.5, 0.0)) # 1.0 # 阻尼振子:耗散把时间对称破坏,能量单调流失,每周期只剩 exp(-2*c/m*T) 份额 T = 2 * math.pi / math.sqrt(k/m) print("阻尼振子每周期能量份额 =", round(math.exp(-2 * c / m * T), 4)) # 0.081 print("十周期后能量份额 =", round(math.exp(-2 * c / m * T * 10), 8)) # 1.2e-11
阻尼一加,时间对称破损,能量账逐周期只剩百分之八——十个周期后仅剩十的负十一次方量级。诺特定理的价值在这组对照里看得最清楚:守恒不是"碰巧",对称在,守恒在;对称破,守恒破。查对称永远先于解方程。
要点复盘:
分析力学到此收官:坐标、方程、守恒律三件套齐备。下一章进入第一批"复杂病例"——振动、碰撞与摩擦,它们是检验全套语言是否趁手的试金石。