最小作用量原理、莫培督原理、哈密顿原理、变分原理分别是什么?
4 个回答
前言
最小作用量原理被称为物理中的“第一性原理”,其地位可见一斑。我出于对物理规律普适性的向往,折腾了三个多月写出这篇三万七千字的长文,终于了却了自己的这个心愿。
本着自己懂不如大家懂的原则,我尽力把文字写得很通俗。作为文章里最大的拦路虎——数学,以高中生所具备的基础出发,我遵循懂思想、重定义、足够用的原则娓娓道来,其难度绝对赶不上高考数学题。信不信由你,你敢挑战不?
一、伟大的牛顿运动定律之困惑
神人牛顿出版的著作《自然哲学的数学原理》里,众人皆知的牛顿运动定律和万有引力定律给人类认识自然提供了有力的武器,以至于牛顿之后的科学家认为只要找出物体的受力和运动的初始条件,就能搞清楚物体之后的运动规律。从这个角度来说,牛顿的光环太耀眼,导致18世纪的物理学界再没出现过像他这样的集大成者。虽然如此,但是在具体的复杂问题中怎样把牛顿运动定律变得好用还是大有可为的。
牛顿运动定律是为回答物体怎样做机械运动而生的一个力学体系, 也就是要弄清楚物体的位置随时间会发生怎样的变化 。要完成这一光荣的使命,牛顿运动定律其实是会挑对象的—— 研究的物体要能被看成质点 。
什么?要知道质点本就是个理想模型,现实世界里哪有真正的质点呢?要是牛顿运动定律只能用在质点身上,那它岂不是一点用都没有?
别急别急,我不是这个意思。对于实际的物体来说,虽然不能把它看成质点,但是可以把它看成由大量质点组成的集合呀。对于这个集合体来说,若这些质点的运动都一样,咱们依旧能用一个质点来做个代表;否则就必须隔离每个质点进行单独地详尽研究。高中物理里的“板、块”模型就是这样一类典型问题,有没有想起被它支配的恐惧呢?要是再多几个板或块,是不是就想直接放弃了呢?
“板、块”已经是非常简化的模型了,要是换成杆呀、滑轮呀、支架呀等更实际的部件时,岂不是更要头大?究其原因,就是往往需要咱们隔离各个对象进行分析。然而更要命的是这些实际的部件会给咱们的待研究对象施加各种各样的约束,而且这些约束对于对象施加的作用力几乎都是事先未知的。
等等,约束是个啥?简单的说, 就是物体不能随心所欲地运动,其运动轨迹被这些器件限制在某条线或者面上 。
呃,干嘛要去研究这些复杂的器件呀,这不自讨苦吃嘛?嗨,谁说不是呢,可是历史的车轮来到了工业革命,哪个机器上不带点这些器件呢?而各种机器的制造不得依靠理论指导实践么?这不,大家的目光自然就落在了牛顿运动定律身上了撒。牛顿运动定律虽然是强有力的理论武器,但是当用它解决这些形形色色的约束问题时也会显得困难重重。
另外,牛顿运动定律用在复杂问题中显得麻烦的原因还在于其核心—— {\bf{F}} = m{\bf{a}} 是一个矢量表达式(本文的所有矢量均用黑体字母表示)。而在具体计算的时候都是用它的分量式,也就是高中生非常熟悉的正交分解法。即在空间直角坐标系里,把力和运动分别沿三个坐标轴的方向进行分解,化矢量运算为代数运算。如此一来,一个矢量方程就变成了三个标量方程:
\left\{ \begin{array}{l}{F_x} = m{a_x}\\{F_y} = m{a_y}\\{F_z} = m{a_z}\end{array} \right. \\
要是再考虑约束条件带来的方程,总的方程数量会更多。这还只是针对一个对象的方程数量,要是涉及更多的对象,其方程总数就多得去了。
这里只看一个高中物理里的简单例子就能有所体会。一个质量为 m 的小球在竖直平面内沿半径为 R 的圆形轨道做圆周运动,此刻它以速度 v 运动到图中的 P 点,其到圆心的连线与竖直方向成 \theta 角。
为了写出分量方程,这里将圆心选为原点,建立如上图所示的直角坐标系。则写出的方程为:
\left\{ \begin{array}{l}mg - {F_N}\cos \theta = m{a_y}\\{F_N}\sin \theta = m{a_x}\end{array} \right. \\
方程组里除了质量 m 、重力加速度 g 和夹角 \theta 已知外,还有三个未知量。要解出所有的结果,显然还差一个方程。不过咱还可以利用约束条件,由于小球始终在圆轨道上运动,其到圆心的距离始终不变,所以有:
{x^2} + {y^2} = {R^2} \\
这里的 x 和 y 就是小球在 P 点的坐标。如此一来,又多了两个未知量,还得再利用运动学的公式,分别将其和 {v_x} 、 {a_x} 与 {v_y} 、 {a_y} 联系起来。由于小球在两个方向上做的不是匀变速直线运动,咱们还只能写成微分方程的形式(关于微分,下一节马上就说到,别怕哈)。你看,这么捣鼓下来,共有五个未知数、五个方程,其中还有微分方程,求解难道可想而知了。
看完上一段文字是不是一脸蒙圈?圆周运动哪有这么干的呢?不应该是在 P 点沿法向和切向建立坐标系吗?而且也用不着用 x 和 y 来表示小球的位置关系,一个夹角 \theta 就搞定了呀。
对对对,你说得都对,这么干确实简单得不得了。因为法向方向的方程为:
{F_N} - mg\cos \theta = \frac{{m{v^2}}}{R} \\
这么一来,轨道对小球的支持力就直接给求出来了。 请注意一下这里的因果关系:支持力的大小是随着速度大小的变化而变化的,其值事先未知 。
假如我不关心支持力,只想知道小球沿圆周运动时的速度大小的变化特点,那么切向方向的方程送给你:
mg\sin \theta = m{a_t} \\
至于切向加速度与速度之间的关系可以通过简单的微分方程来确定。
天呐,不仅方程数量锐减,而且求解难度也大大降低了!你对物理又开始爱了吧?
细心的读者可能已经发现了,咱们不过是换了一个坐标系而已,依旧是用牛顿运动定律的套路来求解问题。本来嘛,这不正显出了牛顿运动定律的伟大么?管天管地管空气,牛爷就是这么傲娇。但是咱们要思考的是:更换坐标系是不是一种简化计算的通用方法呢?面对数量众多的矢量分量方程,咱们能有更好的办法来精简方程数量吗?
这些问题亟待大神们各显神通去解决,咱们在瞻仰大佬们的成果之前得先增添一些简单的数学武器。毕竟工欲善其事,必先利其器。
二、并不可怕的微积分
有关微积分的思想,大家可以去阅读我之前写的文章( 戳我 )。这里将围绕着微积分的定义引出后面要用到的一些工具。
说到微分就必须先提到导数。无论是某些物理量的定义——比如速度 v = \frac{{\Delta x}}{{\Delta t}} 、加速度 a = \frac{{\Delta v}}{{\Delta t}} 等,还是几何中为了衡量图线的倾斜程度, 最终殊途同归到一个词——变化率,也就是一个量的变化值比上另一个量的变化值 。
以形象直观的图形来说,要反映图中倾斜直线的倾斜程度,显然是图中的角度 \theta (0到90度范围内)越大,直线就越陡峭。而角度 \theta 的大小可以由其正切值来反映: \tan \theta = \frac{{\Delta y}}{{\Delta x}} ,此值被称为直线的斜率。
从图中可以发现,对于直线来说,无论哪一段的倾斜程度都是一样的。这很好理解,如果物体始终做匀速直线运动,无论用哪一段的位移除以对应的时间,求出来的速度都是一样的。但是相比直线,曲线更常见;对于运动来说,变速运动也更常见。如此一来,曲线上不同部位的倾斜程度就不一样了。 所以我们就会更关心曲线上每处的倾斜情况如何 。
那么问题就来了,过曲线上一点可以画出无数条直线,哪条直线才是反映该处的倾斜程度呢?
从直线斜率的计算可以看到,要出现 \Delta x 和 \Delta y ,需要在直线上取两个点才行。所以同样的做法在曲线上来一遍即可,由此得到的直线称为割线 AB 。
但割线的斜率并不是我们需要的,因为取不同的 B 点就会得到不同的割线,难不成曲线在 A 点处的斜率会如此调皮?所以,既要利用 B 点,又要使得计算结果为曲线在 A 点处的斜率,只能让 B 点无限靠近 A 点,使其两者相差无穷小!关于这个幽灵,可以去看我之前的文章( 戳我 )。
这么一来,我们就发现割线变成了曲线在 A 点处的切线,而曲线在 A 点处的斜率就由该切线的斜率来反映。此时,切线的斜率就得写成: \frac{{\Delta y}}{{\Delta x}}(\Delta x \to 0) \\
由于曲线都有对应的函数来表示的,而数学里又习惯把函数写成 y = f(x) ,所以有:
\Delta y = f(x + \Delta x) - f(x) \\
于是切线的斜率被写成如下的形式,并获得了一个新名字——函数的导数,记为:
f' = \mathop {\lim }\limits_{\Delta x \to 0} \frac{{f(x + \Delta x) - f(x)}}{{\Delta x}} \\
别怕哈,这一坨表达式看起来好吓人,其实很简单——因为函数的导数就是该函数曲线在某点处的切线斜率。所以,只要你知道啥是斜率,看懂这个表达式肯定不在话下。
不过咱要啰嗦几句,记作 f' 非常简洁,但是容易忘记 f 是对自变量 x 求导数。所以为了强调是对 x 求导,就弄了另外一个符号:
\frac{d}{{dx}}f \\
f 前面的这一块东西作用在其身上就表示 f 对 x 求导。有时候为了书写方便,就写成:
\frac{{df}}{{dx}} \\
请注意,不是 df 与 dx 相除哟! 捋清这一点至关重要,不然你看到后面的公式肯定会糊。
导数说完了就可以说微分了。还是看图中的切线,其与竖直虚线相交于 C 点。其中 CD 段的距离可以表示为:
CD = f' \cdot \Delta x \\
由于 \Delta x 本身就是无穷小了,即 \Delta y 也是无穷小,那么 CD 与 \Delta y 的差会更小,将其称为 \Delta x 的高阶无穷小。 你可以把高阶无穷小想象成是无穷小的儿子,既然老子都是小不点,儿子就更不用谈了 。
咱们就是把 CD 称为函数 f 在 x 处的微分,记为 df 。即:
df = f' \cdot \Delta x \\
由于自变量 x 对自身的导数等于1,也就是 x' = 1 ,所以:
dx = x' \cdot \Delta x = \Delta x \\
这么一来,函数 f 在 x 处的微分就可以表示为:
df = f' \cdot dx \\
或者记为:
f' = \frac{{df}}{{dx}} \\
这和刚才导数的符号不同,这里是指函数 f 的微分与自变量 x 的微分的比值,也称为微商 。
说完了这两个重要的概念后,就能根据定义得到几个重要的结论。这些结论在数学教材里都有严格的证明(都很简单明了),大伙自己去看书也挺香的。悦理君就当给大家留个练习哈。
常数 C 的导数为零,记为: C' = 0
两个函数相加减的结果,其导数等于每个函数的导数相加减,即:
(f \pm g)' = f' \pm g' \\
两个函数相乘的结果,其导数为:
(f \cdot g)' = f' \cdot g + f \cdot g' \\
这个结果记起来稍微要费点脑子: 你可以想象自己一个人带着两个娃,现在得给娃脱衣睡觉,你是不是得挨个来?先给第一个娃脱衣服,让第二个娃一边呆着( f' \cdot g );然后是第一个娃看着,给第二个娃脱衣服( f \cdot g' )。两个娃的衣服都脱完了才算完事,即 f' \cdot g + f \cdot g' 。
至于两个函数相除的导数就不写了,后面的物理问题里暂时用不上。毕竟这篇文章的主角是物理,数学工具够用就行。
另外,还有一个重要的结论就是复合函数的导数。复合函数你可以想象成是套娃,函数 f(u) 的变量 u 只是个中间角色,它是自变量x的函数,即:
u = g(x) \\
所以函数 f 应该写成 f(g(x)) ,其自变量是 x 。那么求 f 的导数是指函数 f 对自变量 x 求导数,其结果为:
f(g(x))' = f'(u) \cdot g'(x) \\
详细严格的证明过程请自行阅读数学教材。
这个等式的识记也好理解,相当于你的娃现在穿了两件衣服,你是不是得一件一件的脱?而且是先脱外层的衣服 f'(u) ,再脱里面的衣服 g'(x) ,两件都脱完了才算完事,即 f'(u) \cdot g'(x) 。这就是 复合函数求导的链式法则 。
以上是关于求导的结论,而求导数的基本法则也就是求微分的基本法则,只是形式上稍微变一变就可以了。比如:
d(f \pm g) = df \pm dg \\ d(f \cdot g) = f \cdot dg + g \cdot df \\
看到这里,是不是觉得微分理解起来也不难呀?本来嘛,当你理顺了概念的来龙去脉搞,由它衍生的结论也就手到擒来了。大家往后继续看就会发现,这种学习方式被悦理君体现得淋漓尽致。
回来继续唠嗑微分。前面我是用只含一个自变量的一元函数带领大伙叩开了微分的大门,但是更多的函数所含有的自变量不止一个,这样的函数被称为多元函数。它们的微分会不会有啥不同呢?
咱们就看看最简单的多元函数,即函数含有两个自变量 x 和 y ,记为 f(x,y) 。多元函数的导数定义完全类似一元函数,不过区别就在于函数 f 的变化量可以由两个自变量中的任意一个变化所引起,所以函数 f 在某点处的导数就有多个,其数量取决于自变量的个数。
如果函数 f 的变化是由 x 的变化所引起,由此得到的导数称为函数 f 关于 x 的偏导数,偏心嘛,只管 x 不管 y ,记为:
\frac{\partial }{{\partial x}}f \\
其结果为:
\mathop {\lim }\limits_{\Delta x \to 0} \frac{{f(x + \Delta x,y) - f(x,y)}}{{\Delta x}} \\
同理,如果函数 f 的变化是由 y 的变化所引起,由此得到的导数称为函数 f 关于 y 的偏导数,即为:
\frac{\partial }{{\partial y}}f \\
其结果为:
\mathop {\lim }\limits_{\Delta y \to 0} \frac{{f(x,y + \Delta y) - f(x,y)}}{{\Delta y}} \\
有了多元函数的偏导数概念,类似于一元函数的微分,则多元函数的微分就是:
df = \frac{\partial }{{\partial x}}f \cdot dx + \frac{\partial }{{\partial y}}f \cdot dy \\
说完了微分说就该说一说积分了,从如今的“微积分”这个名称上就能看出它俩可是一对形影不离的好基友。不过要想发现它俩的基情,着实要下一番功夫。
积分起源于对封闭图形的面积计算。你肯定能很快写出矩形、三角形或者梯形的面积计算公式,但是面对一般的封闭图形时就无能为力了。不过没关系,咱可以用那些规则图形的面积来逼近这个不规则图形的面积。这就好比铺地砖一样,总能用规则的地砖近似地铺满一块区域,至于边边角角可以用更小的规则地砖将其覆盖,直到最后看不出什么缝隙。
那这种朴素的思想如何用数学语言来描述呢?假设有一条函数曲线 y = f(x) ,在变量 x 取值于 [a,b] 的范围内与坐标轴围成了一个曲边梯形。当我们要计算这个图形的面积时,先把区间 [a,b] 分割 n 份,这样的话每一份就对应一个小区间,而每一个小区间就对应一个小矩形条,然后把这 n 个小矩形条(相当于规则的地砖)的面积求和去替代曲边梯形的面积。
至于所有矩形条的面积和能不能代替曲边梯形的面积、以及代替的误差有多大,这有严谨的数学论证,咱就省略几千字了哈,数学教材可是等着你们去宠幸呢。显然此处只关注能精确替代的情形, 即把区间 [a,b] 分割成无穷多份,使得无穷多个小矩形条的面积和存在一个确定不变的极限值,那么这个值就是这个曲边梯形的面积 ,记作:
\int_a^b {f(x)dx} \\
这个式子称为被积函数 f(x) 在区间 [a,b] 的定积分, a 和 b 分别称为定积分的下限和上限, x 是积分变量。
显然定积分 \int_a^b {f(x)dx} 是一个数,只要函数 f(x) 的表达式和区间 [a,b] 定了,这个数就定了。换句话说,你把积分变量写成 x 还是 t 亦或是 u 都没关系。
这是肯定的撒,比如说函数是二次函数,无论写成 f(x) = {x^2} 还是写成 f(t) = {t^2} ,这不都是相同的抛物线么?它与坐标轴所围成的图形还能有差别?如果现在咱要求这条抛物线在 [0,2] 的范围内与坐标轴所围成的图形面积,结果肯定是一样的嘛。所以有:
\int_a^b {f(x)dx} = \int_a^b {f(t)dt} = \int_a^b {f(u)du} \\
为啥要啰嗦上面这么一段文字呢?还不是担心你对接下来的表述弄混淆了嘛。既然定积分 \int_a^b {f(x)dx} 是一个确定的数, 但如果让积分上限(用下限也行)在区间 [a,b] 内任意取值,咱就可以一一对应的写出任意个定积分 (请记住,它是一个数)。
看到这里,你是不是就想起了函数?变动的积分上限有与之一一对应的数!把这个函数起名为积分上限函数,记作 \Phi (x) 。按照刚才描述的函数构造方法,则有:
\Phi (x) = \int_a^x {f(t)dt} \\
其中 a \le x \le b 。
你看, 我可是特意把积分变量换成了 t ,就是为了让你看清楚积分上限函数的变量是积分上限而不是积分变量本身 !拗口不?那就慢慢地多读几遍哈!
弄这么多铺垫给你甩出积分上限函数可不是为了让你练习拗口令,而是这个函数有个及其重要的性质——积分上限函数的导数等于被积函数,即:
\Phi '(x) = f(x) \\
等式成立的条件以及证明过程就请各位辛苦一下翻阅数学教材了,很简单、很容易看懂!
这个性质一下子就把求导和定积分给联系起来了。求导或者求微分是对函数的一种运算,那么这种运算就有与之对应的逆运算,就好比加法的逆运算是减法,乘法的逆运算是除法。如果函数 F(x) 满足:
F'(x) = f(x) \\
则函数 F(x) 被称为是函数 f(x) 的原函数。显然, 求原函数就是求导运算的逆运算 。刚好上面提到的积分上限函数 \Phi (x) 就是被积函数 f(x) 的原函数,这下该知道 \Phi (x) 的重要地位了吧?
对了,你还记得常数 C 的导数为零的结论吗?要是咱给积分上限函数 \Phi (x) 加上一个任意常数 C ,你会发现啥?新的函数 \Phi (x) + C 的导数也等于 f(x) ,即:
[\Phi (x) + C]' = f(x) \\
所以新函数 \Phi (x) + C 也是 f(x) 的原函数,这说明 f(x) 的原函数可以有无限多个。严格的数学证明会告诉你, 如果 F(x) 是 f(x) 的一个原函数,那么其他无限多个原函数只能是 F(x) + C 的形式 。也就是对于同一个被积函数 f(x) 来说,不同原函数之间只相差一个任意常数。
鉴于求原函数是求导的逆运算,而且原函数就长成 F(x) + C 的样子,这么重要的式子不得给它上个户口?于是将其命名为 不定积分 ,记作:
\int {f(x)dx = F(x) + C} \\
也就是说不定积分是一种运算,是微分运算的逆运算。请不要把它和定积分搞混了哈,人家定积分是一个数。
什么?你要问定积分怎么算?积分上限函数笑而不语地向你招了招手。假设 F(x) 是被积函数 f(x) 的原函数,显然积分上限函数 \Phi (x) 也是 F(x) 的同伙。刚才已经说过了,不同原函数之间只相差一个任意常数,所以有:
\int_a^x {f(x)dx} = F(x) + C \\
发现没,只要令积分上限里的 x 等于 b ,咱们要的定积分不就现原形了吗?
不过还有一个小问题就是任意常数 C 的取值。定积分 \int_a^b {f(x)dx} 是一个确定的数,岂容你 C 任意取值? 若真如此,岂不是变成了薛定谔的定(小)积(猫)分(咪) ?所以咱得把 C 的值给求出来。很简单,你先令积分上限的 x 等于 a ,这不就有:
\int_a^a {f(x)dx} = 0 \\
于是可得:
C = - F(a) \\
再令积分上限里的 x 等于 b ,则:
\int_a^b {f(x)dx} = F(b) - F(a) \\
即定积分 \int_a^b {f(x)dx} 的值等于被积函数 f(x) 的原函数在积分上、下限处取值的差。为了方便,咱们会给出一个新的记法:
\int_a^b {f(x)dx} = \left. {F(x)} \right|_a^b \\
完美收工!这便是大名鼎鼎的牛顿——莱布尼茨公式!是它把定积分的计算与求原函数进行了联姻,于是微分与积分的基情就开始了。
三、和约束说不(1)
第一节里提到,牛顿力学方程有些力不从心的原因在于研究对象会受到约束,所以 如何在求解问题的过程中“消除”约束就是一个刚需 。这里将“消除”加上引号,并不是说真的把作用在研究对象上的约束给解除掉,而是指在方程里不出现这些未知的、复杂的约束,从而使得方程变得更易求解。在那个小球沿圆轨道运动的例子里,咱们发现只要换一个坐标系就能使得求解变得柳暗花明又一村。
这是偶然还是必然?这背后有没有隐藏着什么不可告人的秘密?谜底揭晓,这个秘密就是坐(zou)标(jin)变(ke)换(xue)!即不再用直角坐标 x 和 y 来描述物体的位置变化特点,而是用另外一种坐标。这就好比买东西,以前总是用现金,现在有了手机支付,便捷程度一下就提升了。
不过要提醒一点的是,坐标变换没有绝对的好坏,只有在具体问题中存在相对最适用的区别。这就好比现金和手机支付一样都有存在的价值,手机没电没网的时候,现金支付是不是很香呢?
那如何进行坐标变换呢?这里有个依据—— 一个被称为自由度的东西 。对于一个自由质点来说,当其在空间运动时,由矢量分解的特点可知,需要3个直角坐标 x 、 y 和 z 才能确定它的位置。如果是 n 个自由质点组成的自由质点系来说,则需要 3n 个这样的坐标来描述,也就是:
({x_1},{y_1},{z_1}) 、 ({x_2},{y_2},{z_2}) 、...、 ({x_n},{y_n},{z_n})
由于每个质点都是自由的,所以这些坐标都是彼此独立的,少一个都不能把这个质点系的运动状态给描述清楚。 这些独立坐标的个数就是这个研究对象的自由度 。
但是对于受约束的研究对象来说,自由度肯定是要小一些的,因为约束的存在使得原先的部分坐标之间会有联系。还是看第一部分给出的小球沿圆轨道运动的例子,小球在竖直平面内运动,所以需要 x 和 y 两个独立坐标来描述它的运动。但是小球还被限制在圆轨道上运动,所以两个坐标之间始终满足:
{x^2} + {y^2} = {R^2} \\
的约束条件。
这个约束条件的存在,使得 x 或 y 总能被另一个坐标给表示出来,所以描述这个小球的独立坐标只需要1个就可以了,也就是它的自由度为1。这就是为啥咱们只用小球到圆轨道圆心的连线与竖直方向的夹角来描述它的运动的原因啦。
推广开来,对于由 n 质点组成的质点系,其受到了 k 个类似于小球这样的约束(称为完整约束,具体定义就不展开,个人觉得有点影响文章的连贯性,读者可以自行翻阅任何一本理论力学的教材),那么这个系统的自由度记为 s ,其值为:
s = 3n - k \\
也就是说 描述这个受约束的系统,只需 s 个独立坐标就可以了 。至于这 s 个坐标从哪来,可以是以前的 3n 个坐标里选择 s 个,也可以另起炉灶重新选择 s 个其他的坐标。反正坐标系又不是只有直角坐标系这么一家。
至于新的坐标系是什么样子的,甩给你一句话—— 具体问题具体分析 !好家伙,反手就是一个好家伙。比如说可以选极坐标呀,柱坐标,球坐标等等。为了给这些新坐标起个统一的名字,就叫它们为 广义坐标 吧。
不过别高兴得太早,换坐标并没有真正做到“消除”约束。啥情况?虽然使用广义坐标后,自由度从 3n 降为了 s ,这会导致总的方程数量减少。但是若考虑到牛顿方程的矢量特性,依然要写出较多的分量式;而且未知的约束力也会出现在其中的方程里,即使咱们不想搭理约束力,也不得不硬着头皮联立求解方程组。所以咱们还需更彻底地“消除”约束。
回想第一节里提到的约束,意思就是物体的运动状态有所被限制。比如车轮在地面上无滑动的滚动;刚体具有不变的形状;被光滑铰链链接的刚体等。这些例子里,静摩擦力就是使得车轮不滑动的约束力;刚体的内力约束其形状不变;铰链约束着被链接的刚体的运动状态。
对于纯滚动的物体来说,静摩擦力对其不做功;对于刚体来说,由于其形状不变,其内部各质点没有相对位移,所以内力做功的代数和为零;考虑铰链约束的特点,铰链上的约束力所做功的代数和也为零。这些例子透露出, 咱们可以通过从做功的角度来消除约束力的影响 。
可是做功就会涉及到位移,那物体应该发生怎样的位移才能使得约束力做的功为零呢?这样的位移是特殊值还是普遍值呢?或者说物体真能发生这样的位移吗 ?
问题发展到这里,咱们又遇到了拦路虎。再正常不过了,解决问题就是打怪升级的过程,咱们再次需要获得有力的数学武器。但这个武器并不是为解决约束问题而生的,其来头可不小呢。
四、初识变分
历史上有过这么几个著名的问题:光在不同介质中传播时有什么特点呢?费马断言光通过空间中固定两点的真实传播路径是其用时最短的那条路径,这便是著名的费马原理。
伯努利曾向物理同僚们踢馆,悬赏一道智力题:小球从固定高处沿某条轨道滑到固定低处,怎样的轨道能使得小球最快到达目的地呢?这便是著名的最速降线问题。
关于这两个问题的具体求解,在后面会展现出来,这里暂时只说问题的求解思路。这两个例子都是要解决同一个问题—— 要从众多可能的轨迹中选择一条确定轨迹,该轨迹对应着最小值 。
提到求最值应该不陌生吧?高中数学里不是经常求函数的最值么?所谓函数的最值,你可以想象有一片山区,所有山顶中最高的就是最大值,所有山谷中最低的就是最小值。而每个山顶(谷)称为函数的极大(小)值,所以求最值就转化成求极值。
用数学语言描述就是自变量 x 在某个值 {x_0} 附近取值时,函数值 f(x) 都不大(小)于 f({x_0}) 的值,就说函数 f(x) 在 {x_0} 处取极大(小)值。 对于每个极值点,其典型的几何特征就是 f(x) 在 {x_0} 处的导数为零,因为函数曲线在此处的切线平行于 x 轴 。
不过要注意的是,上述两个例子并不是要求函数的极值,而是 函数的函数取极值 的问题。啥?你确定你没多打几个字?没有!且听我娓娓道来。
求函数的极值,前提是这个函数已知了。比如咱们熟悉的抛物线函数 y = {x^2} ,想知道当自变量 x 在 [ - 1,1] 这个区间能否取极值时,只要按照上面的办法把函数求导,看看有没有 x 的值能使导数为零。
但是上述两个例子里,咱们事先连函数的表达式是啥都不知道 !这不显然的嘛,要是知道了函数表达式,路径不就知道了么?
所以例子里的问题应该是这样的:事先给定了 x 的取值范围,但是函数表达式未知,可能是 y = x ,也可能是 y = {x^2} ,还可能是 y = {x^3} 等。然后对这些不同的函数曲线比较长短,长度最短的那条函数曲线就是咱们的目标!这就意味着要把这些可能的待定函数丢进一个计算长度的函数里,这样的话,出来的结果就是该函数曲线的长度。
你看嘛,这不就是给函数再套一个函数嘛?所以,函数的函数这个叫法就是这么来的。拗口是吧?谁说不是呢?!所以它有一个新名字—— 泛函 。咱们习惯把函数记作 y = f(x) ,则泛函被记作:
J = J[f(x)] \\
请不要被这个符号给吓到了,你可以随便用一个符号把 f(x) 给包起来。 但是请注意,泛函的自变量不再是变量 x ,而是函数 f(x) 。这是泛函与函数最大的不同 。
弄清楚了泛函,就可以来说泛函的极值。和求函数极值一样,也需要求出泛函的导数,然后找出它的零点。函数求导需要计算函数的变化量,同理给泛函求导也要整出它的变化量。 请再次注意泛函的变量是函数,所以泛函的变化是由不同的函数所导致的 。而这些不同的函数就引出了 变分 的概念。
当自变量 x 在它的取值范围内 任取一个值时 ,此处 对应着许多可取的函数集合 \{f(x)\} , 则 f(x) 与 {f_0}(x) 这两个不同函数之间的差值就称为函数 f(x) 在 {f_0}(x) 处的变分 ,记为:
\delta f = f(x) - {f_0}(x) \\
显然,泛函的变化量则为:
\Delta J = J[f(x) + \delta f] - J[f(x)] \\
熟悉不?是不是和函数的变化量及其相似呀? 唯一的不同是函数的变化量来自于自变量的变化,而泛函的变化量则由函数的变分所导致 。
类比可得(此处省略了上千字的严格数学推导),泛函也有“微分”!不过为了加以区分, 泛函的“微分”称为变分 ,记作 \delta J 。不出意外的类比,其结果为:
\delta J = J' \cdot \delta f \\
其中 \Delta J 和 \delta J 相差一个 \delta f 的高阶无穷小量。
如果泛函的变量有多个,以最少的两个变量为例,则泛函写成:
J = J[{f_1}(x),{f_2}(x)] \\
则其变分为:
\delta J = \frac{{\partial J}}{{\partial {f_1}}}\delta {f_1} + \frac{{\partial J}}{{\partial {f_2}}}\delta {f_2} \\
依据请参考前述的多元函数的微分结果。
扯点闲话,这里之所以省略了泛函变分的推导过程, 主要目的在于突出类比的思想 ,这可是物理学里及其重要的思想方法,甚至可以说是一种优秀的物理直觉! 把外在相似而内涵一致的现象归为一类,这不就是物理学的本职工作么 ?再者,泛函变分的推导远没有函数微分的推导那么直观和简洁,如果硬要堆砌出来,只会显得满满的硬核数学风,与本文的主题思想相差甚远。
言归正传,既然微分和变分如此的相似,咱们就指着相似性好好薅一下。比如说函数 f(x) 如果可导的话,那么其导数的变分则为 \delta f' 。根据函数变分的定义可知:
\delta f' = f'(x)- {f_0}'(x) \\
再根据导数的运算法则有:
f'(x) - {f_0}'(x)= [f(x) - {f_0}(x)]' = (\delta f)' \\
即:
\delta f' = (\delta f)' \\
也就是说对函数求变分和求导数的运算次序是可以交换的 。这个特性会在后续反复用到。
好啦,变分的神秘面纱已经被掀开了一角,咱们的武器库里又多了一项得力的数学工具。想看它大杀四方的威力还请耐心地等等,现在咱们的思绪得回到物理问题中去了。
五、和约束说不(2)
在“消除”约束的道路上,咱们发现约束力做功为零就很香,只不过会困惑于功对应的是哪一段位移,以及这样的位移有没有普遍性。哎,这讨厌的约束啥时候是个头啊?!
嗨,就这?多大点事嘛。你不是不清楚对应哪段位移么?咱就给你弄出所有可能的位移!你不是疑惑位移有没有普遍性么?咱就给你弄出所有可能的位移!你不是还.....?咱就给你弄出所有可能的位移!怎么样,管够不?
好家伙,说得容易,怎么弄呀?物体运动的时候位移是确定的,你怎么弄出所有可能的位移呢?
简单!咱不让物体真的动起来不就完了撒?此时此刻的你是不是一脸懵逼?别担心,详细解释这就附上。先说物体的实际位移,它对应着一段时间间隔,在这个时间段内,由于物体的运动已经发生了,所以这段位移也就定下来了。那要是咱只着眼于某个时刻呢? 这相当于把时间“固定”住,谁又会知道物体该往何处运动呢 ?
打个比方,当你从家去到学校,这就是你的实际位移,显然这是一段确定的位移。而你在家还没出门时,你是不是可曾想过去商场?去饭店?去球场?去一切可以去的地方?反正只要没迈开腿行动,头脑里就可以想出任何可以去的地方。
既然针对一个固定的时刻,物体在接下来的运动中可以 有很多种可能的位移 ,而这些 可能的位移并不是物体实际发生的位移 ,所以给这些可能的位移起个新名字—— 虚位移 。啊这,名字就给人一种虚无缥缈的感觉,这很物理吗?
答案是这很物理!谁说物理里只能引入那些实实在在的东西?磁感线、电场线是不是引入的两个假想工具?这里的虚位移也是如此!它的作用就好比几何题里的辅助线,背后隐藏着巨大的作用。
那么虚位移又该如何来表示呢?物体的位置咱们可以用 位矢 来表示,其实就是从坐标原点指向物体所在的位置坐标的有向线段。
显然位矢是时间的函数,因为不同时刻物体所处的位置不一样,故把位矢记作 {\bf{r}}(t) ,简记为 \{{\bf{r}}\} 。根据虚位移的特征,则物体在固定的时刻 t 有很多可能的位矢,记作位矢集合 { {\bf{r}}} 。
写到这里,大家想到了什么?这不和刚刚介绍的泛函很像么? 所以虚位移就是在固定时刻 t ,两个可能的位矢差 。这正好就是函数的变分嘛!所以沿用变分的符号,则虚位移为:
\delta {\bf{r}} = {\bf{r}}(t) - {{\bf{r}}_0}(t) \\
这就是为啥咱要先初识变分的原因,因为只有当你初步了解了啥是变分,你才能明白虚位移是个啥玩意。
顺便说一下,物体的实际位移应该表示为:
\Delta {\bf{r}} = {\bf{r}}(t) - {{\bf{r}}}(t_{0}) \\
由于咱们把位矢 {\bf{r}} 看做是时间 t 的函数,那么当物体实际运动的时候,这个函数关系式是确定的(哪怕咱们还没求出来,也是如此);而物体的实际位移只是因为时刻不同才导致的位置不同。咱一定要仔细区分虚位移和实际位移的表达差异。
对了,聊了这么久的虚位移,咱们可不要忘了引入它的初衷。虽然它能解决我们对于位移的那些困惑,但是最重要的问题——约束力做功为零的目的能实现吗?敲黑板啦,快点看过来。
比如物体被约束在一个光滑曲面上运动,咱们把这个曲面的方程形式记为:
f(x,y,z,t) = 0 \\
如果 f 里面不含有 t ,则表示这个光滑曲面是固定的,因为它的位置不随时间变化嘛;而如果 f 里面含有 t ,则表示这个光滑曲面是运动的。至于这个曲面方程的具体长啥样并不重要,你若耿耿于怀这一点,你写个球面方程 {x^2} + {y^2} + {z^2} = 1 也行啊。
现在咱们让时间 t 固定,让物体在受约束的前提下取其虚位移 \delta {\bf{r}} = \left( {\delta x,\delta y,\delta z} \right) ,则有:
f(x + \delta x,y + \delta y,z + \delta z,t) = 0 \\
成立。这不废话嘛,毕竟物体始终受到约束,就算产生了虚位移也是被束缚着,当然要满足这个约束曲面的方程撒。把这两个方程相减,你就会发现:
f(x + \delta x,y + \delta y,z + \delta z,t) - f(x,y,z,t) = \frac{{\partial f}}{{\partial x}} \cdot \delta x + \frac{{\partial f}}{{\partial y}} \cdot \delta y + \frac{{\partial f}}{{\partial z}} \cdot \delta z = 0 \\
依据请参考多元泛函的微分。
请问有没有人觉得少一项 \frac{{\partial f}}{{\partial t}} \cdot \delta t 呢?按照多元泛函的微分,确实有这一项,但是你在引入虚位移的时候不是要把时间固定么?也就是 \delta t = 0 ,所以这一项就没有了。你发现没,无论约束曲面的方程里是否含有参数 t ,虚位移满足的条件都是一样的?即满足:
\frac{{\partial f}}{{\partial x}} \cdot \delta x + \frac{{\partial f}}{{\partial y}} \cdot \delta y + \frac{{\partial f}}{{\partial z}} \cdot \delta z = 0 \\
如果你对向量的数量积有所了解的话,上面的满足条件可以立刻改写成两个向量的数量积,即:
\left( {\delta x,\delta y,\delta z} \right) \cdot \left( {\frac{{\partial f}}{{\partial x}},\frac{{\partial f}}{{\partial y}},\frac{{\partial f}}{{\partial z}}} \right) = 0 \\
两个向量的数量积为零意味着这两个向量互相垂直,而这个等式里的第一个向量即为虚位移 \delta {\bf{r}} ,第二个向量就是约束曲面的法向量 {\bf{n}} 。至于为啥是法向量,高中数学里可是学过如何通过直线方程写出该直线的法向量哟。你若会写直线的法向量,只要多加一个分量就是曲面的法向量。
得出了虚位移方向与约束曲面的法向量垂直的结论有啥用呢?别忘了物体在光滑曲面上受到的约束力就是垂直于曲面的弹力 {\bf{F}} ,即弹力与曲面的法向量共线。如此不就意味着弹力 {\bf{F}} 与虚位移 \delta {\bf{r}} 互相垂直么?再根据功的定义有:
\delta W = {\bf{F}} \cdot \delta {\bf{r}} = 0 \\
哈哈哈哈,约束力终于给“消除”啦!这里出现的 \delta W 称为 虚功 。 由于约束力的虚功为零,从而达到了“消除”约束力的效果,这就是引入虚位移的真正目的,也是它自身价值的体现 。
再比如说刚体,其内力约束着自身形状不变,这就意味着内部任意两个质点之间的距离是不变的。假设某两个质点的位矢分别为 {{\bf{r}}_i} 和 {{\bf{r}}_j} ,则约束条件显然为:
{({{\bf{r}}_i} - {{\bf{r}}_j})^2} = c \\
这个等式就是两点之间的距离公式,其中 c 为一个常数。如果像上一个例子一样写成函数方程的形式,那就是:
f({{\bf{r}}_i},{{\bf{r}}_j}) = {({{\bf{r}}_i} - {{\bf{r}}_j})^2} - c = 0 \\
根据前面已经推出的虚位移所满足的条件,即有:
\frac{{\partial f}}{{\partial {{\bf{r}}_i}}} \cdot \delta {{\bf{r}}_i} + \frac{{\partial f}}{{\partial {{\bf{r}}_j}}} \cdot \delta {{\bf{r}}_j} = 0 \\
化个简就能得到:
2({{\bf{r}}_i} - {{\bf{r}}_j}) \cdot (\delta {{\bf{r}}_i} - \delta {{\bf{r}}_j}) = 0 \\
先别急着担忧这个化简的结果如何解释,咱们还没说这两质点所受的约束力呢。显然,它俩之间的相互作用力就是约束力。 既然是它俩之间的相互作用力,不得有等大、反向、沿着两点的连线这三个特点么 ?
示意图里已经清楚地标出来了。如果把这三个特点的文字描述转化为数学语言,你会发现有:
{{\bf{N}}_i} = - {{\bf{N}}_j} = \lambda ({{\bf{r}}_i} - {{\bf{r}}_j}) \\
前一个等号体现了两个作用力等大与反向的特点,第二个等号体现了两个力沿着两点连线的特点 。啧啧啧,你不得不称赞数学语言的精准与简洁!
接下来就该把两质点各自所受约束力的虚功给弄出来了,显然有:
\delta {W_i} = {{\bf{N}}_i} \cdot \delta {{\bf{r}}_i} \\
和
\delta {W_j} = {{\bf{N}}_j} \cdot \delta {{\bf{r}}_j} \\
虽然各个约束力的功不为零,但是总功:
\delta W = \delta {W_i} + \delta {W_j} = \lambda ({{\bf{r}}_i} - {{\bf{r}}_j}) \cdot (\delta {{\bf{r}}_i} - \delta {{\bf{r}}_j}) = 0 \\
你看,约束力依旧被“消除”了。
咋样,用虚位移“消除”约束力很香吧?而且不仅光滑支持面和刚体有这样的特点,像光滑铰链呀、绷紧且不可伸长的轻绳等产生的约束,都有约束力的总虚功为零的特点。 这就爽歪歪了,此法不仅实用,而且还能惠及一大批约束!就好比玩着消消乐,点开一个技能包消除了满屏的图案,爽不?
既然有这么多约束力的总虚功为零,于是乎就归个类吧—— 约束力总虚功为零的约束称为理想约束 ,记作:
\delta W = \sum\limits_{i = 1}^n {{{\bf{N}}_i}} \cdot \delta {{\bf{r}}_i} = 0 \\
什么,你又给我谈理想?难道物理离开了理想就不能活了?
看来有必要再次重申理想的意义—— 抓主要因素而忽略次要因素,从而把各种实际问题抽象成一个个物理模型,通过研究物理模型从而找出背后隐藏的规律 。这才是理想的根本目的!至于如何抹去理想和现实之间的差距,待你弄清了本质规律后可以慢慢加入各种实际的因素,规律的适用范围不就扩大了么?还有问题?
好啦,现在工具都已齐活,咱们即将开始大干一场!在撸起袖子之前,我想强调的是: 相比知道怎么干,弄清为什么要干和为什么要这么干是更重要的前提 !毕竟事出有因, 如果你只盯着做事之方而忽视了谋事之略,岂不是很容易堕云雾中 ?倘若读者能从这些文字中领悟到物理绝不是天马行空的胡思乱想,而是在解决一个个具体问题中逐渐发展的优美体系,我辛苦敲字的付出也就值得啦。
六、横空出世的拉格朗日方程
开工之前再强调一遍,接下来的工作只是去改造牛顿运动定律的核心方程:
{{\bf{F}}_{all}} = m{\bf{a}} \\
让其能更好地用于有约束的场景。至于会有啥不同凡响的结果,那就拭目以待吧。
核心方程里的力 {{\bf{F}}_{all}} 指的是物体所受的合外力。对于受到约束的体系来说,合外力可分为主动力的合力 {\bf{F}} 和约束力的合力 {\bf{R}} 。那么分到系统里的 n 个质点来说,主动力的合力记为 {{\bf{F}}_i} ,约束力的合力记为 {{\bf{R}}_i} 。在这样的记号体系下,每个质点满足的牛顿第二定律方程为:
{{\bf{F}}_i} + {{\bf{R}}_i} = {m_i}{{\bf{a}}_i} \\
这里有 i = 1,2, \cdots ,n 。
看到这个方程,相信大伙不难想到接下来要干嘛——把等式两边同时乘以对应质点的虚位移,利用理想约束的总虚功为零的特点将约束给“消除”掉。不过有个问题咱们得交待清楚:等式右边的 {m_i}{{\bf{a}}_i} 是啥?它乘以虚位移以后又是啥?它要是毫无名分的呆在等式里像什么话呀?
所以咱们要把这个方程进行一个骚操作——把 {m_i}{{\bf{a}}_i} 移项到左边来,使得方程变成:
- {m_i}{{\bf{a}}_i} + {{\bf{F}}_i} + {{\bf{R}}_i} = 0 \\
那么 {m_i}{{\bf{a}}_i} 就有名分了。不是,你这是在逗我吗?小学生都会的等式移项,你拿来糊弄谁呢?这操作还真是骚啊!
各位请稍安勿躁,就是这么一个简单的移项还就真的解决了名分问题!从数学的角度来说确实就是简单的移项,但是考虑到物理量纲可就意义重大了。咱看个通俗易懂的例子,假设一份饭20元,可以写成等式:“20元=一份饭”。你若没有一张20元的钞票,可以付两张10元的钞票嘛,那么等式为:“10元+10元=一份饭”。 也就是说钱和钱能直接相加,可你有听过钱和饭相加的吗 ?即 对于物理量来说,只有量纲相同的量才能相加 。倘若你非要把等式里的“一份饭”进行移项,将其写成:“-(一份饭)+20元=0”, 那么“-(一份饭)”表示的只能是钱!只能是钱!是钱! 看到这,你还觉得移项是个简单的活吗?
回到牛顿第二定律的方程里来, {m_i}{{\bf{a}}_i} 没有移项以前就是质量乘以加速度,而移项以后, - {m_i}{{\bf{a}}_i} 这一项就是力!这就不禁有人问了,哪来的力?这个力确实不是真实存在的,咱们称为惯性力。至于为啥这么叫,我在后文合适的地方再提及。但无论如何,即使不纠结它的名字,这一项表示力肯定是板上钉钉了。如此,等式:
- {m_i}{{\bf{a}}_i} + {{\bf{F}}_i} + {{\bf{R}}_i} = 0 \\
里的每一项都有了正当的名分,分别是惯性力、主动力和约束力。若将等式两边同乘以质点 i 的虚位移 \delta {{\bf{r}}_i} ,等式变为:
- {m_i}{{\bf{a}}_i} \cdot \delta {{\bf{r}}_i} + {{\bf{F}}_i} \cdot \delta {{\bf{r}}_i} + {{\bf{R}}_i} \cdot \delta {{\bf{r}}_i} = 0 \\
那么各项分别是惯性力的虚功、主动力的虚功和约束力的虚功。
如果这个质点系受到的是理想约束,不就有约束力的总虚功为零么?也就是:
\sum\limits_{i = 1}^n {{{\bf{R}}_i}} \cdot \delta {{\bf{r}}_i} = 0 \\
所以咱们只需把所有质点的虚功方程相加即可构造出约束力的总虚功,即:
\sum\limits_{i = 1}^n {({{\bf{F}}_i} - {m_i}{{\bf{a}}_i})} \cdot \delta {{\bf{r}}_i} + \sum\limits_{i = 1}^n {{{\bf{R}}_i}} \cdot \delta {{\bf{r}}_i} = 0 \\
于是对于理想约束的体系来说,改造后的方程就能简化成:
\sum\limits_{i = 1}^n {({{\bf{F}}_i} - {m_i}{{\bf{a}}_i})} \cdot \delta {{\bf{r}}_i} = 0 \\
等等,你管这个叫简化?我的拳头都变硬了!
相比单个不受约束的质点的方程来说,上式确实有些复杂,那是因为单个不受约束的质点本来就是最简单的情形啊。但是对于受约束的体系来说,上面的方程成功地消除了未知约束力的影响,你能说它不是简化的结果?
另外咱要坦白的是,上面的简化结果是借助理想约束的条件才得到,可是在复杂的现实面前,理想化岂不是我们的一厢情愿吗?并不是的! 遇到非理想约束的情形时,你把力 {{\bf{F}}_i} 看成是主动力与非理想的约束力的合力不就可以了嘛?剩下的问题就甩锅给数学吧 。这就是我在上一节提及的如何在理想和现实之间搭建桥梁的方法。
理想化的问题咱们可以不纠结了,但是这个简化方程里又出现了一个新的问题——虚位移。 物理规律建立在这么一个虚无缥缈的对象之上,总让人觉得不放心,所以社会主义改造的步伐依然不能停下来 。
咱们回头看看得到的方程,它是 n 项乘积的和为0。如果每个质点的虚位移之间都是彼此独立、互不影响的话,那么由于虚位移的任意性,要保证所有项的和为零,只能是每项虚位移前的系数都为零才行。这个结论可以用反证法得到,严格的证明过程可以参考变分法的教材 ,不难。
果真如此的话,这个方程就退化成了自由质点的牛顿第二定律表达式啦,说明上面的这个简化方程是可以包含无约束的简单情形。而对于有约束的质点系来说,质点系的虚位移之间不再是彼此独立的,怎么办?
想起来了吗? 在第三节里面就提出了专门解决这个问题的办法——广义坐标 呀。假设这个受约束的质点系的自由度为 s ,也就是要选择 s 个彼此独立的广义坐标,记为:
{q_1},{q_2}, \cdots ,{q_s} \\
那么每个质点在时刻 t 的位矢就是这些广义坐标的函数,记为:
{{\bf{r}}_i} = {{\bf{r}}_i}({q_1},{q_2}, \cdots ,{q_s};t) \\
这里有 i = 1,2, \cdots ,n 。
质点的位矢被广义坐标给表示出来了,那么质点的虚位移肯定也就不在话下了撒。显然有:
{{\bf{r}}_i} + \delta {{\bf{r}}_i} = {{\bf{r}}_i}({q_1} + \delta {q_1},{q_2} + \delta {q_2}, \cdots ,{q_s} + \delta {q_s};t) \\
注意虚位移的特点,时间是被固定的。所以把上面两式相减,再参考多元函数的微分就有:
\delta {{\bf{r}}_i} = \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_1}}} \cdot \delta {q_1} + \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_2}}} \cdot \delta {q_2} + \cdots + \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_s}}} \cdot \delta {q_s} \\
这么写挺麻烦的,甩出求和符号就挺简洁,即:
\delta {{\bf{r}}_i} = \sum\limits_{\alpha {\rm{ = }}1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot \delta {q_\alpha }} \\
更换了广义坐标后,方程就变成了:
\sum\limits_{i = 1}^n {[({{\bf{F}}_i} - {m_i}{{\bf{a}}_i})} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha }] = 0 \\
大伙千万不要怕这个表达式,这就是把 n 项类似于
(a - b) \cdot \underbrace {(cd + ef + \cdots + xy)}_{s{\kern 1pt} {\kern 1pt} {\kern 1pt} item} \\
的表达式相加而已。
另外,根据速度定义可知,速度等于位移除以时间,也就是位矢对时间的导数;而加速度是速度的变化量除以时间,也就是速度对时间的导数。所以加速度就是位矢对时间的二阶导数( 数学部分涉及导数时,约定在函数字母的右上角加撇号;物理部分涉及导数时,约定在物理量字母的头上加点号 ),记为:
a = {\bf{\ddot r}} \\
最终方程变为:
\sum\limits_{i = 1}^n {[({{\bf{F}}_i} - {m_i}{{{\bf{\ddot r}}}_i})} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha }] = 0 \\
把等式左边的这一坨东西稍微变形一下(即把小括号拆开),就变成了:
\sum\limits_{\alpha = 1}^s {(\sum\limits_{i = 1}^n {{{\bf{F}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}})} \cdot \delta {q_\alpha } - \sum\limits_{\alpha = 1}^s {(\sum\limits_{i = 1}^n {{m_i}{{{\bf{\ddot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}})} \cdot \delta {q_\alpha } = 0 \\
眼瞅着等式越写越长,这还了得?那就先找个新符号吧,令:
{Q_\alpha } = \sum\limits_{i = 1}^n {{{\bf{F}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \\
称其为 广义力 。
这个叫法很自然,因为方程的第一项变为了:
\sum\limits_{\alpha = 1}^s {{Q_\alpha }} \cdot \delta {q_\alpha } \\
对比原始方程就会发现这不就是广义坐标下的“主动力”的虚功么?所以把 {Q_\alpha } 称为广义力再合适不过了。
等等,我咋感觉你又在敷衍呢?说来说去,你只不过是换了壳,用 {Q_\alpha } 去代替了书写比较麻烦的一项,至于 {Q_\alpha } 怎么求、怎么继续变化,你却只字不提。哎呀,别着急嘛,时候未到而已,后面会给安排的哈。但不管咋说,它的名分不是给了嘛?先占个坑。
现在重点说说等式里的第二项,只要咱们稍微施加一下魔法就可以让它大变样!由于这一项里存在二阶导数,如果咱们想要求出未知的位矢,那么需要积分两次才能还原。本来积分计算就比较麻烦了,结果还要来两次,岂不是自讨苦吃?难道就没啥好的法子吗?
有的亲, 分部积分法 就能大有作为。所谓分部积分法其实就是利用两个函数乘积的求导公式来替换积分对象,从而使得积分计算变得相对容易。所以,为了替换掉这个讨厌的二阶导数,咱们将其变换为:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\ddot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} = \sum\limits_{i = 1}^n {{m_i}\frac{d}{{dt}}({{{\bf{\dot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) - \sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i}} \cdot \frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \\
别怕别怕,动手把等式右边的第一项按照函数乘积的求导法则展开就能得到上述这个恒等式,要不亲自试试?
这么一弄,二阶导数就可以被替换了。可是替换出来的结果里变成了两项相减,而且看起来挺吓人。别急,魔法还没施展完呢。
由于
{{\bf{r}}_i} = {{\bf{r}}_i}({q_1},{q_2}, \cdots ,{q_s};t) \\
而 {{\bf{\dot r}}_i} 表示 {{\bf{r}}_i} 对时间 t 求导。而 {{\bf{r}}_i} 含有多个参数,并且每个坐标也与时间 t 有关,即每个坐标也是时间 t 的函数。这相当于 {{\bf{r}}_i} 它有多个娃,且每个娃身上都穿了衣服。现在 {{\bf{r}}_i} 要对时间 t 求导,意味着要给每个娃脱衣服,流程就应该为抱来一个娃,然后给Ta脱衣服,直到把所有娃的衣服都脱完。知道该怎么写了吗?于是就有:
{{\bf{\dot r}}_i} = \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_1}}} \cdot \frac{{d{q_1}}}{{dt}} + \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_2}}} \cdot \frac{{d{q_2}}}{{dt}} + \cdots + \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_s}}} \cdot \frac{{d{q_s}}}{{dt}} + \frac{{\partial {{\bf{r}}_i}}}{{\partial t}} \\
来个求和符号,并且把 广义坐标对时间的导数即广义速度 记为其字母的上面打一点,于是有:
{{\bf{\dot r}}_i} = \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot {{\dot q}_\alpha }} + \frac{{\partial {{\bf{r}}_i}}}{{\partial t}} \\
顺带着咱们还发现了这么一个结论:
\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}} = \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \\
因为你是把 {{\bf{\dot r}}_i} 对其中一个变量 {\dot q_\alpha } 求偏导,而每个变量之间彼此独立,所以其偏导数自然是变量 {\dot q_\alpha } 前面的系数 \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} 啦。
再来看
\frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \\
这一项。 {{\bf{r}}_i} 对其中一个广义坐标的偏导数一般仍旧是所有广义坐标及时间 t 的函数。比如函数 y = 2x_1^2x_2^3 含有 {x_1} 和 {x_2} 两个变量,求函数对变量 {x_1} 的偏导数为 \frac{{\partial y}}{{\partial {x_1}}} = 4{x_1}x_2^3 ,结果依然含有所有的变量。当然了,特殊的情况里,函数对某一变量的偏导数可能是常数或者只含部分变量,大伙完全可以自行举例哈。
所以考虑一般情形下,将 \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} 对时间求导就得对所有变量再来一遍“脱衣”操作。即:
\[\frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}){\rm{ = }}\frac{\partial }{{\partial {q_1}}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \cdot \frac{{d{q_1}}}{{dt}} + \frac{\partial }{{\partial {q_2}}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \cdot \frac{{d{q_2}}}{{dt}} + \cdots + \frac{\partial }{{\partial {q_s}}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \cdot \frac{{d{q_s}}}{{dt}} + \frac{\partial }{{\partial t}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}})\]
显然我们得用上求和符号的,则有:
\[\frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) = \sum\limits_{\beta {\rm{ = }}1}^s {\frac{\partial }{{\partial {q_\beta }}}} (\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \cdot {\dot q_\beta } + \frac{\partial }{{\partial t}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}})\]
请注意是角标 \beta 在遍历取值,如有不明白,对比它的完全展开式。
嘿,你想退出不看了吗?哎,我说别急着走呀,上式不就是多元函数的求导嘛?看把你给吓的,别怕哈。况且好戏马上就要开始了,不信的话继续往后看。 由于每个广义坐标是彼此独立的,所以可以把求导的先后顺序进行调换 。为啥要这么做呢?话不多说,先看看效果吧:
\[\frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) = \sum\limits_{\beta {\rm{ = }}1}^s {\frac{\partial }{{\partial {q_\beta }}}} (\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) \cdot {\dot q_\beta } + \frac{\partial }{{\partial t}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) = \frac{\partial }{{\partial {q_\alpha }}}(\sum\limits_{\beta = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\beta }}}} \cdot {\dot q_\beta } + \frac{{\partial {{\bf{r}}_i}}}{{\partial t}})\]
看出变化了吗?求导顺序调换后,就是把对 {q_\alpha } 求偏导的操作提到最外面来了。那再看看整个括号里面是啥?不就是 {{\bf{\dot r}}_i} 么?你以为将计数序号换成 \beta 我就不认识你啦?所以这一大坨东西就简化成了:
\frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) = \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {q_\alpha }}} \\
这下你明白了交换求导顺序的目的了吧?对了,这出戏还算精彩不?偷偷告诉你,后面的好戏更多哟。
写了这么多公式,其实就是把 \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} 和 \frac{d}{{dt}}(\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}) 进行了变形和化简。来看看等式现在的样子:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\ddot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} = \sum\limits_{i = 1}^n {{m_i} \cdot \frac{d}{{dt}}({{{\bf{\dot r}}}_i}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}) - \sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {q_\alpha }}} \\
再把等式右边第一项的求和符号放到求导运算里,则:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\ddot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} = \frac{d}{{dt}}(\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} ) - \sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {q_\alpha }}} \\
这回看起来是不是有特点了?因为等式右侧的两项里都含有 {m_i}{{\bf{\dot r}}_i} ,而且偏导符号都作用在 {{\bf{\dot r}}_i} 上,唯一的区别就是偏导作用的自变量不同罢了。这又给了咱们捯饬捯饬的机会。
还记得复合函数求导的法则吗?如果复合函数长这样:
f = \frac{1}{2}{m_i}{({{\bf{\dot r}}_i})^2} \\
那么函数 f 就是各个广义坐标和广义速度的函数,因为 {{\bf{\dot r}}_i} 是各个广义坐标和广义速度的函数。现在要算 f 对某个广义坐标或广义速度的导数,不就得一层层的进行么?显然有:
\frac{{\partial f}}{{\partial {{\dot q}_\alpha }}} = \frac{{df}}{{d{{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}} = {m_i}{{\bf{\dot r}}_i} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}} \\
和
\frac{{\partial f}}{{\partial {q_\alpha }}} = \frac{{df}}{{d{{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {q_\alpha }}} = {m_i}{{\bf{\dot r}}_i} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {q_\alpha }}} \\
这两个结果刚好就能和等式右侧的第一项与第二项对上。巧不巧?
是不是有点好奇为啥会选择函数 f 呢?为啥把 f 对某个广义坐标或广义速度求导后就出现了咱想要的结果呢?其实一点也不稀奇,当你知道一些常见函数求导的结果以后,你反过来凑出这些函数岂不是易如反掌?就好比你熟悉了完全平方的展开式,你是不是就会根据现有的三项凑出一个完全平方呢?道理是一样的。
对了,你看 f 眼熟不? {{\bf{\dot r}}_i} 是位矢对时间的导数即速度,那么质量的一半乘以速度的平方不就是单个质点的动能么?那么质点系的总动能则为:
T = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {({{\bf{\dot r}}_i})^2} \\
倘若你亲自演算一下就会发现:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\ddot r}}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} = \frac{d}{{dt}}(\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial T}}{{\partial {q_\alpha }}} \\
怎么样,世界是不是一下子就清爽了很多?
如果再把之前定义的广义力翻出来,咱们花费了一些精力改造的牛顿第二定律表达式就变成了:
\sum\limits_{\alpha = 1}^s {[\frac{d}{{dt}}(\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial T}}{{\partial {q_\alpha }}} - {Q_\alpha }]} \cdot \delta {q_\alpha } = 0 \\
由于每个广义坐标是彼此独立的,要使所有项的和为零,只能是:
\frac{d}{{dt}}(\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial T}}{{\partial {q_\alpha }}} - {Q_\alpha } = 0 \\
这里有 \alpha = 1,2, \cdots ,s 。
好端端的牛顿第二定律表达式被你整成这幅模样,这是整形失败了?别急着吐槽,人家这个等式其实长得也不差,至少也很简洁,不是么? 况且我们在改造之前就说过两个目的:其一是为了解决未知的约束问题,其二是为了避免使用矢量式 。你看它是不是都解决了?至于能否把它熟练地用得飞起,就看你的数学水平了。
当然了,大佬们也想面对简单问题,所以把目光瞄向了广义力。对于一类被称为 保守力 的力来说,它们共同的特点是: 对物体做的功与物体的运动路径无关,只与物体的起止位置有关 。这句话一说出来,是不是立刻想到了好几种这样的力?重力、弹力、静电力、分子间的作用力。既然这些力做功有如此特点,它们就会对应着相应的势能:重力势能、弹性势能、电势能、分子势能,是不是个个都耳熟能详?
咱们就拿最简单的重力来说吧。高中物理里,重力做功与重力势能变化之间的关系很简洁:
mg \cdot \Delta h = - \Delta {E_p} \\
也就是说,重力可以表示为:
mg = - \frac{{\Delta {E_p}}}{{\Delta h}} \\
对于质量不变的物体来说,其受到的重力是恒定的(不考虑高度和纬度变化带来的微小影响)。所以咱们可以利用上式计算出整个过程里物体在任意位置的重力。那么问题来了,换成一个变化的力,比如弹力、非恒定的电场力,又该如何求出物体在某处所受的保守力呢?
这个问题是不是似曾相识呀?祭出极限大法不就可以了么?咱让初末两位置无限接近,极限情况下,上述的比值不就是物体在某处所受的保守力么?等式:
mg = - \mathop {\lim }\limits_{\Delta h \to 0} \frac{{\Delta {E_p}}}{{\Delta h}} \\
蹦蹦跳跳地向你招手。
等等,这不就是重力势能对高度的导数么?即:
mg = - \frac{d}{{dh}}{E_p} \\
同理,弹力与弹性势能之间、电场力与电势能之间都有类似的关系,有兴趣就自己去推理吧。咱们就统一把势能记为 U ,显然势能 U 是位置的函数。由于力是矢量,在直角坐标里有对应的分量,根据刚才得到的关系,则每个方向上的保守力的分量大小为:
{F_x} = - \frac{{\partial U}}{{\partial x}},{F_y} = - \frac{{\partial U}}{{\partial y}},{F_z} = - \frac{{\partial U}}{{\partial z}} \\
可能有读者会疑惑这里为啥是偏导,而刚才重力的表达式里却是导数。很简单,重力势能只与竖直高度有关(重物不变),所以重力势能是位置(竖直方向)的单变量函数。而一般情形下,势能是位置分量的多变量函数。
另外,如果你想直接写出保守力矢量与势能的关系,就得写成:
{\bf{F}} = - \frac{{\partial U}}{{\partial {\bf{r}}}} \\
因为势能对位矢求偏导,其实就是分别对它的三个直角坐标分量求偏导,结果依旧是矢量,即:
\frac{{\partial U}}{{\partial {\bf{r}}}} = \left( {\frac{{\partial U}}{{\partial x}},\frac{{\partial U}}{{\partial y}},\frac{{\partial U}}{{\partial z}}} \right) \\
而力不就是: {\bf{F}} = \left( {{F_x},{F_y},{F_z}} \right) 么?明白否?
稍微推广一下,对于含有 n 个质点的系统来说,其势能 U 是与每个质点位置都有关的函数。所以每个质点所受保守力的各个分量分别为:
{F_{ix}} = - \frac{{\partial U}}{{\partial {x_i}}},{F_{iy}} = - \frac{{\partial U}}{{\partial {y_i}}},{F_{iz}} = - \frac{{\partial U}}{{\partial {z_i}}} \\
这里有 i = 1,2, \cdots ,n 。
有了这些铺垫,广义力:
{Q_\alpha } = \sum\limits_{i = 1}^n {{{\bf{F}}_i}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \\
就可以拿来改造了。求和符号里是两个矢量的数量积,咱们把它俩改成坐标形式,即:
{Q_\alpha } = \sum\limits_{i = 1}^n {( - \frac{{\partial U}}{{\partial {x_i}}}} , - \frac{{\partial U}}{{\partial {y_i}}}, - \frac{{\partial U}}{{\partial {z_i}}}) \cdot (\frac{{\partial {x_i}}}{{\partial {q_\alpha }}},\frac{{\partial {y_i}}}{{\partial {q_\alpha }}},\frac{{\partial {z_i}}}{{\partial {q_\alpha }}}) \\
接下来就是向量数量积的坐标运算啦,咱就不多费口舌了,结果为:
{Q_\alpha } = \sum\limits_{i = 1}^n {( - \frac{{\partial U}}{{\partial {x_i}}}} \cdot \frac{{\partial {x_i}}}{{\partial {q_\alpha }}} - \frac{{\partial U}}{{\partial {y_i}}} \cdot \frac{{\partial {y_i}}}{{\partial {q_\alpha }}} - \frac{{\partial U}}{{\partial {z_i}}} \cdot \frac{{\partial {z_i}}}{{\partial {q_\alpha }}}) \\
等式右边的这一坨东西连同求和符号一起,恰好就是 - \frac{{\partial U}}{{\partial {q_\alpha }}} 的展开式。因为 U 是每个直角坐标分量的函数,而它们又是广义坐标的函数,那么复合函数求导的链式法则用起来撒。 如此一来,广义力就及其简单了:
{Q_\alpha } = - \frac{{\partial U}}{{\partial {q_\alpha }}} \\
对比“普通力”和势能之间的关系,你会发现两个等式的形式及其相似。从这个角度来说,把它称为广义力也是名副其实呀。
把这种简单的结果带入到之前的方程里,就有:
\frac{d}{{dt}}(\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial (T - U)}}{{\partial {q_\alpha }}} = 0 \\
由于势能一般只是位置的函数,与速度或者广义速度无关,说明:
\frac{{\partial U}}{{\partial {{\dot q}_\alpha }}} = 0 \\
所以可以把等式右边第一项里添一个零项,使得方程的形式变得更加简洁,即:
\frac{d}{{dt}}(\frac{{\partial (T - U)}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial (T - U)}}{{\partial {q_\alpha }}} = 0 \\
如果你嫌书写太麻烦,可以令:
L = T - U \\
则有:
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial L}}{{\partial {q_\alpha }}} = 0 \\
这就是大名鼎鼎的拉格朗日方程, L 被称为拉格朗日函数 !是的,他做到了!此方程随着他的巨著《分析力学》一出,拉氏从此封神!
咱们回想初衷,不就是希望把牛顿第二定律变得好用一点么?心高气傲的拉格朗日才不会满足于小打小闹地数学技巧,他要的是站在巨人肩膀上开宗立派,发展出能一劳永逸解决力学问题的根本方法。 这就好比战场杀敌,弱时小米步枪战术穿插,强时飞机大炮给老子炸!火力强就是王道 !
这里咱们承认拉氏方程的根本性,原因之一是无论广义坐标怎么取,拉格朗日方程都是不变的,这种万变不离其宗的魅力谁能抵挡?至于它是否还具有更深层次的意义,有待后文揭晓。
在即将结束此节内容之际,咱还得回答读者心中可能的一个疑惑:美如诗的拉格朗日方程是在保守力的前提得出的,那么问题就来了,保守力虽有,难道所有的力都是保守力?起码咱们熟知的摩擦力可不是保守力!这怎么搞?
你得这么看: 从本质上摩擦力是电磁力,而电磁力属于保守力 。所以拉格朗日方程似乎不会遇到非保守力的情形。不过这是从微观层面来说的,可是在宏观层面摩擦力是真实存在的,而且也不是保守力,此时咱们得到的拉格朗日方程就不能把广义力那一项进一步化简了。至于计算起来会不会很头铁,机智的我再次甩锅给数学了哈。
七、费马原理和最速降线
在揭示拉格朗日方程的深刻内涵之前,咱们得把目光转移到拉格朗日之前的时代。因为在此之前,有两个不同问题的答案殊途同归,冥冥之中好像暗示着什么。
前面已经提到过费马原理和最速降线问题,现在咱们要正儿八经地写出方程进行求解了。咱们都知道光在介质中的传播速度满足:
v = \frac{c}{n} \\
为了使讨论一般化,在光线穿过的平面区域内,介质的折射率 n 与所在的位置有关,即折射率 n 是坐标的函数。显然,光在介质中的传播速度就是坐标的函数,将其记为 v(x,y) 。
如今咱们想计算出光从一点传播到另一点的时间,不就是路程除以传播速度的事嘛,考虑到传播速度是变化的,微积分拿去用,不谢哈。所以咱们得先计算光通过的一小段路程,有:
ds = \sqrt {{{(dx)}^2} + {{(dy)}^2}} \\
然后算出通过这一小段路程的时间为:
dt = \frac{{ds}}{v} = \frac{1}{c} \cdot n(x,y) \cdot \sqrt {1 + {{(\frac{{dy}}{{dx}})}^2}} \cdot dx \\
最后算出通过全段路程的时间为:
\tau = \int_0^t {dt = \frac{1}{c}\int_0^x {n(x,y)\sqrt {1 + {{\left( {\frac{{dy}}{{dx}}} \right)}^2}} } } dx \\
费马原理说光在介质中通过固定两点时,是沿着传播时间最短的路径行进的。 所以咱们现在的任务就是要找到一个路径函数 y(x) 使得 \tau 最小 。
而最速降线问题与之类似。
咱们先算出小球经过的一小段路程:
ds = \sqrt {{{(dx)}^2} + {{(dy)}^2}} \\
再根据机械能守恒定律,可以求出小球下降高度为 y 时对应的速度,即:
mgy = \frac{1}{2}m{v^2} \\
可得:
v = \sqrt {2gy} \\
所以小球通过这一小段路程的时间为:
dt = \frac{{ds}}{v} = \frac{1}{{\sqrt {2gy} }} \cdot \sqrt {1 + {{(\frac{{dy}}{{dx}})}^2}} \cdot dx \\
显然,小球通过全段路程的时间为:
\tau = \int_0^t {dt = \int_0^x {\frac{1}{{\sqrt {2gy} }}\sqrt {1 + {{\left( {\frac{{dy}}{{dx}}} \right)}^2}} } } dx \\
不难看出, 最速降线问题目的也是要在两端固定的区间里找到一个路径函数 y(x) 使得 \tau 最小 。既然如此,两个问题就一并解决吧。虽然两个 \tau 的表达式的具体内容不一样,但是从形式上都可以写成:
\tau = \int_{{x_1}}^{{x_2}} {F[x,y(x)} ,y'(x)]dx \\
其中泛函 F 的变量有俩—— y(x) 和 y'(x) 。而咱们的求解目的就是找出 y(x) 使得 \tau 最小,那么目光自然就落在了泛函积分 \tau (也是泛函)的导数的零点上。
要算泛函的导数,也就是计算泛函的变分 \delta \tau ;而它又取决于函数 y(x) 的变分:
\delta y = \tilde y(x) - y(x) \\
所以咱们得先从此处入手。这里的 \tilde y(x) 是任意一条可能的路径,而 y(x) 是咱们要找的那条唯一的路径。 由于真实问题的背景里明确要求所有路径的两个端点相同,所以在两个端点处有函数 y(x) 的变分位零 ,即:
\delta y({x_1}) = \delta y({x_2}) = 0 \\
接着,咱们就引入一个变量 \varepsilon 和一个与自变量 x 有关的任意函数 \eta (x) ,将函数 y(x) 的变分写成:
\delta y = \tilde y(x) - y(x){\rm{ = }}\varepsilon \eta (x) \\
这里只要求 \eta (x) 在两个端点处满足:
\eta ({x_1}) = \eta ({x_2}) = 0 \\
而 \delta y 的值只受变量 \varepsilon 控制。
有点迷惑不?明明 \delta y = \varepsilon \eta (x) ,一面说函数 \eta (x) 是任意的,一面又说 \delta y 的值只受变量 \varepsilon 控制,这不是挂羊头卖狗肉嘛?
请听好,是这样理解的:咱们是事先任选一个函数 \eta (x) ,这一步确定以后再通过变量 \varepsilon 去控制 \delta y 的值。 这就好比炒菜以前你就往锅里随机洒了一把盐,最后这道菜的咸淡就只能用加入的水量来控制,明白了么 ?是不是妥妥的有控制变量法的味道呀?
这么处理的好处是可以把泛函 \tau 看成是参数 \varepsilon 的单变量函数,因为泛函的变量:
\tilde y(x) = y(x){\rm{ + }}\varepsilon \eta (x) \\
是参数 \varepsilon 的单变量函数,意味着:
\tilde y'(x) = y'(x) + \varepsilon \eta '(x) \\
也是如此。
那么把泛函 \tau 看成是参数 \varepsilon 的单变量函数有啥好处咧?就问你是喜欢一元函数还是多元函数?二选一是不是就老实地选一元函数?现在重新书写一遍目标泛函,即为:
\tau [\varepsilon ] = \int_{{x_1}}^{{x_2}} {F[x,\tilde y(x)} ,\tilde y'(x)]dx \\
如此一来,泛函 \tau 取极值的必要条件变为:
\frac{{d\tau }}{{d\varepsilon }} = 0 \\
求导的链式法则还不用起来?显然有:
\frac{{d\tau }}{{d\varepsilon }}[\varepsilon ] = \frac{d}{{d\varepsilon }}\int_{{x_1}}^{{x_2}} {F(x,\tilde y,\tilde y')} dx = \int_{{x_1}}^{{x_2}} {(\frac{{\partial F}}{{\partial \tilde y}}\frac{{\partial \tilde y}}{{\partial \varepsilon }} + \frac{{\partial F}}{{\partial \tilde y'}}\frac{{\partial \tilde y'}}{{\partial \varepsilon }})} dx \\
之所以写成 \frac{{d\tau }}{{d\varepsilon }}[\varepsilon ] 是想说明这个导数也是参数 \varepsilon 的函数。
刚才咱们在写 \delta y 的时候就说过 y(x) 是咱们要找的那条唯一路径,也就是说当:
\tilde y(x) = y(x) \\
时才有:
\frac{{d\tau }}{{d\varepsilon }} = 0 \\
所以这就要求 \varepsilon =0,于是咱们就解决了:
\frac{{\partial F}}{{\partial \tilde y}} = \frac{{\partial F}}{{\partial y}} \\
和
\frac{{\partial F}}{{\partial \tilde y'}} = \frac{{\partial F}}{{\partial y'}} \\
另外,根据
\tilde y(x) = y(x){\rm{ + }}\varepsilon \eta (x) \\
和
\tilde y'(x) = y'(x) + \varepsilon \eta '(x) \\
两式,有:
\frac{{\partial \tilde y}}{{\partial \varepsilon }} = \eta \\
和
\frac{{\partial \tilde y'}}{{\partial \varepsilon }} = \eta ' \\
好啦,万事俱备,咱就开始吹东风吧。目标导数就写成:
\frac{{d\tau }}{{d\varepsilon }}[0] = \int_{{x_1}}^{{x_2}} {(\frac{{\partial F}}{{\partial y}}\eta + \frac{{\partial F}}{{\partial y'}}\eta ')} dx \\
为了利用两端处 \eta ({x_1}) = \eta ({x_2}) = 0 的特点,所以得把右侧第二项改一改。因为这一项里有 \eta '(x) ,将其取定积分后就能出现 \eta ({x_1}) 和 \eta ({x_2}) 。但是 \eta '(x) 前面还有一项与它相乘,是不是得把它和 \eta (x) 凑到一起求导?前文已经用过的分部积分法还记得不?变形结果给你呈上:
\frac{{\partial F}}{{\partial y'}}\eta ' = (\frac{{\partial F}}{{\partial y'}}\eta )' - \frac{d}{{dx}}(\frac{{\partial F}}{{\partial y'}}) \cdot \eta \\
接下来只需对上式两边积分:
\int_{{x_1}}^{{x_2}} {\frac{{\partial F}}{{\partial y'}}\eta '} dx = (\frac{{\partial F}}{{\partial y'}}\eta )\mathop |\nolimits_{{x_1}}^{{x_2}} - \int_{{x_1}}^{{x_2}} {\frac{d}{{dx}}(\frac{{\partial F}}{{\partial y'}}) \cdot \eta } dx \\
等式右侧的第一项就为零了,因为
\eta ({x_1}) = \eta ({x_2}) = 0 \\
最终,咱们的目标导数就变成这样了:
\frac{{dT}}{{d\varepsilon }}[0] = \int_{{x_1}}^{{x_2}} {(\frac{{\partial F}}{{\partial y}}\eta - \frac{d}{{dx}}(\frac{{\partial F}}{{\partial y'}})\eta )} dx \\
由于
\frac{{dT}}{{d\varepsilon }}[0] = 0 \\
而 \eta 具有任意性,所以只能是:
\frac{d}{{dx}}(\frac{{\partial F}}{{\partial y'}}) - \frac{{\partial F}}{{\partial y}} = 0 \\
这里稍微多说几句,假若被积函数 F 里有多个独立变量 y 和其对应的导函数 y' ,即泛函为:
\tau = \int_{{x_1}}^{{x_2}} {F[x,{y_1}(x)} ,{y_1}^\prime (x),{y_2}(x),{y_2}^\prime (x), \cdots ,{y_n}(x),{y_n}^\prime (x)]dx \\
并且所有函数取值的端点也是固定的。那么只需完全复用上面的推导过程,则有:
\frac{{d\tau }}{{d\varepsilon }}[0] = \sum\limits_{i = 1}^n {(\frac{{\partial F}}{{\partial {y_i}^\prime }}{\eta _i})\mathop |\nolimits_{{x_1}}^{{x_2}} } + \int_{{x_1}}^{{x_2}} {\sum\limits_{i = 1}^n {(\frac{{\partial F}}{{\partial {y_i}}}{\eta _i} - \frac{d}{{dx}}(\frac{{\partial F}}{{\partial {y_i}^\prime }}){\eta _i})} } dx \\
不要怕嘛,相比只有一个变量的情况来说,多个变量的情形无非就是在求导时熟练使用链式法则。
那么对于每个独立的变量 {y_i} 来说,其对应的 {\eta _i} 在其端点处均有:
{\eta _i}({x_1}) = {\eta _i}({x_2}) = 0 \\
所以上面那个繁琐的等式里,右边的第一项为零了。再根据:
\frac{{d\tau }}{{d\varepsilon }}[0] = 0 \\
的结果以及每个 {\eta _i} 是任意的,所以就能得到如此的 n 个方程:
\frac{d}{{dx}}(\frac{{\partial F}}{{\partial {y_i}^\prime }}) - \frac{{\partial F}}{{\partial {y_i}}} = 0{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} (i = 1,2, \cdots ,n) \\
卧槽, 这个结果的形式与上一节得出的拉格朗日方程如出一辙!如果把上式里的 F 换成 L 、 {y_i} 换成 {q_\alpha } ,这不活脱脱的就是力学里面的拉格朗日方程了么 ?这是巧合还是里面有不可告人的秘密?元芳,你怎么看?
咱们捋一捋,最速降线问题在欧拉时代(1728年)就利用变分法(从几何的角度)得到了完美地解决,但若干年后(1755年)的拉格朗日提出了更普遍的方法——从分析的角度利用变分法,并严格得出了上述方程。咱们刚才的推导思路就是拉格朗日对变分法发展的贡献,此乃拉神的成名作!而为了解决含有约束的力学问题而诞生的拉格朗日方程是之后的事了(1788年)。
试想一下你是当年的拉神,当你看到自己全新改造的力学方程竟然有早已在世且失散多年的孪生兄弟,你会不会去重新审视变分法和力学方程之间的关系呢?所谓老树开新花,像这种老方法应用到新问题并得出新结论的故事即将上演。
八、最小作用量的前世今生
现在咱们的思绪又得重新回到费马时代,他和一批批学者一样是简洁的拥趸—— 自然界本身就是简洁的亦或是描述自然界的理论是简洁的,总之简洁就是王道 。在这种信仰的加持下,他必然想要提出一个能解释多种光现象的理论,于是他认准了光在传播过程中走时间最短的路径。
想知道这个原理是如何来解释光的传播特点的吗?不要走开哈。
我们知道光在同一种介质中传播时是沿直线传播的。由于两点之间线段最短,而光在同种介质中的传播速度是定值,所以光沿着这条最短路径传播用时最短。
再来看光的反射现象,它指的是光从一种介质射到与另一种介质的分界面时,一部分光会返回到原介质中的现象。即整个过程里,光始终在同一介质中传播,所以传播的速度是定值。显然,当整个光路的长度最短时对应的传播时间最短。从下图中可以看到,依然是两点之间线段最短的特点。
最后再来看光的折射现象,它指的是光从一种介质射到与另一种介质的分界面时,一部分光会进入到另一种介质中的现象。由于光在不同介质中传播,所以传播的速度会发生变化。显然这种情况下,路程最短对应的时间就不是最短的了。
因为你得让光在传播速度快的介质里多走一段路程,而在传播速度慢的介质里少走一段路程,这样才能使得总时间最短。至于折射点在哪,费马自有他的方法给确定出来。这些细节不是这里的重点,咱也就写个批注吧:“ 我想到了一个绝妙的办法来找出折射点,只是这里的空白处太小,写不下了 ”。毕竟咱等凡人学不来费大神的成就,他的骚操作总可以学学吧?
可惜咱们被费大神撩得刚要入迷就被一盆冷水给泼醒了,因为费马原理虽然可以对光的传播特点做统一解释,可是面对光的干涉或者衍射现象就无能为力了。而且不怪咱们事后诸葛,这个原理本就有很大部分的先验假设,你可以认为是费马的物理直觉或信仰的体现。况且当时也没有合适的数学工具对其进行严格证明,所以这一次费马对简洁地追求算不上成功。但是前人栽树后人乘凉,费大神的思想星火吸引着后来人助其燎原。
在发展费马原理的人群中,绝对绕不开被称为最小原理之父的莫培督了。他认可费马的思想,但是想不通光的传播路径为啥是从耗时最短和路径最短中二选一。于是他来了个新瓶装旧酒——光所钦定的路径,其真正优势在于作用量最小!
至于作用量是啥,莫培督给出的答案是质量、速度和所通过的距离三者之积。至于他为什么要这么定义,鬼知道!这不就留下把柄了么?马赫作为代表就曾严厉批评,说莫培督的最小作用量原理只是一个模糊不清的概念,勉强地被用来解释各种不同的物理现象。想象一下你看着答案去凑解答步骤,是不是有内味了?
虽然莫培督的最小作用量被不少人诟病,但是它确实尽到了去统一解释不同物理现象的使命,比如不仅解释得了光的折射定律,还驾驭了碰撞过程中的动量守恒定律。这给追求简洁的执念喂的饼还不够大吗?虽然这个饼有点夹生,好在神队友欧拉来操刀了。
欧拉在研究静力学的平衡问题时就独立发现这类问题的特性都可以用某个量取极小值而导出。这下可就激发了欧拉的探索欲望,他想得到描述力学问题的普遍方程。好一个透过现象看本质,要知道欧拉可是解决了最速降线问题的大神,变分法就是由他创立的,人家的实力可是明摆着呢。
他修改了莫培督的最小作用量原理的表述:设定一个质量为 m 、速度为 v 的质点移动无穷小距离 ds ,则这个运动质点的真实轨迹是所有连接两个端点的可能轨迹中 \int {mvds} 取值最小的。
你说的修改表述就是加了一个积分吗?你要这样想可就图样图森破了。 欧拉是要用变分的思想找出任意可能路径中的某一条路径,而这条路径对应的作用量取最小值 。从数学上来看,这是一个泛函问题。而莫培督的表述其实就是一个函数极值问题,即他已经知道了实际轨迹,然后用他定义的作用量一算,唉,发现其取最小值。 这就好比欧拉是正向写出解答过程求答案,而莫培督是知道答案反过来给出解释 。这才是欧拉表述的精髓所在,况且人家还自带严格的数学工具做后盾。
咱们弄两个例子来体验一下这个表述的威力吧。先看最简单的情形,如果没有任何外力作用在一个运动的质点上,根据牛顿第一定律可知,这个质点做匀速直线运动。那么从作用量的角度来看,如何得出这个结论呢?
由于质点的质量不变,当其不受外力时,其运动的速度也不会发生变化(加速度为零)。对于作用量 A = \int {mvds} 而言,质点在两点间的所有可能的运动轨迹中,只有直线轨迹才能使得作用量取最小值。所以结论就是:质点做的是匀速直线运动。
再来看抛体运动。质量为 m 的物体在运动过程中只受重力的作用,设质点的初速度为 {v_0} 。根据动能定理可以很容易知道质点运动一段距离后的速度为:
v = \sqrt {v_0^2 + 2gy} \\
这里的 y 是指起点和终点之间的竖直高度差。如果沿竖直和水平方向建立直角坐标系,则 y 就是竖直方向上的位移。咱们的目的就是要找出竖直位移 y 和水平位移 x 之间的关系,即轨迹方程。显然现在我们并不知道 y 的函数表达式长什么样。
那就试试作用量吧。首先写出运动过程中的小段弧长:
ds = \sqrt {{{(dx)}^2} + {{(dy)}^2}} \\
所以作用量为:
A = \int {mvds = \int {m\sqrt {v_0^2 + 2gy} \sqrt {1 + {{(\frac{{dx}}{{dy}})}^2}} } } dy \\
利用前面介绍的求变分导数的办法就能找到令作用量取最小值的条件,由此就可以求出 y 和 x 的关系,结果正是反映抛体运动规律的二次函数。这就留给大伙当个练习做做。
欧拉虽然有理有据地论证了最小作用量的观点,但是没有力学方程的背书让此观点依旧显得有些神秘。不过欧拉的成功尝试让拉格朗日看到了曙光,于是乎,拉神拿起了有自主知识产权的变分法武器去攻打最小作用量这个高地。
咱们在前面为了解决约束问题,通过引入虚位移的办法成功改造了牛顿第二定律,得到了被称为动力学普遍方程的结果:
\sum\limits_{i = 1}^n {({{\bf{F}}_i} - {m_i}{{\bf{a}}_i})} \cdot \delta {{\bf{r}}_i}{\rm{ = }}0 \\
由它出发,一路斩荆披棘得到了拉格朗日方程,从而可以求得物体的运动轨迹。而拉格朗日早在解决数学里的泛函极值时就利用变分法得到了相同的方程,因此很难不联想到用变分法求作用量的极值也能求得物体的运动轨迹。探索就是从改造动力学普遍方程开始的, 前方高能预警 !
首先把方程移项成:
\sum\limits_{i = 1}^n {{{\bf{F}}_i} \cdot \delta {{\bf{r}}_i}} {\rm{ = }}\sum\limits_{i = 1}^n {{m_i}{{\bf{a}}_i}} \cdot \delta {{\bf{r}}_i} \\
再把加速度写成位矢的二阶导数。显然咱们是讨厌处理二阶导数的,所以分部积分法刚好可以麻溜地用在等式右侧的这一项上:
\sum\limits_{i = 1}^n {{m_i}} {{\bf{\ddot r}}_i} \cdot \delta {{\bf{r}}_i} = \sum\limits_{i = 1}^n {\frac{d}{{dt}}} ({m_i}{{\bf{\dot r}}_i} \cdot \delta {{\bf{r}}_i}) - \sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \frac{d}{{dt}}} (\delta {{\bf{r}}_i}) \\
考虑到约束问题的自由度,所以方程得改用广义坐标,那么下面的几段文字纯粹是数学运算了,各位看官请保重。
先看
\sum\limits_{i = 1}^n {\frac{d}{{dt}}} ({m_i}{{\bf{\dot r}}_i} \cdot \delta {{\bf{r}}_i}) \\
这一项,求导符号与求和符号可以交换顺序,所以该项就变成了:
\frac{d}{{dt}}\left( {\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \delta {{\bf{r}}_i}} } \right) \\
在第六节里已经出现过很多结论,咱们这里就照搬啦。各位要是忘记了,请辛苦回头查阅哈。显然有:
\sum\limits_{i = 1}^n {{m_i}} {{\bf{\dot r}}_i} = \sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}}} \\
和
\delta {{\bf{r}}_i} = \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } \\
所以有:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \delta {{\bf{r}}_i}} = \sum\limits_{i = 1}^n {(\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot } \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha }) \\
求导的链式法则用了那么多次,你或多或少应该有些敏感了吧?你瞧上式的括号里出现了
\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \\
这样的项,这里有 \alpha = 1,2, \cdots s 。
倘若 \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} 里的 \partial {{\bf{r}}_i} 能变成 \partial {{\bf{\dot r}}_i} ,那么这个乘积不就变成了动能 T 对广义坐标的求导结果了么?想到这里,结论
\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_i}}} = \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_i}}} \\
映入了咱的脑海。
我在这里之所以略显啰嗦,是希望读者明白数学证明也好、数学推导也罢,并不是毫无目的的演算,而是顺着逻辑线自然发展的。所以读者不要被这种略显繁琐的推导给吓到了。
这下可好了,于是就有:
\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } = \frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} \cdot \delta {q_\alpha } \\
请注意“一点”之差 !你瞧
\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} \\
就是动能 T 通过第 i 个位矢对全体广义速度的偏导之和。由于每个位矢的导数都会一般含有全体广义速度,所以把全体位矢遍历一遍后就得到了动能 T 对全体广义速度的偏导之和,即
\sum\limits_{i = 1}^n {(\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} } ) = \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}} \\
所以有:
\sum\limits_{i = 1}^n {(\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \sum\limits_{\alpha = 1}^s {\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} \cdot \delta {q_\alpha }) = } \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}} \cdot \delta {q_\alpha } \\
于是咱们就将
\frac{d}{{dt}}\left( {\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \delta {{\bf{r}}_i}} } \right) \\
这一项成功地变成了:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}} \cdot \delta {q_\alpha }) \\
是不是看得还算过瘾且轻松呢?
接着看第二项:
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \frac{d}{{dt}}} (\delta {{\bf{r}}_i}) \\
这个简单,由于求导运算和变分运算可以调换位置,那么马上可以得到
\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \frac{d}{{dt}}} (\delta {{\bf{r}}_i}){\rm{ = }}\sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i} \cdot \delta {{{\bf{\dot r}}}_i}} \\
而右边的结果就是 \delta T 。
对了,原方程里的
\sum\limits_{i = 1}^n {{{\bf{F}}_i} \cdot \delta {{\bf{r}}_i}} \\
这一项不就是主动力的虚功么?即:
\sum\limits_{i = 1}^n {{{\bf{F}}_i} \cdot \delta {{\bf{r}}_i}} = \delta W \\
你若换成广义坐标,那就是:
\sum\limits_{i = 1}^n {{{\bf{F}}_i} \cdot \delta {{\bf{r}}_i}} = \sum\limits_{\alpha = 1}^s {{Q_\alpha } \cdot \delta {q_\alpha }} = \delta W \\
这个结论也早就在第六节得出了。所以不管你是用啥坐标体系,这一项就是主动力的虚功,就算天王老子来了也变不了。
好了,来看看动力学普遍方程的整形结果吧:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot \delta {q_\alpha }} ) = \delta T + \delta W \\
既然整过形,咱们就称其为动力学普遍方程的1.0版本吧。哎,大夫,还能帮我把这儿给整整那儿给修修不?咱还想再简化一点。 行,那就满(得)足(加)你(钱) !
上式左侧的括号里不是有
\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot \delta {q_\alpha }} = \sum\limits_{i = 1}^n {{m_i}{{{\bf{\dot r}}}_i}} \cdot \delta {{\bf{r}}_i} \\
吗?这就是坐标变换的必然结果,显然 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} 自然就是对应着咱们熟悉的 {m_i}{{\bf{\dot r}}_i} 这一项,所以请大声说出来它的名字—— 广义动量 !偷个懒,换个简单的字母代替它,令:
{p_\alpha } = \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \\
另外,如果主动力是保守力,那么保守力的虚功就有对应的势能 U 。那么根据功能关系即有:
\delta W = - \delta U \\
要是物体运动过程里还存在着机械能守恒的特点 ,那么物体的动能与势能之和就是一个定值,即:
T + U = c \\
这里的 c 是一个常数。只需对等式两边取变分,则有:
\delta T = - \delta U \\
经过这么一番精心打扮后,动力学普遍方程被简化成:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = 2\delta T \\
撒花,2.0版本的动力学普遍方程发版啦!高能预警暂告一段落,果断给自己加个鸡腿吧,能看到这里实属不易!
享受完美食地犒劳,咱们又得继续开工啦,毕竟唯美食和知识不可负也。各位在刚才的数学变换中有没有忘记最初的目标呢?咱们可不是吃饱了没事干就跑来给动力学普遍方程做个整形,咱们是希望借助这个方程撑腰去坐实最小作用量原理。所以咱们得紧盯作用量不放手。
说到这,估计大家和我一样一脸懵逼——作用量到底是个啥? 其实作用量就是人为定义的一个东西,现在有了动力学普遍方程和严谨的变分学做后援,咱们要做的就是把它给“凑出来” !是的,你没看错,就是给“凑出来”。所以接下来的内容数学味颇浓而物理色彩有些黯淡, 警报拉响 !
回想上一节得出拉格朗日方程的经过,咱们的目标泛函形如:
\tau = \int_{{x_1}}^{{x_2}} {F[x,y(x)} ,y'(x)]dx \\
当泛函的变分 \delta \tau = 0 时即可得到拉格朗日方程。所以咱们得想心思去找到这么一个积分泛函。打量一下整形后的动力学普遍方程,将等式两边积分:
\int_{{t_1}}^{{t_2}} {\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = \int_{{t_1}}^{{t_2}} {2\delta T} } dt \\
恰好等式右侧的这一项里有变分符号,若将其拿到积分符号外侧,作用量会不会就构造好了?
呃,我有句话不知当讲不当讲:上述积分有一个非常隐蔽的bug。什么?!你看呀,在目标泛函
\tau = \int_{{x_1}}^{{x_2}} {F[x,y(x)} ,y'(x)]dx \\
里,咱们是要求所有可能函数的自变量都在 [{x_1},{x_2}] 之间取值,也就是所有函数曲线的端点相同。 如果咱们给动力学方程两边积分,就意味着默认了所有可能路径都有相同的起止时刻 ,因为你是冲着构造作用量去的撒,那不得和人家目标泛函一样么?
可是咱们在得出
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = 2\delta T \\
的时候假设了物体在运动过程中机械能守恒,这不bug就出现了: 所有可能路径的起止位置一样(这是大前提)、现在又要求所有路径对应的起止时刻也相同、你还假设所有路径都有机械能守恒的特点,你觉得这么多要求加一起是不是可以直接报出这条轨迹的名字了 ?这哪还需要对作用量求变分呢?
所以, 在所有可能路径的起止位置一样、又想利用机械能守恒的特点,那么就意味着所有可能路径的起止时刻必然不同 。咱们现在必须重新审视函数的变分了,深呼吸一下, 警报再次拉响 !
当每条路径对应的起止时刻不同时,路径函数的变分还要考虑到时刻不同所带来的影响。按照第四节所叙述的函数变分记为:
\delta q = {q_1}(t) - q(t) \\
将 \delta q 称为等时变分。为了加以区分,这里把非等式变分记为 \tilde \delta q (没找到合适的符号,只能用 \tilde \delta 将就一下),有:
\tilde \delta q = {q_1}(t + \Delta t) - q(t) \\
此处的 {q_1}(t + \Delta t) 是考虑到时间变化的一条曲线。
参考一元函数的微分可得:
{q_1}(t + \Delta t) = {q_1}(t) + \dot q(t) \cdot \Delta t \\
将其带入到非等时变分的式子可得:
\tilde \delta q = {q_1}(t) - q(t) + \dot q(t) \cdot \Delta t \\
显然,等式可变为:
\tilde \delta q = \delta q + \dot q \cdot \Delta t \\
将得到的 \delta q 带入到动力学普遍方程,则:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = \frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} ) - \frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot {{\dot q}_\alpha }} \cdot \Delta t) \\
上式左侧的结果是现成的,即:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = 2\delta T \\
而改造的重心就在右侧的第二项,没别的,就是眼熟。谁让右侧第一项里含有非等时变分呢,咱以前从没弄过撒。
现在目光锁定在了
\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot {{\dot q}_\alpha }} \\
上,你若看不出啥门道,咱们把广义动量给换回来,即:
\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot {{\dot q}_\alpha }} \\
我猜你可能不习惯求动能对广义速度的偏导,没关系,咱把坐标换回去就完事了。(此处的推导方法不唯一,下面的推导过程就当抛砖引玉了)
咋把坐标换回去呢?还是求导的链式法则撒,只不过这回是反着用,不信你看结果:
\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot {{\dot q}_\alpha }} = \sum\limits_{\alpha {\rm{ = }}1}^s {\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} \cdot {{\dot q}_\alpha }} \\
没毛病吧?只是这越写越长的式子看得人心里发毛,当务之急是赶紧给它整形。
由于位矢和广义坐标之间的函数关系本就未知,所以 \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}} 这一项就是拦路虎。好在有结论:
\frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_i}}} = \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_i}}} \\
则整形的第一步就变为:
\sum\limits_{\alpha {\rm{ = }}1}^s {\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{{\bf{\dot r}}}_i}}}{{\partial {{\dot q}_\alpha }}}} \cdot {{\dot q}_\alpha }} = \sum\limits_{\alpha {\rm{ = }}1}^s {\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot \frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}}} \cdot {{\dot q}_\alpha }} \\
由于第一个求和符号只对最后两项有作用,所以结果可以改写成:
\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot (\sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot {{\dot q}_\alpha }} } ) \\
嘿,看到
\sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot {{\dot q}_\alpha }} \\
这一项有没有一个激灵惊醒自己?咱们最初引入广义坐标的时候就把位矢与广义坐标的函数关系记为:
{{\bf{r}}_i} = {{\bf{r}}_i}({q_1},{q_2}, \cdots ,{q_s};t) \\
倘若你要求位矢的导数, 二营长,你的链式法则呢?给老子上啊 !于是有:
{{\bf{\dot r}}_i} = \sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot {{\dot q}_\alpha }} + \frac{{\partial {{\bf{r}}_i}}}{{\partial t}} \\
咋还多了 \frac{{\partial {{\bf{r}}_i}}}{{\partial t}} 这条讨厌的尾巴呢?没办法,这就是链式法则的结果啊。不过咱们也有办法甩掉它——假设 \frac{{\partial {{\bf{r}}_i}}}{{\partial t}} = 0 就可以了嘛。这意味着我们假设位矢不含有时间参数( 如此会使得拉格朗日函数也不显含时间参数,这必然会有系统机械能守恒的特点,这个结论在最后一节会抛出来 ),说明咱们考虑的对象是个稳定体系。这样的对象还是有的嘛,假设行得通。
如此,咱们的整形手术就可以完工了,有:
\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot (\sum\limits_{\alpha = 1}^s {\frac{{\partial {{\bf{r}}_i}}}{{\partial {q_\alpha }}} \cdot {{\dot q}_\alpha }} } ) = \sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot {{{\bf{\dot r}}}_i}} \\
等号右侧的结果完全就可以直接看出来了:
\sum\limits_{i = 1}^n {\frac{{\partial T}}{{\partial {{{\bf{\dot r}}}_i}}} \cdot {{{\bf{\dot r}}}_i}} = \sum\limits_{i = 1}^n {m{{{\bf{\dot r}}}_i} \cdot {{{\bf{\dot r}}}_i}} = 2T \\
也就是咱们发现: \sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot {{\dot q}_\alpha }} = 2T 。
好啦,众神归位,方程
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = \frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} ) - \frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot {{\dot q}_\alpha }} \cdot \Delta t) \\
就变成了:
2\delta T = \frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} ) - \frac{d}{{dt}}(2T \cdot \Delta t) \\
由于 \Delta t 是常量,所以
\frac{d}{{dt}}(2T \cdot \Delta t) = 2\dot T \cdot \Delta t \\
于是等式变成了:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} ) = 2\delta T + 2\dot T \cdot \Delta t \\
你看右侧的部分是不是刚好就是动能 T 的非等时变分呢?所以此式的完成态为:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} ) = 2\tilde \delta T \\
对比2.0版本的动力学普遍方程
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \delta {q_\alpha }} ) = 2\delta T \\
上式仅有的改变就是把等时变分换成了非等式变分。但正是这一细微的变化却修复了前述所提及的bug,这个补丁打得很是及时呀!
咱们现在就可以放心地对打了补丁的2.0版方程两边进行积分了,有:
\int_{{t_1}}^{{t_2}} {\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} )} = \int_{{t_1}}^{{t_2}} {2\tilde \delta Tdt} \\
对于不同的可能路径,其对应的起止时刻 {t_1} 和 {t_2} 可以不同,这里只是统一用其表示积分的上下限而已。
显然等式左边的积分结果为:
\int_{{t_1}}^{{t_2}} {\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} )} = \left. {\sum\limits_{\alpha = 1}^s {{p_\alpha } \cdot \tilde \delta {q_\alpha }} } \right|_{{t_1}}^{{t_2}} = 0 \\
因为虽然每条可能路径的起止时刻不同,但大前提是每条可能路径的起止位置是一样的,所以在两个端点处有:
{\left. {\tilde \delta {q_\alpha }} \right|_{{t_1}}} = {\left. {\tilde \delta {q_\alpha }} \right|_{{t_2}}} = 0 \\
于是乎就有了拉格朗日心心念的最小作用量啦,即:
\tilde \delta \int_{{t_1}}^{{t_2}} {2Tdt = 0} \\
也就是说拉格朗日要找的作用量为:
A = \int_{{t_1}}^{{t_2}} {2Tdt} \\
当它的变分为零时就能推导出力学中的拉格朗日方程啦!
奇怪,当初从力学问题中得出的拉格朗日方程明明长这样:
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial \dot q}}) - \frac{{\partial L}}{{\partial q}} = 0 \\
可是你这作用量里没有拉格朗日函数 L 啊。别急,待我给你变一变。还记得咱们曾经引入的拉格朗日函数等于
L = T - U \\
那么
2T = L + T + U \\
对了,咱们不是一直假设有机械能守恒的特点么?所以
T + U = c \\
于是
2T = L + c \\
这里的 c 是常量。你现在再去看看这个作用量,它能推出拉格朗日方程吗?
好啦, 警报彻底停歇 了。回想这一路的历程,咱们发现猜想终归只是猜想,无论你有多么坚定的信念也必须付之严格的证明,这颇有一番西天取经之意境。如今终达极乐世界,想必曾经的艰辛也是值得的。不过我佛讲究九九归真,劫数未满难成正果,拉格朗日推出的最小作用量原理便是如此。
究其原因就是这个最简形式的最小作用量原理只能针对机械能守恒且外力为保守力的情形,少了这些限制就无法得出这个最简形式。还有呀,上述数学味颇浓的推导过程导致后续的许多物理同僚质疑最小作用量原理只是一种有趣的数学变换,所以拉神的最小作用量原理并没有得到实际应用。
它的命运会如何发展?To be, or not to be, that is a question !
九、哈密顿原理
虽然拉格朗日的最小作用量原理没有激起太大的水花,但是拉格朗日方程可谓是威风凛凛,人称数学的一首诗!美如画也不过如此吧。后生才俊哈密顿受到这首诗的熏陶之后,宏伟目标也就随之浮现了: 要通过演绎方法从最少的公理去导出一个体系的完备表述 。显然,最小作用量原理被他看中了,而他要做的就是改进它。
这里我想简要提一提哈密顿的成果发布历程。被“数学的一首诗”熏陶过的哈密顿最早将目光投入到几何光学领域,想借用拉格朗日的思想方法去构建几何光学。天资聪颖的他做到了,并在这个过程里认识到了几何光学领域的最小作用量原理。而更能体现其水平的地方在于他将光学领域的成果类比到经典力学领域,从而重构了经典力学体系,也就有了本节的主题——哈密顿原理。
我啰嗦上面一段看似没营养的文字是希望读者明白:无论这个领域是实现了从0到1的飞跃,还是实现了从1到10的发展,都是大神们站在前人肩膀上进行接力赛的结果。即使再聪明的头脑,其迸发的思想火花都是有迹可循的。所以请读者牢记: 科学研究永远需要脚踏实地,鸡汤故事才需要夸张的天才素材 。希望读者在学习的过程中都能有正确的认识。
好啦,回到正事里来。要得到哈密顿原理,其实途径和拉格朗日非常相似,但是 哈密顿在处理变分的时候从一开始就一针见血的采用等时变分 ,这是他比拉格朗日做得好的地方。稍后大家就会看到哈密顿原理的表述,里面涉及的概念要清晰严谨得多!
至于推导出结果就非常简单了,因为可以把上一节中的主要推导过程直接复制过来。而且咱们在上一节里已经被拉格朗日鞭策过了,怎么说也会获得一些公式免疫吧。
有请1.0版本的动力学普遍方程入场:
\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot \delta {q_\alpha }} ) = \delta T + \sum\limits_{\alpha = 1}^s {{Q_\alpha } \cdot \delta {q_\alpha }} \\
这个版本的方程里没有涉及机械能守恒的假设,所以哈密顿可以放心的对其进行等时变分的处理。即 对于所有可能的路径,不仅起止位置相同,咱还要求对应的起止时间也相同 。如此一来,每条可能的路径对应的机械能就会不一样了。如果其中一条路径有机械能守恒的特点,那么其他路径就没有这个特点了。不过没关系,反正1.0版本的方程里就没这个限制。
接下来只需对这个方程两边积分:
\int_{{t_1}}^{{t_2}} {\frac{d}{{dt}}(\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot \delta {q_\alpha }} )} = \int_{{t_1}}^{{t_2}} {(\delta T + \sum\limits_{\alpha = 1}^s {{Q_\alpha } \cdot \delta {q_\alpha }} )dt} \\
这个操作咱们已经见怪不怪了。显然等式左侧的积分结果为:
\left. {\sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} \cdot \delta {q_\alpha }} } \right|_{{t_1}}^{{t_2}} = 0 \\
因为所有可能路径的起止位置一样,所以路径函数在这两处的变分为零,即:
{\left. {\delta {q_\alpha }} \right|_{{t_1}}} = {\left. {\delta {q_\alpha }} \right|_{{t_2}}} = 0 \\
只需这么简单的一步,咱们就得到了哈密顿原理,即:
\int_{{t_1}}^{{t_2}} {(\delta T + \sum\limits_{\alpha = 1}^s {{Q_\alpha } \cdot \delta {q_\alpha }} )dt} = 0 \\
不是,这是哪跟哪啊?看起来还不如拉格朗日给出的最小作用量原理呢。哎呀,不着急嘛,这个等式是哈密顿原理的一般形式,如果你想得到简化版的表达式,来嘛。
你可还认识
\sum\limits_{\alpha = 1}^s {{Q_\alpha } \cdot \delta {q_\alpha }} \\
这一项?对喽,就是主动力的虚功 \delta W 。如果主动力是保守力,这不就有
\delta W = - \delta U \\
现在再看上面的等式变成啥样了:
\int_{{t_1}}^{{t_2}} {(\delta T - \delta U)dt} = 0 \\
哦豁,咱们在前面不是把拉格朗日函数定义成 L = T - U 么?来了来了,你要的最简表达式来了,即:
\int_{{t_1}}^{{t_2}} {\delta Ldt} = 0 \\
把变分号拿到积分符号外面来,则有:
\delta \int_{{t_1}}^{{t_2}} {Ldt} = 0 \\
咋样,这简洁程度是你想要的不?清晰明了的推导过程换来如此简洁的结果,你还能不爱么?其实在第七节结尾处咱们就发现了端倪:只要把目标泛函
\tau = \int_{{x_1}}^{{x_2}} {F[x,y(x)} ,y'(x)]dx \\
里的 F 换成拉格朗日函数 L ,就能通过目标泛函的变分为零得出力学中的拉格朗日方程。而如今,咱们通过力学方程正儿八经地得出了这个结论。看来 \int_{{t_1}}^{{t_2}} {Ldt} 这个玩意还真有点内涵哟。
哈密顿给 \int_{{t_1}}^{{t_2}} L dt 起了个名字叫做 主函数 ,还给了它一个符号记作:
S = \int_{{t_1}}^{{t_2}} {Ldt} \\
于是乎,哈密顿就甩出了原理: 保守的、完整的力学体系在相同时间内,由某一初位置转移到另一已知位置的一切可能运动中,真实运动的主函数具有稳定值 ,也就是有:
\delta S = 0 \\
的结论。这就是大名鼎鼎的 哈密顿原理 (哈密顿版本的最小作用量原理)。
嘘,我知道你会疑惑啥。先说保守的事,只有在保守的条件下,作用量才能写成这个最简形式。不过前文已经谈过了保守与非保守的问题,按照目前的观点,所有的相互作用都可归纳为四种基本相互作用,而这四种基本作用全是保守的。从这个角度来看,咱们可以不用去纠结非保守的情况。倘若你非要盯着非保守的情形,那么把哈密顿原理的一般形式拿去用喽。
再来说稳定值。稍微有点高中数学底子就能明白, 对于一个函数来说,如果它的导数在某处的值为零,并不意味着这个函数在此处取到了极小值!因为还有可能取到的是极大值,甚至并非是极值。但是这些情况下统称为函数取到了稳定值 。类似的,当泛函的变分等于零时,也只能说泛函取稳定值。只是在很多物理现象里,作用量确实取的是最小值,再加上历史上一直都这么称呼的,所以最小作用量的叫法也就没有更正过来。
扫清疑惑后是不是就发现这个主函数香得不要不要呢?从它可以推导出拉格朗日方程或者动力学普遍方程,也就意味着经典力学范畴里的结论都可以由它推导出来了。这种由最少的公理推导出更多结论的理论体系正是哈密顿所追求的!他小子做到了!
更出乎他意料之外的是,哈密顿原理在经典力学范畴之外也能如鱼得水,这就甩牛顿运动定律好几条街了。高中生都很熟悉的牛顿力学有它的局限性,在电磁领域、高速领域、微观领域都不适用,但是哈密顿原理直到如今仍然担当着统一性原理的角色。从此,哈密顿原理实至名归地走上神坛,被封为“第一性原理”!
这里不得不进行一下咬文嚼字,物理学里面有定律、定理和原理的说法。 定律是大量实验现象的总结;定理是基于定律给推导出来的;原理是从大量定律中抽象出来的能够用来推导定律的框架 。比如牛顿的三大定律、机械能(动量)守恒定律、电磁感应定律等;比如动能定理、动量定理等。比如伽利略的相对性原理、最小作用量原理。看着这些熟悉的名称,定律、定理和原理之间的差异是不是就一下子体现出来了?
作用量说到这里差不多可以告一段落了。毕竟它里面的玄机需要在更广的范围里去体现,这个就得看我本人的悟性了。我争取把这个系列的文章写下去,因为我也很想体会这其中如痴如醉的美。
对喽,哈密顿不仅改造了作用量,还改造了拉格朗日方程,得出了一组更简洁、更有特点的方程。既然来都来了,那就和我一起去瞧瞧吧。
十、哈密顿方程
拉格朗日方程的诞生给解决复杂力学问题带来了福音,不过也增添了一些挑战——毕竟拉格朗日方程是一个二阶微分方程,要求解未知数得积分两次才行。要知道积分运算可比微分运算麻烦得多,况且你还要积分两次,想想都觉得头大。 所以哈密顿对方程的改造就是从降阶开始的。
咱们再把拉格朗日方程组揪出来瞧瞧:
\frac{d}{{dt}}(\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}) - \frac{{\partial T}}{{\partial {q_\alpha }}} = {Q_\alpha }{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} (\alpha = 1,2, \cdots ,s) \\
方程数量有 s 个,未知数也有 s 个,分别是 {q_1},{q_2}, \cdots ,{q_s} 。由于等式左边的第一项一般不为零,那么每个方程一般都含有这个二阶导数。
接下来咱们所说的降阶就是从这一项开始改造的。想想中学里解一元二次方程时,老师是不是教过我们一种办法叫做换元法?你有二次项没关系,咱把你替换掉!这样就能把方程化成一次方程。
类似的,哈密顿也是采用换元的做法。把广义动量拿出来,即
\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} = {p_\alpha } \\
那么方程就变成了
\frac{{d{p_\alpha }}}{{dt}} - \frac{{\partial T}}{{\partial {q_\alpha }}} = {Q_\alpha } \\
你看,从形式上方程不就降阶为一阶微分方程了么?
想法挺好,只是中间还有很多工作要做。难道你只管替换第一项,就不管第二项了?这就好比甩给你一个一元二次方程
{x^2} + 3x - 5 = 0 \\
你只顾着把 {x^2} 换成 t ,结果方程变成了
t + 3x - 5 = 0 \\
是不是一脸懵逼?一元二次方程一眨眼变成了二元一次方程。
回到拉格朗日方程里来,原本方程组只有 {q_1},{q_2}, \cdots ,{q_s} 共 s 个未知数,结果你又弄进来 {p_1},{p_2}, \cdots ,{p_s} 共 s 个新的未知数,使得未知数的总数变成了 2s 个,可是方程数量却只有 s 个,这就有点讨厌了。于是,想法子再弄出 s 个方程就是咱们接下来的目标,怎么弄呢?
你想想,引进的 s 个新变量就不能和之前的 s 个变量有关系吗?毕竟咱们换元时是令
\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} = {p_\alpha } \\
假如 {p_\alpha } 与 T 或者 {\dot q_\alpha } 有关系,那不就间接意味着 {p_\alpha } 与 {q_\alpha } 有关系了么?这每一个关系可就是实打实的一个方程啊,凑数肯定有用!
按照这个思路, T 可就是一位至关重要的媒婆。从拉格朗日方程可以看出,既然存在 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} 和 \frac{{\partial T}}{{\partial {q_\alpha }}} 这两项,意味着 T 是 {q_\alpha } 和 {\dot q_\alpha } 的函数,这里有 \alpha = 1,2, \cdots ,s 。
很明显,如果 T 不是 {q_\alpha } 和 {\dot q_\alpha } 的函数,那么所有的 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} 和 \frac{{\partial T}}{{\partial {q_\alpha }}} 都为零。即使存在部分的 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} 和 \frac{{\partial T}}{{\partial {q_\alpha }}} 为零, T 也还是其他剩余的 {q_\alpha } 和 {\dot q_\alpha } 的函数嘛。所以就一般情形来说, T 是所有 {q_\alpha } 和 {\dot q_\alpha } 的函数。
此话一出,你看到 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} 和 \frac{{\partial T}}{{\partial {q_\alpha }}} 会想到啥?请大声说出“链式法则”!由于 T 可能还是时间 t 的函数,为了不让这个愣头青搅局,咱们就直接对 T 取等时变分。即:
\delta T = \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } + \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {{\dot q}_\alpha }}}} \cdot \delta {\dot q_\alpha } \\
利用前面引进的换元 \frac{{\partial T}}{{\partial {{\dot q}_\alpha }}} = {p_\alpha } ,则有:
\delta T = \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } + \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot \delta {\dot q_\alpha } \\
你瞧,在这个式子里出现了 {p_\alpha } 与 {q_\alpha } 的踪影,看来它俩还真有一腿啊!
另外,由于未知数只有 {q_1},{q_2}, \cdots ,{q_s} 和 {p_1},{p_2}, \cdots ,{p_s} 共 2s 个,意味着方程组里的其他量要么是已知的常数,要么就是这 2s 个未知数的函数!不难理解吧?假设这样的函数记为 K ,那么原方程里的 T 肯定就和这个函数 K 有关系,或者说函数 K 可以由 T 来构造。
好吧,我承认构造的活有点像几何里作辅助线一样,存在一定的思维创造性和跳跃性,但思路既已到此,咱们也别无选择。这里我就直接给出 K 的构造结果:
K = \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot {\dot q_\alpha } - T \\
由于 T 和 {\dot q_\alpha } 其实都是 {q_\alpha } 的函数,并且构造里引入了 {p_\alpha } ,所以 K 就是 {q_1},{q_2}, \cdots ,{q_s} 和 {p_1},{p_2}, \cdots ,{p_s} 的函数啦。
睁大眼睛看,接下来你将体验到函数 K 所带来的快感!这不已经有了 \delta T 的存在么?所以咱也对 K 做同样的操作,则有:
\delta K = \sum\limits_{\alpha = 1}^s {\delta {p_\alpha }} \cdot {\dot q_\alpha } + \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot \delta {\dot q_\alpha } - \delta T \\
把 \delta T 的结果带进来,就有:
\delta K = - \sum\limits_{\alpha = 1}^s {\frac{{\partial T}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } + \sum\limits_{\alpha = 1}^s {{{\dot q}_\alpha } \cdot \delta {p_\alpha }} \\
另外,由于 K 是 {q_1},{q_2}, \cdots ,{q_s} 和 {p_1},{p_2}, \cdots ,{p_s} 的函数,链式大法告诉你:
\delta K = \sum\limits_{\alpha = 1}^s {\frac{{\partial K}}{{\partial {q_\alpha }}}} \cdot \delta {q_\alpha } + \sum\limits_{\alpha = 1}^s {\frac{{\partial K}}{{\partial {p_\alpha }}}} \cdot \delta {p_\alpha } \\
喏,照妖镜在此,妖怪还不快快显出原形?!所以对应项一一相等,即:
\left\{ \begin{array}{l}\frac{{\partial K}}{{\partial {q_\alpha }}} = - \frac{{\partial T}}{{\partial {q_\alpha }}}\\\frac{{\partial K}}{{\partial {p_\alpha }}} = {{\dot q}_\alpha }\end{array} \right.{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} (\alpha = 1,2, \cdots ,s) \\
你瞧这第一个等式,咱一下就把
\frac{{\partial T}}{{\partial {q_\alpha }}} \\
的替身给找到了。把它带入到原始的拉格朗日方程,就有:
\frac{{d{p_\alpha }}}{{dt}} + \frac{{\partial K}}{{\partial {q_\alpha }}} = {Q_\alpha } \\
别急,我知道你想说啥,这不还有添头:
\frac{{\partial K}}{{\partial {p_\alpha }}} = {\dot q_\alpha } \\
嘛。你看,这两个等式里的未知数就只有 {q_1},{q_2}, \cdots ,{q_s} 和 {p_1},{p_2}, \cdots ,{p_s} 了,而现在方程的数量恰好为 2s 个,并且从形式上看也都是一阶微分方程。咱们的目这么快就达到了?
可不嘛!偷偷告诉你,更大的惊喜在后面哟!如果咱们面对的是一个保守体系,那么就存在一种势能 U ,使得广义力可以写成:
{Q_\alpha } = - \frac{{\partial U}}{{\partial {q_\alpha }}} \\
把它带入到换元后的拉格朗日方程里,则有:
\frac{{d{p_\alpha }}}{{dt}} = - \frac{{\partial (K + U)}}{{\partial {q_\alpha }}} \\
由于势能只是广义坐标的函数,则有:
\frac{{\partial U}}{{\partial {p_\alpha }}} = 0 \\
所以添头方程也可以改写成:
\frac{{\partial (K + U)}}{{\partial {p_\alpha }}} = \frac{{d{q_\alpha }}}{{dt}} \\
这个做法咱们在前面推导拉格朗日方程的时候就用过了。
好啦,最后偷个懒,令
K + U= H \\
以简化书写,那么我们的 2s 个方程就呼之欲出啦:
\left\{ \begin{array}{l}\frac{{d{p_\alpha }}}{{dt}} = - \frac{{\partial H}}{{\partial {q_\alpha }}}\\\frac{{d{q_\alpha }}}{{dt}} = \frac{{\partial H}}{{\partial {p_\alpha }}}\end{array} \right. \\
这里有 \alpha = 1,2, \cdots ,s
啧啧啧,整形过后的拉格朗日方程不仅变成了一阶方程,还贼对称! 如果说拉格朗日方程被称为一首诗,这个方程组以神话自居绝对是当之无愧!这便是大名鼎鼎的哈密顿方程 。
方程里除了未知数,这个 H 是啥来头?它被称为 哈密顿函数 ,根据前面的替换可知
H = \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot {\dot q_\alpha } - T + U \\
请问你有没有觉得最后两项很眼熟啊?拉格朗日函数为
L = T - U \\
所以这两个函数之间的关系就为:
H = \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot {\dot q_\alpha } - L \\
对了,咱们在第八节中推演拉格朗日的最小作用量时就发现
\sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot {\dot q_\alpha } = 2T \\
当然前提是咱们研究的对象为稳定系统。若是如此,哈密顿函数会简单得让你惊掉下巴,因为有:
H = \sum\limits_{\alpha = 1}^s {{p_\alpha }} \cdot {\dot q_\alpha } - L = 2T - L = T + U \\
这是啥?这不就是系统的机械能(暂只考虑力学系统)吗?我的天呐,对于稳定体系来说,它的机械能对广义坐标的偏导、对广义动量的偏导所得出的方程就能描述物体的运动规律!
哈密顿方程说到这里,你有没有发现它其实就是另选了一套坐标体系: 以广义动量 p 和广义坐标 q 作为变量,由此就能演绎出对称与简洁的一阶微分方程组 。最重要的是,当咱们把眼光超越了经典力学的范畴后,哈密顿方程是过渡到其他领域最方便的形式。关于这一点,得在其他文章再写了。至于啥时候能写出来,就得看我的悟性了。
十一、一统江湖
哈密顿原理之所以被后来人推上第一性原理的宝座,这和物理学的根本任务是分不开的: 对于一个系统,咱们得找出它的真实运动状态 !可是不同的系统就会有不同的具体描述方式,你看力学系统就是关心它的位置如何变化,经典力学领域用牛顿运动定律来描述;电磁领域关心的就是电场和磁场如何变化,得用麦克斯韦方程组来搞定;而热力学系统又得另起炉灶。
请问你想不想偷个懒——绕开这些具体的、不同形式的方程来回答“什么是真实运动状态”?如果真能偷懒,岂不是一本万利的买卖?有这等好事,傻子才不干呢!不过思来想去,要实现偷懒,咱们就只有一种办法——是骡子是马,拉出来溜溜! 将所有可能的运动状态都拿出来海选,从而在里面找出真实的运动状态 。这么一来,不管是啥类型的系统,这种“笨”办法不就可以通吃了么?
你瞧,这个“笨”办法和哈密顿原理的思想不正是王八看绿豆——对上眼儿了么?这种路线正确的原理,你不把它放第一位放哪?再者,原理本身是无法直接给予证明的,得通过它推出的一些列正确的、自洽的结论来加以佐证。而哈密顿原理都经受住了这些严格地考验。 所以咱们海选的依据就是作用量,即一个物理系统实际发生的真实运动状态是所对应的作用量具有最小值(稳定值)的那个状态 。
好啦,现在开局一张图:
\delta \int_{{t_1}}^{{t_2}} {Ldt = 0} \\
接下来就看看它能在经典力学领域内画出什么绚丽的画面吧。
经典力学领域的规律被牛顿支配得明明白白,其核心就是牛顿三大定律。第一定律是说物体总保持静止或匀速直线运动状态,除非有力作用在物体上使其改变运动状态;第二定律就是大名鼎鼎的 {\bf{F}} = m{\bf{a}} 啦;而第三定律指的是物体间的相互作用力总是等大、反向、作用在同一条直线上。
而经典力学领域要解决的问题就是如何描述物体的机械运动,也就是搞清楚物体的位置变化有啥规律 。咱们一开始接触物理的时候就知道,要判断物体的位置有没有变化需要找一个参照物,也就是参考系。虽然参考系可以任意的选取,但是牛爷的理论只能在惯性系中成立(不然就得加上虚无的惯性力了,咱们在第六节提到过)。 就是说被选为参照物的对象必须是静止或者是匀速直线运动状态或者是这个对象不受任何的外力,以此为基准来描述物体的运动才能用上牛顿三大定律 。
这样的参考系有没有呢?反正牛顿在其著作里就直接假定了宇宙深处有这么一个绝对的惯性参考系,它远离任何星体,所以它不受任何力的作用,自然就是牛顿心目中的白月光啦。不过有个问题咧,如果咱们只是想研究眼前物体的运动规律,是不是也得选远在天涯的绝对惯性系呢?那不得麻烦死啊?!
看到这个问题,教父级大神伽利略云淡风轻地笑而不语,默默地扔出了两件宝贝: 伽利略变换和伽利略相对性原理 。先说伽利略变换,假设你相对地面的行走速度是 1km/h ,飞驰的高铁相对地面的速度是 350km/h ;现在改成让你以同样的速度在高铁车厢里行走,如果行走方向高铁运行的方向相同,那么你相对地面的速度就是 351km/h ,反之你相对地面的速度就是 349km/h 。这么浅显的结论没毛病吧?
将其上升到理论的高度,假设现有两个不同的参考系 S 和 \tilde S (对应上述例子里的地面和高铁),其中一个参考系 \tilde S (高铁)相对另一个参考系 S (地面)以恒定的速度 {\bf{u}} ( 350km/h )运动,那么同一个物体(人)相对这两个参考系的位矢 {\bf{r}} 和 {\bf{\tilde r}} 满足:
{\bf{r}} = {\bf{\tilde r}} + {\bf{u}}t \\
并且我们认定在两个参考系里,时间 t 是一样的 。哈哈哈,这个天经地义的认识后来被相对论改命了。这里不用操心,我们目前只在宏观低速领域内讨论问题。
基于此才有了例子里速度叠加的运算,即把上式两边对时间求导,则有:
{\bf{v}} = {\bf{\tilde v}} + {\bf{u}} \\
这便是 伽利略变换 。对于此矢量式,在直线运动中规定好正方向以后可以简化为代数运算,你可以自行验证上述例子里的计算结果。
如果这两个参考系都是惯性系,把位矢关系式的两边对时间求二阶导数,则有:
\frac{{{d^2}{\bf{r}}}}{{d{t^2}}} = \frac{{{d^2}{\bf{\tilde r}}}}{{d{t^2}}} \\
这说明物体在不同惯性参考系里的运动方程有相同的形式。推而广之,意味着所有的惯性系对研究机械运动是等价的;或者说 在不同的惯性参考系里,所有的力学规律是等价的。这便是伽利略的相对性原理 。
等等,咱们不是要从哈密顿原理去推演经典力学的体系么?怎么无缘无故地说起伽利略了呢?是这么回事,你要知道咱们现在也就一个哈密顿原理,至于那个 L 长什么样子我们压根不知道。要是没有它的真面目,我们又如何能推演出更多的规律呢?即使是猜 L 的模样,咱们也得有些依据才行,而刚才啰嗦了半天的伽利略变换和相对性原理就是依据。也就是说哈密顿原理可以演化出经典力学的体系,但是还要借助一些左膀右臂才能开疆扩土撒。显然伽利略的贡献是其左膀,至于右臂咱们稍后再说。
回到左膀里来,既然在不同惯性系中所有力学规律是等价的,而力学体系的全部性质都集中在拉格朗日函数身上,所以 相对于不同惯性参考系来说,力学体系的拉格朗日函数所满足的方程肯定是相同的 。敲黑板啦,并不是说力学体系相对不同参考系的拉格朗日函数一样。因为 由一个力学体系不能完全决定对应的拉格朗日函数,其后还可以添加一个“任意常数” ,这和求不定积分很类似。
这里的“任意常数”并不是我们理解的一个不变的数字,而是根据哈密顿原理推出的一个只与广义坐标和时间有关的任意函数对时间的全导数,即有:
\tilde L = L(q,\dot q,t) + \frac{d}{{dt}}f(q,t) \\
这里的函数 f 可以是任意的,只要求它的变量仅为 q 和 t 即可 。
为啥会有这个特点呢?因为根据哈密顿原理,当对作用量取等时变分时,有:
\delta \tilde S = \delta \int_{{t_1}}^{{t_2}} {[L} + \frac{d}{{dt}}f(q,t)]dt = \delta S + \delta f[q({t_2}),{t_2}] - \delta f[q({t_1}),{t_1}] \\
由于哈密顿原理中有端点的限制条件,则有:
\delta f[q({t_2}),{t_2}] = \delta f[q({t_1}),{t_1}] = 0 \\
显然就有 \delta \tilde S = \delta S ,即由哈密顿原理求出的真实运动相同,所以描述的为同一个力学体系。
再来说一下右臂,哪个搞物理的人不希望看到物理理论的普适性? 这种能放之四海而皆准的特性除了能反映出物理规律有很宽的管辖范围外,还意味着物理规律满足对称的特点 。啥?对称?这不是个几何特征的词么?
是的,单纯说对称确实指的是几何特征,比如你把一个正三角形实施绕中线对折、绕中心旋转等操作,你会发现操作前后得到的图形是一样的。 将对称性引申到物理规律中去,意味着把物理规律也实施某些操作后依然有相同的结果 。比如你换个时间、换个地点去做同样的实验,只要实验条件完全相同,你得到的实验结果就是一样的,即物理规律并没有随时间或者地点的变化而变化。这两个基本的对称性被称为 时间平移的不变性 和 空间平移的不变性 ,时空还有其他的一些对称性这里就暂且不列了。
不过咱要实话告诉你,时空对称性其实是人们的一种假设,是对自然界是简洁的执念。现有的物理理论可都是建立在这个假设之上的,因为咱们坚信物理定律的普适性。倘若今后发现在宇宙的长河里,某段时间或某个区域里存在着不同的物理规则,那么现有的物理大厦估计就得重建了,毕竟地基歪了嘛。这事又不是没有发生过,百年前的两朵乌云不就干引发过一场轰轰烈烈的拆迁运动么?
咳咳,哥本哈根学派有一句名言: 先有自然才有人类,但是先有人类才有自然科学。我们人类需要理解大自然才创造了这些叫自然科学的产物,但是大自然从来不需要理解人类创造的自然科学 。
有了这些铺垫,我们就要开始大展身手了哈。本着由易到难的打怪顺序,咱们首先要解决的问题就是推出不受任何作用影响的自由质点的运动规律。
自由质点相对惯性系运动时,时间与空间具有的平移不变性的特点怎样在拉格朗日函数中体系出来呢?这意味着拉格朗日函数里不显含时间和物体的坐标,如此一来,拉格朗日函数就只能是速度的函数。另外,空间的均匀性还意味着拉格朗日函数与速度的方向也没关系,即拉格朗日函数只能是速度大小的函数。由于速度 {\bf{v}} 是矢量,其大小是矢量的模,考虑后续计算的方便,模的平方与模本身可以看成是等价的。 所以我们可以猜出拉格朗日函数 L 是 {\bf{v}} \cdot {\bf{v}} = {v^2} 的函数 。
函数的变量给定下来了,但是咱们还不清楚函数的表达式,所以还要继续猜。考虑到伽利略的相对性原理,针对同一个力学体系在两个不同的惯性参考系中运动,假若两个参考系之间的相对速度无穷小,极限情形下,这个力学体系的运动轨迹肯定是一样的。如此一来,变换前后的拉格朗日函数虽然有所不同,但是只能相差一个仅与坐标(对于自由质点,用不着广义坐标)和时间有关的任意函数对时间的全导数。
假设物体相对参考系 S 的速度为 {\bf{v}} ,参考系 \tilde S 相对参考系 S 的无穷小速度为 {\bf{e}} ,那么物体相对参考系 \tilde S 的速度为:
{\bf{\tilde v}} = {\bf{v}} + {\bf{e}} \\
将变换前后的拉格朗日函数就分别记作 L({v^2}) 和 L[{({\bf{v}} + {\bf{e}})^2}] ,显然两者之间的差异满足:
L[{({\bf{v}} + {\bf{e}})^2}] = L({{v}^2}) + \frac{d}{{dt}}f({\bf{r}},t) \\
接下来咱们要用到一个数学公式,这是整篇文章里唯一一次没有任何铺垫就甩出了公式。我尽力了,毕竟数学工具到用时方恨少呀。 这个公式就是大名鼎鼎的泰勒展开式,也就是把一个连续可导的函数用多项式去无限逼近 。其实高中物理里就用到过这个结论,比如单摆要求摆角很小,只有这样才有 \sin \theta \approx \theta 。
泰勒公式:
f(x) = f(a) + \frac{{f'}}{{1!}}(x - a) + \frac{{f''}}{{2!}}{(x - a)^2} + \cdots + \frac{{{f^n}}}{{n!}}{(x - a)^n} + o[{(x - a)^n}] \\
为函数 f(x) 在点 a 处展开的结果,其中最后一项 o[{(x - a)^n}] (当 x 趋近于 a 时)是 {(x - a)^n} 的高阶无穷小。
数学工具用起来吧。对于
L[{({\bf{v}} + {\bf{e}})^2}] \\
先用完全平方公式打开得到:
L({v^2} + 2{\bf{v}} \cdot {\bf{e}} + {e^2}) \\
由于 {\bf{e}} 本就是无穷小量了,那么 {e^2} 就是高阶无穷小量,那就略去吧。所以拉格朗日函数变为:
L({v^2} + 2{\bf{v}} \cdot {\bf{e}}) \\
对比泰勒公式,我们将 {v^2} + 2{\bf{v}} \cdot {\bf{e}} 视为公式里的 x ,而 {v^2} 视为公式里的 a ,然后我们只需把公式展开到一次项即可。因为到了二次项,公式里的
{(x - a)^2} = {(2{\bf{v}} \cdot {\bf{e}})^2} \\
是 {\bf{e}} 的高阶无穷小量,可以忽略了。
于是用泰勒公式展开以后的结果就是:
L[{({\bf{v}} + {\bf{e}})^2}] = L({v^2}) + L' \cdot 2{\bf{v}} \cdot {\bf{e}} \\
前面我们已经猜到了拉格朗日函数 L 是 {v^2} 的函数,所以其导数 L' 就应该是对 {v^2} 求导,即:
L' = \frac{{dL}}{{d{v^2}}} \\
再根据拉格朗日函数的差异特征,显然就有:
\frac{{dL}}{{d{v^2}}} \cdot 2{\bf{v}} \cdot {\bf{e}} = \frac{d}{{dt}}f({\bf{r}},t) \\
咱们把等式右边按照求导的链式法则展开,即有:
\frac{d}{{dt}}f({\bf{r}},t) = \frac{{\partial f}}{{\partial {\bf{r}}}} \cdot {\bf{\dot r}} + \frac{{\partial f}}{{\partial t}} \\
也就是有:
\frac{{dL}}{{d{v^2}}} \cdot 2{\bf{v}} \cdot {\bf{e}} = \frac{{\partial f}}{{\partial {\bf{r}}}} \cdot {\bf{v}} + \frac{{\partial f}}{{\partial t}} \\
看好了!考虑到 {\bf{v}} 具有任意性,该等式恒成立的条件只能是对应项恒等。所以有:
\frac{{\partial f}}{{\partial t}} = 0 \\
且
\frac{{dL}}{{d{v^2}}} \cdot 2{\bf{e}} = \frac{{\partial f}}{{\partial {\bf{r}}}} \\
由于 {\bf{e}} 是常量,而 \frac{{dL}}{{d{v^2}}} 只可能与 {\bf{v}} 有关,最多是个常数,因为 L 只是 {v^2} 的函数撒。而等式右边的 \frac{{\partial f}}{{\partial {\bf{r}}}} 要么只与 {\bf{r}} 有关,要么就是常量。所以两边等式要恒成立,只能是这两个偏导数都为常量才行,即:
\frac{{dL}}{{d{v^2}}} = C \\
常数 C 是多少咱们不必去管它,就将其记作 \frac{m}{2} 吧。由此咱们就得到了:
L = \frac{1}{2}m{v^2} \\
好家伙,咱们只根据两个原理就猜出了自由质点的拉格朗日函数,它居然是咱们熟知的质点动能 。熟悉归熟悉,这结果可靠不?这还得用更多的事实来验证它。
上面咱们是借助两个惯性参考系之间只有无穷小速度的极限情形去猜出拉格朗日函数,但是实际情况里,两个惯性参考系之间更多的是存在有限的速度(暂不考虑高速的情形,目前超纲了哈)。如此情形下,刚才猜出来的结论能经受考验不?
假设两个惯性参考系之间的速度为 {\bf{u}} ,而自由质点在其中一个惯性系中以速度 {\bf{v}} 运动,那么根据伽利略变换可知,该质点在另一个参考系中的速度为:
{{\bf{v}}_1}{\bf{ = v + u}} \\
所以两种情形对应的拉格朗日函数分别为:
L({v^2}) = \frac{1}{2}m{v^2} \\
和
L[{({\bf{v + u}})^2}] = \frac{1}{2}m{({\bf{v + u}})^2} \\
根据伽利略相对性原理,在不同惯性参考系中的所有力学规律都一样,那么对于同一个自由质点来说,这两个拉格朗日函数也就只相差一个只与坐标和时间有关的任意函数对时间的全导数。
来吧,变形看看:
L[{({\bf{v + u}})^2}] = \frac{1}{2}m{v^2} + m{\bf{v}} \cdot {\bf{u}} + \frac{1}{2}m{u^2} \\
由于 {\bf{u}} 是常量,而
{\bf{v}} = \frac{{d{\bf{r}}}}{{dt}} \\
所以拆开后的结果可以写成:
L[{({\bf{v + u}})^2}] = \frac{1}{2}m{v^2} + m{\bf{u}} \cdot \frac{{d{\bf{r}}}}{{dt}} + C = L({v^2}) + \frac{d}{{dt}}(m{\bf{u}} \cdot {\bf{r}} + Ct) \\
你瞧,括号里不正好是一个只与 {\bf{r}} 和 t 有关的函数么?看来这一关过了。
还有利好消息!自由质点在惯性系中怎么运动呀?想必大伙都知道答案——保持静止或匀速直线运动状态!这是大名鼎鼎的牛顿第一定律呀。那么拉格朗日函数及其方程能给出这个结论?
由哈密顿原理推出的拉格朗日方程,即:
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {\bf{v}}}}) - \frac{{\partial L}}{{\partial {\bf{r}}}} = 0 \\
咱们现在已经猜出了自由质点的拉格朗日函数为
L = \frac{1}{2}m{v^2} = \frac{1}{2}m{\bf{v}} \cdot {\bf{v}} \\
所以有
\frac{{\partial L}}{{\partial {\bf{v}}}} = m{\bf{v}} \\
和
\frac{{\partial L}}{{\partial {\bf{r}}}} = 0 \\
将其带入到拉格朗日方程就有:
\frac{d}{{dt}}(m{\bf{v}}) = 0 \\
由于 m 是常数,意味着 {\bf{v}} 为常数。 这个常数可以为零也可以不为零,若为零意味着物体保持静止状态;若不为零意味着物体保持匀速直线运动状态 。怎样?拿捏得可否还行?
如果咱们只研究自由质点的运动肯定不够呀,怎么着也得来点相互作用吧?要不然要牛顿第二、第三定律有何用呢?
既然要来点相互作用,就得增加更多的质点,这样彼此之间才会产生相互作用嘛。一步步来, 先假设有 n 个质点,但彼此之间仍旧自由,相当于彼此都离得无限远 。那么咱们把这 n 个质点看成一个大的系统时,这个系统的拉格朗日函数想必不难猜出——就是所有单个自由质点的拉格朗日函数之和嘛,即:
L = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 \\
如果把这个大体系弄小,让里面的 n 个质点彼此不再孤单,那么它们之间不就有了相互作用了么? 请注意,这个阶段咱们讨论的依旧是没有外部作用的情形,即对这个体系来说算是自由体系 。那么这个体系的拉格朗日函数除了包含各个质点的动能外,还要包含一个与多个质点坐标有关的项,就记作:
L = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 + F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
奇怪哎,这个与质点间相互作用有关的函数 F 为啥没有显含时间 t 呢?其实这是必然的,因为伽利略相对性原理中存在着绝对时间的假定,如果 F 显含时间 t ,说明质点间的相互作用不是“瞬间改变”的,即影响的扩散有一定的速度。那么结合伽利略变换就会发现,在不同相对速度的惯性参考系里,质点间的相互作用的扩散速度就不一样了!
这...这说明了啥?你想呀,现在的这一坨存在相互作用的质点可不再是自由身啦,它们间的相互作用会直接影响到彼此的运动。 如果彼此间的影响随着选用的惯性参考系不同而有先后之分,那意味着该质点系在不同惯性参考系里的运动规律就不一样了,这可正好与伽利略的相对性原理相矛盾呀 。哈哈哈,谁还不是读着伽利略长大的呢?他那一套反证法咱用得麻溜着呢。
如此一来,这个质点系的拉格朗日函数就只是速度 {\bf{v}} 和位置 {\bf{r}} 的函数而不显含时间 t ,可是这有啥好啰嗦的呢?睁大眼睛瞧着吧!既然 L 不显含时间 t ,根据求导的链式法则有:
\frac{{dL}}{{dt}} = \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{\dot v}}_i} + \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} \cdot {{\bf{\dot r}}_i} \\
就这?你在逗我吗?
别急,好戏才刚刚开始。质点系的拉格朗日函数不是满足拉格朗日方程:
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {\bf{v}}}}) - \frac{{\partial L}}{{\partial {\bf{r}}}} = 0 \\
么?这不正好可以把
\frac{{\partial L}}{{\partial {{\bf{r}}_i}}} \\
替换成
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}) \\
嘛?另外 {{\bf{\dot r}}_i} 就是 {{\bf{v}}_i} ,所以这么捣鼓一下后的结果就成了:
\frac{{dL}}{{dt}} = \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{\dot v}}_i} + \sum\limits_{i = 1}^n {\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} ) \cdot {{\bf{v}}_i} \\
眼瞅着越来越复杂了吧?其实不然,等式右边不正好是两个函数乘积的求导展开式么?先不要往后看结果,看看自己能不能写出答案。没错,等式变成了:
\frac{{dL}}{{dt}} = \frac{d}{{dt}}(\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{v}}_i}) \\
再移个项,局势就明朗了,即:
\frac{d}{{dt}}(\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{v}}_i} - L) = 0 \\
一个函数的导数为零,说明这个函数是个常数。所以
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{v}}_i} - L \\
是个常数。至于它是个啥玩意儿,化个简就知道了。
L 的表达式
L = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 + F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
里,只有第一项与速度有关,所以有:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{v}}_i} = \sum\limits_{i = 1}^n {{m_i}v_i^2} \\
那么就有:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} \cdot {{\bf{v}}_i} - L = \sum\limits_{i = 1}^n {{m_i}v_i^2} - (\sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 + F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n})) = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 - F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
也就是说
\sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 - F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
为常数。
你看这个结果,第一项是质点系的动能, 根据量纲可以推测第二项肯定也是能量 !不然的话,这两项怎么进行相减呢?
等等,咱们好像只听过能量相加时是常量的情形,也就是能量守恒,这里出现的是减号是不是有点小讨厌呢?
没关系,咱们既然已经确定了函数 F 的量纲是能量,那就再定义一个新的函数 U ,使得:
U({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) = - F({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
仅仅只是一个负号的差异, 显然 U 的量纲也是能量 。你再看,刚才的常数就变成了:
\sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 + U({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
简记为:
T + U \\
哈哈哈,这不就变成了动能加上某种形式的能量了吗?而且其和不变 !
由于咱们现在考虑的对象只是宏观低速领域的力学体系,什么电啊、磁啊、分子啊、原子核之类的通通不予考虑。而且这个 U 还只与质点的位置有关,这不就是势能了么?
我的天呐,本来只想着猜出自由质点系的拉格朗日函数,一不留神把机械能(动能加势能)守恒给推导出来了。意不意外、惊不惊喜?哦,想起来了,咱们的初心是要推出牛顿第二定律和第三定律,要不你先平复一下激动的心情,我们去见证更多的精彩吧。
现在已经得出了 自由质点系的拉格朗日函数 :
L = \sum\limits_{i = 1}^n {\frac{1}{2}{m_i}} {v_i}^2 - U({{\bf{r}}_1},{{\bf{r}}_2}, \cdots {{\bf{r}}_n}) \\
即系统动能和系统势能的差。由于牛顿第二定律是针对单个质点的规律,所以咱们需要把这个拉格朗日函数推广到受外界相互作用影响的单个质点的身上。
请不要重复造轮子,咱们完全可以把刚才的那个自由质点系一分为二嘛:待研究的单个质点 A 和剩余的、运动情况已知的 B 部分。这个情况对于质点 A 来说, B 属于外部对象,咱们称其为 A 处于外部( B )场中。如此一来,把这两部分看成整体,其拉格朗日函数依旧如上,照搬过来即可:
L = {T_A}({{\bf{\dot r}}_A}) + {T_B}({{\bf{\dot r}}_B}) - U({{\bf{r}}_A},{{\bf{r}}_B}) \\
这里的前两项分别是 A 、 B 两部分各自的动能,第三项是 A 、 B 之间的势能。
咱们现在的目的是得到处于外部场中的单个质点的拉格朗日函数,所以 L 的表达式里只能保留与质点 A 有关的信息 。由于 B 部分的运动是已知的,所以 B 部分的位矢 {{\bf{r}}_B} 就可以用已知的时间函数 {{\bf{r}}_B}(t) 来代替。本来嘛,运动物体的位矢就是时间的函数。 如此一来, {T_B}({{\bf{\dot r}}_B}) 就是只依赖时间的一项 。前面刚介绍过拉格朗日函数的特征,所以这一项不要也罢。这么一番处理后,咱们就顺理成章地得到了 处于外场中的单个质点的拉格朗日函数 啦:
L = {T_A} - U({{\bf{r}}_A},{{\bf{r}}_B}(t)) \\
发现没,在外场中运动的单个质点,它的拉格朗日函数依旧为通常的形式,差别只在于势能可能显含时间。所以将这个质点的拉格朗日函数记为:
L = \frac{1}{2}m{v^2} - U({\bf{r}},t) \\
将其带入到拉格朗日方程可得:
\frac{d}{{dt}}(m{\bf{v}}) = - \frac{{\partial U}}{{\partial {\bf{r}}}} \\
这又是个啥?
等式左边是将质点的动量对时间求导,由于物体的质量是常数(低速领域),所以结果为:
\frac{d}{{dt}}(m{\bf{v}}) = m{\bf{\dot v}} = m{\bf{a}} \\
再把 - \frac{{\partial U}}{{\partial {\bf{r}}}} 定义成质点所受的外界施加的力,这不妥妥地弄出了 {\bf{F}} = m{\bf{a}} 么?
什么,力能这么定义?为啥不可呢? 你要知道,按照牛顿力学的发展历程,是先定义了力,后来才有势能的概念。现在只不过是反过来了而已,为啥不行 ?
厉害呀!把一个小小的拉格朗日函数捣鼓一下,牛顿的两个定律就现原形了。咱们一鼓作气,看看能不能推导出牛顿第三定律。
在牛顿力学的发展历程里,牛顿第三定律来源于对碰撞现象的规律总结,这在我之前的文章里有所提及( 戳我 )。惠更斯在研究碰撞现象时明确指出了动量守恒的特点,牛顿老爷子由此悟出了 物体间的相互作用力满足等大、反向、作用在同一直线上的特点 ,这就是大伙熟悉的牛顿第三定律啦。所以,接下来就是要看看哈密顿原理能否推出系统动量守恒这个特征。
说到守恒,上面在推导牛顿第二定律时,无意中用到了时间均匀性的特点。空间不也有均匀性么?那么通过这个特点是不是也能发现啥呢?
假如空间具有均匀性,那么一个封闭系统在空间里整体平移之后,其性质保持不变。这就好比有两套完全一样的房子,所有因素完全一致,你住哪套不是住呢?对吧?既然如此,倘若咱们把这个系统里的所有质点都平移相同的位移 {\bf{d}} ,这个体系的拉格朗日函数并不会发生改变,即 \delta L = 0 。但是这个过程里,每个质点的位矢都发生了改变,即 \delta {{\bf{r}}_i} = {\bf{d}} ,这里有 i = 1,2, \cdots ,n 。
咱们早就知道了封闭系统的拉格朗日函数只与系统里每个质点的速度以及每个质点的位矢有关,所以根据链式法则有:
\delta L = \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} \cdot \delta {{\bf{r}}_i} + \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{{\bf{\dot r}}}_i}}}} \cdot \delta {{\bf{\dot r}}_i} \\
由于质点只是做了整体平移,其各自的速度并没有发生变化,所以 \delta {{\bf{\dot r}}_i} = 0 ,这里有 i = 1,2, \cdots ,n 。
各项准备工作就绪,咱们看看得到了啥:
\delta L = {\bf{d}} \cdot \sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} = 0 \\
由于位移常量 {\bf{d}} 具有任意性,而这个等式又是恒成立,所以只能得出如此结果:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} = 0 \\
一旦把这个结果带入到拉格朗日方程组
\frac{d}{{dt}}(\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}) - \frac{{\partial L}}{{\partial {{\bf{r}}_i}}} = 0 \\
中,这里有 i = 1,2, \cdots ,n 。只需把 n 方程相加即可得到:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} \\
这一项,于是你将会看到:
\frac{d}{{dt}}(\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{v}}_i}}}} ) = 0 \\
封闭体系的拉格朗日函数 L 表达式咱们是知道的,所以求和符号的结果就是:
{\bf{p}} = \sum\limits_{i = 1}^n {{m_i}{{\bf{v}}_i}} \\
也就是有:
\frac{{d{\bf{p}}}}{{dt}} = 0 \\
这不就意味着系统的动量 {\bf{p}} 是个常数么?系统动量守恒的结论就这么得来了。
至于想得到心心念的牛顿第三定律也非常容易。根据封闭体系的拉格朗日函数 L 的表达式可知:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} = - \sum\limits_{i = 1}^n {\frac{{\partial U}}{{\partial {{\bf{r}}_i}}}} \\
由于:
\sum\limits_{i = 1}^n {\frac{{\partial L}}{{\partial {{\bf{r}}_i}}}} = 0 \\
这不显而易见的有:
\sum\limits_{i = 1}^n {\frac{{\partial U}}{{\partial {r_i}}}} = 0 \\
么? 咱们现在只关心两个质点之间的相互作用力的规律,所以只需把这个封闭体系的质点数量降为2即可 。对于每个质点来说,其所受的相互作用力为:
{{\bf{F}}_i} = - \frac{{\partial U}}{{\partial {{\bf{r}}_i}}} \\
如果系统只有两个质点,则有:
{{\bf{F}}_1} + {{\bf{F}}_2} = 0 \\
这不正是作用力与反作用力的特点——等大、反向、作用在同一条直线上么 ?
好啦,现在咱们要收网捋一下了。从哈密顿原理出发,只需借助伽利略相对性原理、并假设时空具有对称性,那么经典力学的所有规律全给弄出来了。哈密顿曾经的信仰——从最少的假设或者原理出发去构建整个物理体系,现在就在经典力学领域得到了实现!
嘿,请收下我的膝盖,让我有资格膜拜吧!
十二、结语
正如前言里面所说,我写这篇长文的目的就是想体验物理规律的普适性所带来的震撼。写到此,我终于可以松一口气,自我感觉已经做到了剥丝抽茧。相信能一口气看完全文的读者或多或少也能有所体会。
在写文章的过程中,我最大的感触就是只有能把自己给讲明白了,才能写出逻辑清晰、严谨自洽的文字。可能是自己当老师的缘故吧,我早已习惯了把学习过的东西以非常通俗的方式表达出来,所以有太多次面对一个概念、一个公式、甚至是一个符号时,我都会费尽心思去查找资料,只为了能让自己彻底明白。如此,我才能写出让读者易读能懂的文字。
最后,我发现学习也好,写文章也罢,这是能上瘾的。当我一次次输出有着自我理解的文章时,它们能反过来极大提升我的学习效率。而且这样的文章还很荣幸的受到一些读者的喜爱,幸福指数蹭蹭往上涨了不少哟。
咋样,你也想拥有这样的学习状态吗?那就请不要放过任何一个你面对的疑点,想办法干掉它,量变过渡到质变就会在你身上出现!到时你就尽情享受学习带给你的红利吧。
变分原理包含哈密顿原理,哈密顿原理就是最小作用量原理。
变分在《泛函分析》中找概念定义,哈密顿原理或最小作用量原理在《分析力学》里找定义。
对时间和对路径积分就是自变量是时间还是路径的区别。
作用量就是一个函数,比如一个力学系统你要研究它,总要找一个可以操作的函数,这个函数就是作用量。