见证奇迹的时刻:从牛顿定律到波的运动

上帝说要有光,于是就有了麦克斯韦方程组。

撰文 | 长尾科技

大家都知道麦克斯韦推导出了电磁波,然后通过计算发现电磁波的速度正好等于光速。于是,麦克斯韦就预言“光是一种电磁波”,这个预言后来被赫兹证实。

电磁波的发现让麦克斯韦和他的电磁理论走上了神坛,也让人类社会进入了无线电时代。你现在可以随时给远方的朋友打电话,能用手机刷公众号上的文章,都跟电磁波有着密切的关系。这篇文章我们先介绍从牛顿关于粒子的运动定律,如何得出描写波的波动方程。

01什么是波?

要理解电磁波,首先我们得了解什么是波?有些人可能觉得这个问题有点奇怪,什么是波这还用问么?我丢一块石头到水里,水面上就会形成一个水波;我抖动一根绳子,绳子上就会就会出现一个波动。生活中还有很多这种波动现象,我虽然读书少,但是什么是波还是知道的。

没错,水波、绳子上的波动这些都是波,我在这里抛出“什么是波?”这个问题并不是想来掰指头数一数哪些东西是波,哪些不是,而是想问:所有这些叫作波的东西有什么共同的特征?我们如何用一套统一的数学语言来描述波?

我们研究物理,就是从万千变化的自然界的各种现象里总结出某种一致性,然后用数学的语言定量、精确的描述这种一致的现象。现在我们发现了水波、绳子上的波等许多现象都有这样一种波动现象,那我们自然就要去寻找这种波动现象背后统一的数学规律,也就是寻找描述波动现象的方程,即波动方程。

为了寻找统一的波动方程,我们先来看看最简单的波:抖动一根绳子,绳子上就会出现一个波沿着绳子移动,以恒定的频率抖动就会出现连续不断的波。

为了更好地研究绳子上的波动,我们先建立一个坐标系,然后把注意力集中到其中的一个波上。于是,我们就看到一个波以一定的速度v向x轴的正方向(右边)移动,如下图:

那么,我们该如何去描述这种波动呢?

首先,我们知道一个波是在不停地移动的,上图只是波在某个时刻的样子,它下一个时刻就会往右边移动一点。移动了多少也很好计算:因为波速为v,所以Δt时间以后这个波就会往右移动v·Δt的距离。

另外,我不管这个时刻波是什么形状的曲线,反正我可以把它看成一系列的点(x,y)的集合,这样我们就可以用一个函数y=f(x)来描述它(函数就是一种对应(映射)关系,在函数y=f(x)里,每给定一个x,通过一定的操作f(x)就能得到一个y,这一对(x,y)就组成了坐标系里的一个点,把所有这种点连起来就得到了一条曲线)。

然后,y=f(x)只是描述某一个时刻的波的形状,如果我们想描述一个完整动态的波,就得把时间t考虑进来。也就是说我们的波形是随着时间变化的,即:我绳子上某个点的纵坐标y不仅跟横轴x有关,还跟时间t有关,这样的话我们就得用一个二元函数y=f(x,t)来描述一个波。

这一步很好理解,它无非告诉我们波是随时间(t)和空间(x)变化的。但是这样还不够,世界上到处都是随着时间、空间变化的东西,比如苹果下落、篮球在天上飞,它们跟波的本质区别又在哪呢?

02波的本质

仔细想一下我们就会发现:波在传播的时候,虽然不同时刻波所在的位置不一样,但是它们的形状始终是一样的。也就是说前一秒波是这个形状,一秒之后波虽然不在这个地方了,但是它依然是这个形状,这是一个很强的限制条件。有了这个限制条件,我们就能把波和其它在时间、空间中变化的东西区分开了。

我们这样考虑:既然用f(x,t)来描述波,那么波的初始形状(t=0时的形状)就可以表示为f(x,0)。经过了时间t之后,波速为v,那么这个波就向右边移动了vt的距离,也就是把初始形状f(x,0)往右移动了vt,那么这个结果可以这样表示:f(x-vt,0)。

为什么把一个函数的图像往右移动了一段vt,结果却是用函数的自变量x减去vt,而不是加上vt呢?这是一个中学数学问题,我这里稍微帮大家回顾一下:你们想,如果我把一个函数图像f(x)往右移动了3,那么我原来在1这个地方的值f(1),现在就成了4这个地方的函数值。所以,如果你还想用f(x)这个函数,那肯定就得用4减去3(这样才能得到f(1)的值),而不是加3(4+3=7,f(7)在这里可没有什么意义)。

