本节摘要:牛顿三定律是经典力学里不能再被证明的公理——惯性定律划定适用舞台,加速度定律给出定量的因果桥梁,作用反作用定律保证力成对出现。本节把三定律抠到可考核的精度,指出每条定律最容易被误读的地方,并用两个数值算例演示它们如何联手解题。
上一节把标本切好了,这一节回答法则问题:给定一个物体和它受的力,运动怎么算?牛顿在《自然哲学的数学原理》里给出的回答是三条定律,各管一摊:第一定律说"不受力会怎样",第二定律说"受力会怎样",第三定律说"力从哪里来、到哪里去"。三条合起来,才构成一个闭环——前两条管因果,第三条管出处。缺了任何一条,受力分析都会塌掉一角:没有第一定律,"隔离体上没画力就应平衡"失去依据;没有第二定律,方程无从写起;没有第三定律,约束反力就成了凭空捏造的数字。
公理的品格要交代清楚:三定律不能由更基本的力学原理推出,它们的正确性由整个演绎体系的推论与实验的一致性来背书。这也意味着它们有适用边界——宏观、低速、惯性参考系。微观世界交给量子力学,高速世界交给相对论,非惯性系的处理办法在第七章展开。边界之外三定律失效,边界之内它们精确得惊人。
第一定律(惯性定律):不受外力(或合外力为零)的物体保持静止或匀速直线运动。它暗中做了两件事:定义了惯性——物体抵抗运动状态改变的性质;划定了惯性系的候选资格——只有在惯性系里这定律才成立,而"哪些参考系够格当惯性系"本身要靠实验判定(地面近似够格,地心系更好,第七章细说)。
第二定律(加速度定律):动量的变化率与合外力成正比,即 F = dp/dt;质量不变时退化为 F = ma。常见误读有两个:其一,它是矢量方程,向 x、y、z 投影后是三条标量方程,只写一个方向等于扔掉另外两个方向的信息;其二,ma 是合外力的结果而不是第四个力——受力图上画一个"ma 力"是最经典的自欺,第七章讲达朗贝尔原理时会专门清算这个习惯。
第三定律(作用反作用定律):两个物体之间的作用力与反作用力沿同一直线、大小相等、方向相反、分别作用在两个物体上。最要紧的提醒:它们永远作用在不同物体上,永远不能相互抵消——能抵消的力必须作用在同一物体上。马拉车问题里"马拉车的力与车拉马的力相等,车怎么会被拉动"的经典困惑,就是把不同物体上的力错误地放进了同一个账户。
三条定律的组合拳打法可以浓缩成一句操作口诀:隔离对象,清点它受到的每一根力(第三定律保证每根力都能指认出施力者),求矢量和,令其等于质量乘加速度(第二定律),在惯性系里解算(第一定律验明舞台资格)。
定滑轮两端挂质量不同的物体,是最干净的"三定律教学病例":m1 = 2 kg 与 m2 = 3 kg 挂在不计质量、不计摩擦的定滑轮两侧,绳不可伸长。绳的张力是内力,隔离体图把它暴露出来——对 m1 与 m2 分别用第二定律,加上"绳不可伸长故两者加速度大小相等"这条约束,三个未知数(a、T)两条方程外加约束条件,恰好闭合。
# 阿特伍德机:牛顿第二定律 + 约束条件联立 g = 9.8 # 重力加速度 m/s^2 m1 = 2.0 # 左侧质量 kg m2 = 3.0 # 右侧质量 kg # 隔离 m1(轻的一侧向上加速):T - m1*g = m1*a # 隔离 m2(重的一侧向下加速):m2*g - T = m2*a # 两式相加消去 T: a = (m2 - m1) * g / (m1 + m2) # 回代任意一式求张力: T = m1 * (g + a) print("加速度 a =", a, "m/s^2") # 1.9600000000000002 print("张力 T =", T, "N") # 23.52 # 交叉验证:用 m2 的方程反算 T print("由 m2 反算 T =", m2 * (g - a), "N") # 23.52 # 张力介于两物体重力之间:22.0 N 与 29.4 N 之间,物理上说得通
注意张力 23.52 N 落在 m1 的重力(19.6 N)与 m2 的重力(29.4 N)之间——重的一侧要"拽得动"轻的一侧,绳既不能松到等于轻侧重力,也不能紧到等于重侧重力。这类"结果落在哪个区间"的物理直觉,是第八章极限检验方法的雏形。
地面上一人推两个紧挨着的箱子,F = 10 N 水平推 m1 = 2 kg,m1 前面顶着 m2 = 3 kg,接触面光滑。第三定律保证 m1 推 m2 与 m2 顶 m1 大小相等方向相反,设为 N;第二定律分别写在两个隔离体上;整体法与隔离法各列一遍,方程就闭合了。这个 N 不是装饰——箱子的结构强度校核、人手的受力感受,都由它决定。
# 推箱链条:整体法求 a,隔离法求接触力 N F = 10.0 # 推力 N m1 = 2.0 # 被推的箱子 kg m2 = 3.0 # 前面的箱子 kg a = F / (m1 + m2) # 整体:F = (m1+m2) a N = m2 * a # 隔离 m2:它只受 N,所以 N = m2 a print("整体加速度 a =", a, "m/s^2") # 2.0 print("接触力 N =", N, "N") # 6.0 # 验证 m1:F - N = 10 - 6 = 4 N,而 m1*a = 2*2 = 4 N,闭合 print("m1 校核:F 减 N =", F - N, ",m1*a =", m1 * a) # 4.0 4.0 # 若反过来推 m2 顶 m1:N' = m1*a = 4.0 N,接触力变小 print("换向推时 N =", m1 * a, "N") # 4.0
同一对箱子,从哪头推,接触力并不一样:推轻的顶重的,接触面承担 6 N;推重的顶轻的,只剩 4 N。作用反作用定律在这里的价值是账目性质的——每根力都能指认施力者与受力者,两个物体各记一笔、方向相反、绝不混账。
这道题还有个值得动手的变式:把水平推力改成斜向下三十度压着 m1 推,推力便多出一个竖直分量,地面对整体的支持力随之变大;若接触面有摩擦,支付上限也跟着水涨船高。同一套隔离流程原样再走一遍,账目多一行而已。变式训练的意义在于检验流程是否真被掌握:对象换了、方向换了,五步不动——这才是"方法"与"套路"的分界线。
⚠️ 常见坑:在受力图上给同一个物体画上"离心力""ma 力"再与真实力求和。第二定律的 m a 是方程右端的结果项,不是作用在该物体上的力;非惯性系引入的惯性力是另一套规则,两者不可混用。
要点复盘:
本节把法则备齐,下一节解决刻度问题:参考系怎么选才算惯性系,单位怎么统一,以及在动手细算之前如何用量纲分析预估答案的形态。