牛顿第二定律给出力与运动的因果:质量乘加速度等于合力。在其上建立的动量定理(冲量改变动量)与动能定理(功改变动能)是两大过程守恒工具,碰撞、冲击、缓冲类问题靠它们"只看始末、不问中间"。本节完成三件事:列运动方程并数值求解、掌握三大定理的适用边界、建立"先选定理再动笔"的习惯。
本章支柱页交代了动力学的双轨:逐瞬时因果与过程量守恒。本节是双轨的平动部分;下一节把同样的框架搬到转动。往前接第 2 章的加速度定义,往后通向第 6 章振动的质量—弹簧方程。
牛顿三定律里,第二定律是计算核心:合力等于质量乘加速度,加速度朝合力方向。第一定律给出惯性系的定义(定律成立的舞台),第三定律提供约束反力与主动力的桥梁——作用反作用等值反向共线,作用在两个物体上,所以它们在任何单个隔离体的平衡中都不同时出现。
跳伞是能把整条因果链演示干净的场景:重力恒定、空气阻力随速度增大,速度趋于一个终端值。
import numpy as np from scipy.integrate import solve_ivp # 跳伞者质量 80 kg,阻力 = k*v^2,k=0.25 kg/m(收起伞),g=9.81 m, k, g = 80.0, 0.25, 9.81 def rhs(t, s): v = s[0] return [g - (k / m) * v**2] sol = solve_ivp(rhs, [0, 20], [0.0], t_eval=np.linspace(0, 20, 201), rtol=1e-8) v_terminal = np.sqrt(m * g / k) print(f"理论终端速度 {v_terminal:.2f} m/s") print(f"数值解 20 s 末速度 {sol.y[0][-1]:.2f} m/s") half = v_terminal * 0.99 t99 = sol.t[np.searchsorted(sol.y[0], half)] print(f"达到终端速度 99% 用时约 {t99:.1f} s")
终端速度的物理画像:阻力涨到与重力抵消,加速度归零。改 k 重跑(开伞后 k 增大几十倍),终端速度立刻掉到安全范围——降落伞的全部原理就藏在 k 里。
动量定理说:合外力的冲量等于动量的增量。它的价值在碰撞场景:碰撞时间极短、力变化剧烈,逐瞬时积分不现实,而"冲量 = 动量变化"跳过中间细节。安全带与气囊做的是同一件事——同样的动量变化,把作用时间从毫秒拉到几十毫秒,峰值力就降一个量级。
import numpy as np # 64 km/h 正面撞墙,乘员质量 70 kg,位移约束下减速 v0 = 64 / 3.6 # m/s m = 70.0 dp = m * v0 # 动量变化量(末速为零) for name, dt in [("只靠车头压溃区 80 ms", 0.080), ("气囊+安全带 120 ms", 0.120)]: F_avg = dp / dt a_avg = v0 / dt / 9.81 print(f"{name}:平均冲击力 {F_avg/1000:.1f} kN,平均加速度 {a_avg:.1f} g") # 气囊把峰值力压低三分之一以上——这就是冲量定理的工程红利
动量守恒的条件是外力为零(或碰撞内力远大于外力),判断"能不能用"永远是第一步。
合力做的功等于动能的变化。它比动量定理更"挑方向":只有沿位移的力分量做功,法向力(比如轨道约束力)自动出局。这个特性使动能定理成为机构传力分析的天然工具——不需要理想约束力,能量收支直接结算。
import numpy as np # 单摆大角度摆动:用能量守恒直接算最低点速度,不积微分方程 L, g = 1.0, 9.81 for deg in [30, 60, 90, 150]: th = np.radians(deg) v = np.sqrt(2 * g * L * (1 - np.cos(th))) T = m = 1.0 # 质量 1 kg rope_T = m * g + m * v**2 / L # 最低点绳张力 = 重力 + 向心力需求 print(f"摆角 {deg:3d} 度:最低点速度 {v:.2f} m/s,绳张力 {rope_T:.1f} N")
注意绳张力那一列:摆到 150 度释放,最低点张力接近 3 倍重量。游乐场大摆锤的吊挂结构、起重机吊重突然起摆时的绳索载荷,都要按这个放大系数设计——这是动能定理送给结构工程师的见面礼。

下一节把这套因果语言推广到转动,并学会用达朗贝尔原理"假装这是静力学"。
牛顿第二定律的原始形式只适用恒定质量系统,火箭这类"一边飞一边扔质量"的系统需要把质量当成时间的函数处理:动量对时间求导时多出一项质量变化率乘速度。由此推出的齐奥尔科夫斯基方程给出火箭速度增量等于喷气速度乘质量比的对数——对数关系意味着速度翻倍需要质量比平方,这就是火箭"级数越加越多"的数学根源。
import numpy as np # 齐奥尔科夫斯基方程:dv = ve * ln(m0/mf) ve = 3000.0 # 排气速度 m/s for label, ratio in [("单级入轨草案", 15), ("两级组合", 100)]: dv = ve * np.log(ratio) print(f"质量比 {ratio:.0f}:速度增量 {dv/1000:.1f} km/s") # 对比:同样质量比下排气速度提高 20% 的收益 print("排气速度提高 20%:速度增量等比放大 1.2 倍——线性收益比对数收益划算")
变质量问题的价值在于提醒我们:守恒定律比牛顿定律原始形式更"宽容",在质量流动等场合依然成立,适用范围更宽的工具才配叫原理。