所以,如果我们用f(x,t)描述波,那么初始时刻(t=0)的波可以表示为f(x,0)。经过时间t之后的波的图像就等于初始时刻的图像往右移动了vt,也就是f(x-vt,0)。于是,我们就可以从数学上给出波运动的本质:

也就是说,只要有一个函数满足f(x,t)=f(x-vt,0),满足任意时刻的形状都等于初始形状平移一段,那么它就表示一个波。水波、声波、绳子上的波、电磁波、引力波都是如此,这也很符合我们对波的直观理解。

这里我们是从纯数学的角度给出了波的一个描述,下面我们再从物理的角度来分析一下波的形成原因,看看能不能得到更多的信息。

03张 力

一根绳子放在地上的时候是静止不动的,我们甩一下就会出现一个波动。我们想一想:这个波是怎么传到远方去的呢?我们的手只是拽着绳子的一端,并没有碰到绳子的中间,但是当这个波传到中间的时候绳子确实动了,绳子会动就表示有力作用在它身上(牛爵爷告诉我们的道理),那么这个力是哪里来的呢?

稍微分析一下我们就会发现:这个力只可能来自绳子相邻点之间的相互作用,每个点把自己隔壁的点“拉”一下,隔壁的点就动了(就跟我们列队报数的时候只通知你旁边的那个人一样)这种绳子内部之间的力叫张力。

张力的概念也很好理解,比如我们用力拉一根绳子,我明明对绳子施加了一个力,但是这根绳子为什么不会被拉长?跟我的手最近的那个点为什么不会被拉动?

答案自然是这个点附近的点给这个质点施加了一个相反的张力,这样这个点一边被我拉,另一边被它邻近的点拉,两个力的效果抵消了。但是力的作用又是相互的,附近的点给端点施加了一个张力,那么这个附近的点也会受到一个来自端点的拉力,然而这个附近的点也没动,所以它也必然会受到更里面点的张力。这个过程可以一直传播下去,最后的结果就是这跟绳子所有的地方都会张力。

而且,我们还可以断定:如果绳子的质量忽略不计,绳子也没有打结没有被拉长,那么绳子内部的张力处处相等(只要有一个点两边的张力不等,那么这个点就应该被拉走了,绳子就会被拉变形),这是个很重要的结论。

通过上面的分析,我们知道了当一根理想绳子处于紧绷状态的时候,绳子内部存在处处相等的张力。当一根绳子静止在地面的时候,它处于松弛状态,没有张力,但是当一个波传到这里的时候,绳子会变成一个波的形状,这时候就存在张力了。正是这种张力让绳子上的点上下振动,所以,分析这种张力对绳子的影响就成了分析波动现象的关键。

04波的受力分析

那么,我们就从处于波动状态的绳子中选择很小的一段AB,我们来分析一下这个小段绳子在张力的作用下是如何运动的。放心,我们这里并不会涉及什么复杂的物理公式,我们所需要的公式就一个,大名鼎鼎的牛顿第二定律:F=ma。

牛顿第一定律告诉我们“一个物体在不受力或者受到的合外力为0的时候会保持静止或者匀速直线运动状态”,那么如果合外力不为0呢?牛顿第二定律就接着说了:如果合外力F不为零,那么物体就会有一个加速度a,它们之间的关系就由F=ma来定量描述(m是物体的质量)。也就是说,如果我们知道一个物体的质量m,只要你能分析出它受到的合外力F,那么我们就可以根据牛顿第二定律F=ma计算出它的加速度a,知道加速度就知道它接下来要怎么动了。

牛顿第二定律就这样把一个物体的受力情况(F)和运动情况(a)结合起来了,我们想知道一个物体是怎么动的,只要去去分析它受到了什么力就行了,所以它牛。

再来看我们的波,我们从处于波动状态的绳子里选取很小的一段AB,我们想知道AB是怎么运动的,就要分析它受到的合外力。因为不考虑绳子的质量,所以就不用考虑绳子的重力,那么,我们就只要分析绳子AB两端的张力T就行了。

如上图,绳子AB受到A点朝左下方的张力T和B点朝右上方的张力T,而且我们还知道这两个张力是相等的,所以才把它都记为T。但是,我们知道波动部分的绳子是弯曲的,那么这两个张力的方向是不一样的,这一点从图中可以非常明显的看出来。我们假设A点处张力的方向跟横轴夹角为θ,B点跟横轴的夹角就明显不一样了,我们记为θ+Δθ。

因为绳子上的点在波动时是上下运动,所以我们只考虑张力T在上下方向上的分量,水平方向上的就不考虑了。那么,我们把AB两点的张力T都分解一下,稍微用一点三角函数的知识我们就能发现:A点出向上的张力为T·sin(θ+Δθ),B点向下的张力为T·sinθ。那么,整个AB段在竖直方向上受到的合力就等于这两个力相减:F= T·sin(θ+Δθ)-T·sinθ。

好了,按照牛顿第二定律F=ma,我们需要知道物体的合外力F、质量m和加速度a,现在我们已经知道了合外力F,那么质量m和加速度a呢?

05波的质量分析

质量好说,我们假设绳子单位长度的质量为μ,那么长度为Δl的绳子的质量就是μ·Δl。

但是,因为我们取的是非常小的一段,我们假设A点的横坐标为x,B点的横坐标为x+Δx,也就是说绳子AB在横坐标的投影长度为Δx,那么,当我们取的绳长非常短的时候,我们就可以近似用Δx代替Δl,这样绳子的质量就可以表示为:μ·Δx。

质量搞定了,剩下的就是加速度a了。你可能以为我已经得到了合外力(F= T·sin(θ+Δθ)-T·sinθ)和质量m(μ·Δx),那么剩下肯定就是用合外力F除以质量m得到加速度a(牛顿第二定律),不不不,这样就不好玩了。我们还可以从另一个角度来得到加速度a,然后把它们作为拼盘拼起来。从哪里得到加速度呢a?从描述波的函数f(x,t)里。

06波的加速度分析

不知道大家还记得我们在前面说的这个描述波的函数y=f(x,t)么?这个函数的值y表示的是在x这个地方,时间为t的时候这一点的纵坐标,也就是波的高度。我们现在要求的也就是AB上下波动时的加速度,那么,怎么从这个描述点位置的函数里求出加速度a呢?

这里我们再来理解一下加速度a,什么叫加速度?从名字就可以感觉到,这个量是用来衡量速度变化快慢的。加速度嘛,肯定是速度加得越快,加速度的值就越大。假如一辆车第1秒的速度是2m/s,第2秒的速度是4m/s,那么它的加速度就是用速度的差(4-2=2)除以时间差(2-1=1),结果就是2m/s?。

再来回想一下,我们是怎么求一辆车的速度的?我们是用距离的差来除以时间差的。比如一辆车第1秒钟距离起点20米,第2秒钟距离起点50米,那么它的速度就是用距离的差(50-20=30)除以时间差(2-1=1),结果就是30m/s。

不知道大家从这两个例子里发现了什么没有?我用距离的差除以时间差就得到了速度,我再用速度的差除以时间差就得到了加速度,这两个过程都是除以时间差。那么,如果我把这两个过程合到一块呢?那是不是就可以说:距离的差除以一次时间差,再除以一次时间差就可以得到加速度?

这样表述并不是很准确,但是可以很方便的让大家理解这个思想。如果把距离看作关于时间的函数,我们对这个函数求一次导数(就是上面的距离差除以时间差,只不过趋于无穷小)就得到了速度的函数,对速度的函数再求一次导数就得到了加速度的表示。所以,我们把一个关于距离(位置)的函数对时间求两次导数,就可以得到加速度的表达式。

波的函数f(x,t)不就是描述绳子上某一点在不同时间t的位置么?那我们对f(x,t) 求两次关于时间的导数,自然就得到了这点的加速度a。因为函数f是关于x和t两个变量的函数,所以我们只能时间的偏导?f/ ?t,再求一次偏导数就加个2上去。于是我们就可以这样表示这点的加速度a=??f/ ?t?。

这样,我们就把牛顿第二定律F=ma的三要素都凑齐了:F= T·sin(θ+Δθ)-T·sinθ,m=μ·Δx,a=??f/ ?t?。把它们集合在一起就可以召唤神,阿不,就可以写出AB的运动方程了:

这个用牛顿第二定律写出来的波动方程,看起来怎么样?嗯,似乎有点丑,看起来也不太清晰,方程左边的东西看着太麻烦了,我们还需要对它进行一番改造。那怎么改造呢?我们可以先把sinθ给干掉。

07方程的改造

为了能够顺利地干掉sinθ,我们先来回顾一下基本的三角函数:

如上图,右边是一个直角三角形abc,那么角θ的正弦值sinθ等于对边c除以斜边a,正切值tanθ等于对边c除以邻边b。

当这个角度θ还很大的时候,a比b要明显长一些。但是,一旦角度θ非常非常小,可以想象,邻边b和斜边a就快要重合了。这时候我们是可以近似的认为a和b是相等的,也就是a≈b,于是就有c/b≈c/a,即tanθ≈sinθ。

也就是说,在角度θ很小的时候,我们可以用正切值tanθ代替正弦值sinθ。我们假设这跟绳子的扰动非常小,形变非常小,那么θ和θ+Δθ就都非常小,那么它们的正弦值就都可以用正切值代替。于是,那个波动方程左边的sin(θ+Δθ)-sinθ就可以替换为:tan(θ+Δθ)-tanθ。

为什么我们要用正切值tanθ代替正弦值sinθ呢?因为正切值tanθ还可以代表一条直线的斜率,代表曲线在某一点的导数。想想正切值的表达式tanθ=c/b,如果建一个坐标系,那么这个c刚好就是直线在y轴的投影dy,b就是在x轴的投影dx,它们的比值刚好就是导数dy/dx,也就是说tanθ=dy/dx。

然而,因为波的函数f(x,t)是关于x和t的二元函数,所以我们只能求某一点的偏导数,那么正切值就等于它在这个点的偏导数:tanθ=?f/ ?x。那么,原来的波动方程就可以写成这样:

这里我稍微解释一下偏导数的符号,我们用?f/ ?x表示函数f(x,t)的偏导数,这是一个函数,x可以取各种各样的值。但是如果我加一个竖线|,然后在竖线的右下角标上x+Δx就表示我要求在x+Δx这个地方的导数。

再来看一下这个图,我们已经约定了A点的横坐标为x,对应的角度为θ;B点的横坐标是x+Δx,对应的角度为θ+Δθ。所以,我们可以用x+Δx和x这两处的偏导数值代替θ+Δθ和θ这两处的正切值tan(θ+Δθ)和tanθ,所以波动方程才可以写成上面那样:

接着,如果我们再对方程的两边同时除以Δx,那左边就变成了函数?f/ ?x在x+Δx和x这两处的值的差除以Δx,这其实就是?f/ ?x这个函数的导数表达式。也就是说,两边同时除以一个Δx之后,左边就变成了偏导数?f/ ?x对x再求一次导数,那就是f(x,t)对x求二阶偏导数了。

上面我们用我们已经用??f/ ?t?来表示函数对t的二阶偏导数,那么这里自然就可以用??f/ ?x?来表示函数对x的二阶偏导数。然后两边再同时除以T,得到方程就简洁多了:

把方程左边的tan(θ+Δθ)-tanθ变成了函数f(x,t)对空间x的二阶偏导数,这个过程非常的重要,大家可以好好体会一下这个过程。正切值tanθ就是一阶导数,然后两个正切值的差除以自变量的变化就又产生了一次导数,于是总共就有了两阶,所以我们才能得到上面那个简洁的式子。

08经典波动方程

再看看方程右边的μ/T,如果你仔细去算一下μ/T的单位,你会发现它刚好就是速度的平方,也就是说如果我们把一个量定义成μ/T的平方根,那么这个量的单位刚好就是速度的单位。可以想象,这个速度自然就是这个波的传播速度v:


这样定义速度v之后,我们最终的波动方程就可以亮相了:

这个方程就是我们最终要找的经典波动方程,为什么把它作做经典的波动方程呢?因为它没有考虑量子效应啊,在物理学里,经典就是非量子的同义词。如果我们要考虑量子效应,这个经典的波动方程就没用了,我们就必须转而使用量子的波动方程,那就是大名鼎鼎的薛定谔方程。

薛定谔就是从这个经典波动方程出发,结合德布罗意的物质波概念,硬猜出了薛定谔方程。这个方程让物理学家们从被海森堡的矩阵支配的恐惧中解脱了出来,重新回到了微分方程的美好世界。薛定谔方程虽然厉害,但是它并没有考虑狭义相对论效应,而高速运动(近光速)的粒子在微观世界是很常见的,我们也知道当物体接近光速的时候就必须考虑相对论效应,但是薛定谔方程并没有做到这一点。

最终让薛定谔方程相对论化是狄拉克,狄拉克把自己关在房间三个月,最终逼出了同样大名鼎鼎的狄拉克方程。狄拉克方程首次从理论上预言了反物质(正电子),虽然当时的科学家们认为狄拉克这是在胡闹,但是我国的物理学家赵忠尧先生却几乎在同时就首次在实验室里观测到了正负电子湮灭的情况。

另外,狄拉克的工作也推动了量子场论的诞生,打开了一扇让人无比神往的新世界大门。物理学家们沿着这条路驯服了电磁力、强力、弱力,建立起了粒子物理的标准模型,于是四海清平,天下大定,除了那该死的引力。这些精妙绝伦的故事我们后面再讲,如果把这些故事写成一本《量子英雄传》,嗯,一定不比金庸的武侠逊色~

好了,回归正题,看到这个经典波动方程到后面还能掀起那么大的浪来,是不是突然就对它肃然起敬了呢?我们这样一顿操作推导出了经典波动方程,有的朋友可能有点懵,没关系,我们再来捋一下。这个看着很复杂的,包含了二阶偏导数的方程其实就只是告诉我们:我们把这跟绳子极小的一段看作一个质点,那么这个质点满足牛顿第二定律F=ma,仅此而已。

09复 盘

我们整个推导过程不过就是去寻找F=ma中的这三个量。我们把绳子的张力在竖直方向做了分解,然后得到了它在竖直方向上的合力F(T·sin(θ+Δθ)-T·sinθ);我们定义了单位长度的质量μ,然后就可以计算那小段绳子的质量m(μ·Δx);我们通过对波的函数f(x,t)的分析,发现如果对这种表示距离(位移)的函数对时间求一次偏导数就得到了速度,再求一次偏导数就得到了加速度,于是我们就得到了这段绳子的加速度a(??f/ ?t?)。然后我们就把这些量按照牛顿第二定律F=ma拼了起来。

在处理问题的过程中,我们做了很多近似:因为我们是取得很小的一段,那么我们就可以用Δx近似代替绳子的长度Δl;假设扰动很小,绳子偏离x轴很小,那么角度θ就很小,我们就近似用正切值tanθ代替正弦值sinθ。很多人乍一看,觉得这么严格的推导怎么能这么随意的近似呢?你这里近似那里近似,得到的最终结果还是准确的么?

要理解这个问题,就得正式去学习微积分了,我现在告诉你微积分的核心思想就是一种以直代曲的近似,你信么?微积分里就是用各种小段小段的直线去近似的代替曲线,但是得到的结果却是非常精确的。因为我们可以把这些线段取得非常非常的小,或者说是无穷小,那么这个误差也就慢慢变成无穷小了。所以我们在分析这跟绳子的时候,也都强调了是取非常小的一段,给一个非常小的扰动,得到一个非常小的角度θ。

另外,tanθ就是一次导数,然后它们的差再除以一次Δx,就又出现了一次导数,所以方程的左边就出现了f(x,t)对位置x的两次偏导数。方程的右边就是函数f(x,t)对时间t求两次偏导数得到的加速度a(求一次导数得到速度,求两次就得到加速度)。

所以,虽然我们看到的是一个波动方程,其实它只是一个变装了的牛顿第二定律F=ma。理解这点,波动方程就没什么奇怪的了。我们再来仔细的审视一下这个方程:

这个波动方程的意义也很直观,它告诉我们f(x,t)这样一个随时间t和空间x变化的函数,如果这个二元函数对空间x求两次导数得到的??f/ ?x?和对时间t求两次导数得到的??f/ ?t?之间满足上面的那种关系,那么f(x,t)描述的就是一个波。

如果我们去解这个方程,我们得到的就是描述波的函数f(x,t)。而我们前面对波做数学分析的时候得到了这样一个结论:如果一个函数f(x,t)描述的波,那么就一定满足f(x,t)=f(x-vt,0)。所以,波动方程的解f(x,t)肯定也都满足前面这个关系,这一点感兴趣的朋友可以自己下去证明一下。

好了,经典的波动方程我们就先讲到这里。有了波动方程,你会发现我们通过几步简单的运算就能从麦克斯韦方程组中推导出电磁波的方程,然后还能确定电磁波的速度。

本文经授权转载自微信公众号“长尾科技”。

《返朴》,科学家领航的好科普。国际著名物理学家文小刚与生物学家颜宁共同出任总编辑,与数十位不同领域一流学者组成的编委会一起,与你共同求索。关注《返朴》参与更多讨论。二次转载或合作请联系fanpusci@163.com。