历史上,我们对世界物质世界的认识经历了好几次大革命。第一次大革命是以牛顿定律为代表的力学革命。它建立了一个世界观,认为万物都是由粒子组成的,而粒子的运动是由牛顿定律来描写的。这使我们感到牛顿的力学理论,是描写世界上一切物质的完美理论,包括看起来很不相同的波动现象(见《见证奇迹的时刻:从牛顿定律到波的运动》)。
第二次大革命是以麦克斯韦方程为代表的电磁革命。它统一了三种看起来很不相同的自然现象:电、磁和光现象,并特别指出光其实就是一种电磁波(一种由电磁相互转变而引起的波动性)。一开始,大家还试图用牛顿的机械运动来解释电磁波。虽然粒子的集体运动能导致各种各样的波动现象,但这些波没有一个满足麦克斯韦方程。这使大家认为电磁波(光波)并不是一种由牛顿定律来描写的机械波,而是一种全新的自然现象。所以我觉得电磁革命的最本质发现,是发现了物质的新形态:一种场形态的物质。这一场形态物质的运动规律并不是由牛顿定律来描写的,而是由麦克斯韦方程来描写的。电磁革命也改变了我们的世界观:我们不仅有由粒子组成的物质,还有场形态物质。而粒子之间的相互作用,正是由这些场形态物质所引起的。
更近期的两次物理革命是相对论革命和量子革命。这些物理革命对人类产生了极其巨大的影响。轮船、火车、汽车、飞机、照明、收音机、电视、计算机、手机、塑料、医药,等等,没有这些物理革命,我们是无法发展到现在的程度的。这些物理革命所形成的新的世界观成为人类现代文明的基础和内涵。
每次物理革命都不是一个人完成的,而是由很多英雄来缔造的。今天的文章是一个系列的第二篇文章,给读者介绍一下电磁革命的来龙去脉,以及这些改变人类文明的革命是如何在探索和好奇中被发现的。
—— 文小刚
撰文 | 长尾科技
在上一篇文章《最美公式:你也能懂的麦克斯韦方程组(积分篇)》里,我们带着大家从零开始一步一步认识了麦克斯韦方程组的积分形式,这篇文章我们就来看看它的微分形式。
在积分篇里,我们一直在跟电场、磁场的通量打交道。我们任意画一个曲面,这个曲面可以是闭合的,也可以不是,然后我们让电场线、磁感线穿过这些曲面,它们就两两结合形成了四个积分形式的方程组。从这里我们能感觉到:麦克斯韦方程组的积分形式是从宏观角度来描述问题,这些曲面都是宏观可见的东西。那么微分形式呢?微分形式似乎应该从微观角度去看问题,那么我们要怎样把曲面、通量这些宏观上的东西弄到微观里来呢?
一个很简单的想法就是:让宏观上的东西缩小再缩小,直到缩小成一个点,这样不就进入微观了么?积分形式的麦克斯韦方程组需要选定一个曲面,但是它并没有限定这个曲面的大小,我们可以把这个曲面选得很大,也可以选得很小。当我们把这个曲面选得很小很小的时候,麦克斯韦方程组的积分形式就自然变成了微分形式。所以,微分形式的基本思想还是很简单的,真正麻烦的地方是在于,如何寻找一种方便的计算方式,这些我后面会细说。
因为微分形式和积分形式的这种承接关系,我建议大家尽量先看看积分篇的内容。在积分篇里,我是从零开始讲电磁学,讲麦克斯韦方程组,所以阅读起来不会有什么门槛。但是到了微分篇,上篇文章已经详细说了一些东西(诸如电场、通量、环流等概念),这里就不会再细说了。我们不会从天而降地抛出一个东西,如果在这篇文章里遇到了什么难以理解的东西,可以看看是不是在积分篇里已经说过了。
好,下面进入正题。在积分篇里跟大家讲过,麦克斯韦方程组总共有四个方程,分别描述了静电(高斯电场定律)、静磁(高斯磁场定律)、磁生电(法拉第定律)、电生磁(安培-麦克斯韦定律)。这四个方程各有积分和微分两种形式,积分形式我们上篇已经说过了,微分形式我们还是按照顺序,也从静电开始。
01 微分形式的静电在积分篇里,我们是这样描述静电的:在空间里任意画一个闭合曲面,那么通过闭合曲面的电场线的数量(电通量)跟这个曲面包含的电荷量成正比。用公式表述就是这样:
这就是积分形式的高斯电场定律:左边表示通过闭合曲面 S 的电通量(E是电场强度,我们把面积为 S 的闭合曲面分割成许多小块,每一个小块用 da 表示,那么通过每一个小块面积的电通量就可以写成 E·da。套上一个积分符号就表示把所有小块的电通量累加起来,这样就得到了通过整个闭合曲面 S 的电通量),右边那个带了enc下标的 Q 就表示闭合曲面包含的电荷量,ε0(0为下标) 是个常数。这些内容在积分篇里已经详细说过了,这里不再多言。
下面是重点:因为这个闭合曲面 S 是可以任何选取的,它可以大可以小,可以是球面,也可以是各种乱七八糟的闭合曲面。那么我们就不妨来学习一下孙悟空,变小变小再变小,让这个闭合曲面也一直缩小再缩小,缩小到无穷小,那么这时候高斯电场定律会变成什么样呢?
这里会涉及一丢丢极限的概念,我们这样考虑:一个闭合曲面缩小到无穷小,其实就是它的表面积或者体积无限趋向于 0。也就是说,我假设有一个球的体积为 ΔV,然后让这个 ΔV 无限趋近于0,那这样就可以表示这个球缩小到无穷小了。用数学符号可以记成这样:
lim 就是英文单词极限(limit)的缩写,ΔV通过一个箭头指向 0 可以很形象地表示它无限趋近于 0。有了这个极限的概念,我们就可以很自然的表示通过这个无穷小曲面的电通量了(直接在电通量的前面加个极限符号),这时候高斯电场定律就成了这样:
这样,我们就把高斯电场定律从宏观拉到了微观:方程的左边表示曲面缩小到无穷小时的电通量,方程的右边表示无穷小曲面包含的电荷量。但是,当曲面缩小到无穷小的时候,我们再使用电荷量 Q 就不合适了,所以我们改用电荷密度(符号为ρ)。电荷密度,从名字里我们就能猜出它表示的是单位体积内包含电荷量的大小,所以它的表达式应该是用电荷量除以体积,即:ρ=Q/V。
所以,如果我们把微观的高斯电场定律左右两边都同时除以体积 ΔV,那么右边的电荷量 Q 除以体积 ΔV 就变成了电荷密度 ρ,左边我们也除以ΔV,那么公式就变成了下面这样:
公式的右边除以体积 ΔV,就成了电荷密度 ρ 除以真空介电常数ε0 (0为下标),那左边呢?左边原来是通过无穷小曲面的电通量,它除以体积 ΔV 之后表示什么呢?这一长串的东西,我们给它取了个新名字:散度。
也就是说,电场 E 在一个点(被无穷小曲面围着的这个点)上的散度被定义为电场通过这个无穷小曲面的电通量除以体积。散度的英文单词是 divergence,所以我们通常就用 div(E) 表示电场 E 的散度,即:
所以,高斯电场定律的微分形式就可以表示成这样:
它告诉我们:电场在某点的散度跟该点的电荷密度成正比。
然后呢?然后微分篇的第一个方程就这样说完了?这只不过把高斯电场定律积分形式的曲面缩小到了无穷小,然后两边同时除以体积,右边凑出了一个电荷密度,左边巴拉巴拉凑出一大堆东西,你告诉我这个新东西叫散度就完事了?不带这么玩的!那这个散度到底有什么物理意义?我要如何计算具体的散度(你用无穷小通量去定义散度倒是好定义,但是这样计算可就麻烦了)?还有,很多人多多少少知道一些麦克斯韦方程组的样子,虽然不是很懂,那个倒三角符号 ▽ 倒还是记得的,你这公式里为什么没有 ▽ 符号呢?
02 初入江湖的▽没错,我们用无穷小曲面的通量和体积的比值来定义散度,这样定义是为了突出它跟通量之间的联系,也方便大家从积分的思维自然转化到微分的思维中来。但是,这种定义在具体计算的时候是没什么用的,我们不会通过计算无穷小曲面的通量和体积的比值来计算一个点的散度,因为这样实在是太麻烦了。我们有种更简单的方式来计算电场在某个点的散度,而这种方法,就会使用到我们熟悉的倒三角▽符号。
在这种新的表示方法里,电场 E 的散度可以被写成 ▽·E,所以我们就可以用这个东西替换掉方程左边的 div(E),那么麦克斯韦方程组的第一个方程——描述静电的高斯电场定律的微分形式就可以写成这样:
这样写的话,是不是就感觉熟悉多了?也就是说,同样是为了表示散度,我们用 ▽·E 代替了原来无穷小曲面通量和体积比值那么一大串的东西。而且这样还非常好计算,使用这种新的方式,只要给出一个电场,分分钟就可以把电场的散度写出来。这种倒三角▽符号,绝对是符号简化史上的奇迹。
所以,我接下来的工作,或者说理解麦克斯韦方程组的微分形式的核心内容,就是要来告诉大家这个倒三角▽符号到底是什么意思,▽·(后面加了一个点)又是什么意思?为什么 ▽·E 可以表示电场 E 的散度呢?为什么▽·E 跟我们前面散度的定义 div(E) 是等价的?也就是说:
为什么上面的式子是相等的,而且都可以用来表示电场 E 的散度?
这就是我在开篇说的:微分形式的基本思想还是很简单的,它真正麻烦的地方在于,如何寻找一种方便计算的方式,这种方便的计算方式自然就是▽。那么我们接下来就先把电磁相关的物理内容搁置一旁,先一起来看一看这个传奇符号▽的前世今生,理解了它,就理解了麦克斯韦方程组的微分形式的精髓。
03 从导数说起要理解▽,我们还是得先再来看一看这个衡量事物变化快慢的概念:导数。说“再”是因为我们在积分篇里已经讲过了:法拉第发现了电磁感应,发现变化的磁场能产生电场,而且磁场变化得越快,产生的电场越大。这里我们就需要这样一个量来描述磁场变化的快慢,只不过当时我们没有展开说。
我还是借用上篇身高的例子来看看我们是如何描述变化的快慢的。一个人在十二三岁的时候一年可以长 10 厘米,我们说他这时候长得快;到了十七八岁的时候可能一年就只能长 1 厘米,我们就说他长得慢。也就是说,我们衡量一个量(这里就是身高,假设身高用 y 表示)变化快慢的方法是:给定一个变化的时间 dt(比如一年,或者更小),看看这个量的变化 Δy 是多少,如果这个量的变化很大我们就说它变化得很快,反之则变化得慢。
在这里,我稍微解释一下 Δy 和 dy 的区别:如下图所示,我们假设函数在 x 轴上有一个增量 Δx,这个用 Δx 或者 dx 表示都一样,两者相等。但是,这个在 x轴上的变化带来的 y 轴上的变化就不一样了:Δy 表示的是 y 轴实际的变化量,是用前后两个不同的 x 对应的 y 值直接相减得到的真实结果;而 dy 则不是,dy 是我们在 M 点作一条切线,然后用这条直线来代替曲线,当 x 轴上变化了 dx 的时候,这条直线上对应 y 上的变化。
从这个图里我们可以看到:Δy 的值是要比 dy 大一点点的,但是随着 Δx 或者 dx 的减小,它们之间的差值会急速减小,比 Δx 减小的快得多,这个差值也是我们常说的高阶无穷小。Δy 叫做函数从一点到另一点的增量,而 dy 则被叫做函数的微分,或者叫它的线性主部。“以直(dy)代曲(Δy)”是现代微积分的一个核心思想,从这个图里可见一斑。
在微积分刚创立的时候,莱布尼茨把 dx 看作一个接近 0 但又不等于 0 的无穷小量,这种“朴素”的思维很符合直觉,而且用这种思想来计算也没什么错,但是它的基础是非常不牢固的。正是这种幽灵般的无穷小量 dx(时而可以看作是0,时而可以当除数约分)导致了第二次数学危机,数学家们经过一个多世纪的抢救才给微积分找到了一个坚实的地基:极限理论。
这段内容不是太理解没关系,只要知道我们可以用 dy/dx 表示函数在 M 点的导数(在这里就是切线的斜率),可以用它来表示图像在这里变化的快慢就行了。
再回到人的身高随年龄变化的这个例子里来。人在各个年龄 t 都会对应一个身高y,这每个(t,y)就对应了图上的一个点,把这些点全都连起来大致就能得到这样一个图:
在导数 dy/dt 大的地方,图形里的斜率很大,通俗的说就是曲线很陡峭;而导数很小的地方,对应的曲线就很平缓。
在这个例子里,身高 y 随着年龄 t 变化而变化,也就是说给定任何一个 t 的值,都有一个 y 的值跟它对应,我们就可以说身高 y 是关于年龄 t 的函数(function),记作 y=f(t)。这个 f 自然就是函数的英文单词 function 的缩写,函数就是这样一种对应(映射)关系。在这里,身高 y 的值只跟年龄 t 一个变量相关,我们就说这是一个一元函数。但是,如果问题稍微复杂一些,某个量不止跟一个量有关,而是跟多个量有关呢?
04 多个变量的偏导数比如山的高度,一座山在不同点的高度是不一样的,而在地面上确定一个点的位置需要经度和纬度两个信息。或者,你可以自己在地面上建立一个坐标系,然后地面上每一个点都可以用(x,y)来表示。因为每一个位置(x,y)都对应了那个地方山的高度 z,那么 z 就成了一个关于 x 和 y 的函数,记作 z=f(x,y)。因为山的高度 z 需要两个变量 x 和 y 才能确定,所以我们说 z=f(x,y) 是一个二元函数。
再例如,我房间的每一个点都有一个温度,所以房间的温度 T 是一个关于房间内空间点的函数,而房间里每一个点的位置需要长宽高三个变量(x,y,z)才能确定。所以,我房间里的温度 T 是一个关于 x,y,z 的三元函数,记作 T=f(x,y,z)。
我们再来回过头来看看导数,在一元函数 y=f(t) 里,我们用 dy/dt 来表示这个函数的导数,导数越大的地方曲线变化得越快。因为一元函数的图像是一条曲线,曲线上的一个点只有一个方向(要么往前,要么往后,反正都是沿着 x 轴方向),所以我们可以直接用 dy/dt 表示函数变化得有多快。但是,如果这个函数不是一元函数,而是二元、三元等多元函数呢?
比如山的高度 z 是关于位置 x,y 的二元函数 z=f(x,y),这时候地面上的每一个点(x,y)都对应一个值,它的函数图像就是一个曲面(如山的表面),而不再是一条曲线。而曲面上的每一个点有无数个方向(前后左右360°都可以),x 和 y 只是这无数方向中的两个,那我们要如何把握这无数个方向上的高度变化快慢呢?
当然,我们不可能把这无数个方向都一一找出来,也没这个必要。一个平面上有无数个点,但是我只用 x 和 y 这两个方向组成的(x,y)就可以表示所有的点。同样的,虽然在函数曲面上的一点有无数个方向,不同方向函数变化的快慢都不一样的,但是我们只要把握了其中两个,就能把握很多信息。
那么我们要如何表示函数 z 沿着 x 轴方向变化的快慢呢?直接用 dz/dx 么?好像不太对,因为我们的 z 是一个关于 x 和 y 的二元函数,它的变量有两个,你这样直接 dz/dx 合适么?合法么?但是,如果我在考虑 x 轴方向的时候,把 y 看作一个常数,也就是把 y 轴固定住,这样函数 z 就只跟 x 相关了,于是我们就把一个二元函数(曲面)变成了一个一元函数(曲线)。
如上图所示,当我们固定 y=1 的时候,这个曲面就被这个 y=1 的平面切成了两半,而平面与曲面相交的地方就出现了一条曲线。这条曲线其实就是当我固定 y=1 的时候,函数 z 的图像,只不过这时候 z 只跟 x 一个变量有关,所以它变成了一个一元函数。于是,我们就可以仿照一元函数的方法定义导数了,也就是说:我们在 z=f(x,y) 上无法直接定义导数,但是如果我们把 y 固定,这时候二元函数的曲面就变成了一元函数的曲线,那么我们就能在曲线上定义导数了。像这样把 y 的值固定在某个地方,然后计算函数在 x 轴方向上的导数,叫作求关于 x 的偏导数,记作 ∂z/∂x。同样,如果我们把 x 的值固定,计算函数在 y 轴方向上的导数,那自然就是关于 y 的偏导数,记做 ∂z/∂y。
05 全微分有了偏导数的概念,我们就有办法写出 dz 和 dx、dy 之间的关系了。在一元函数里,导数是dy、dt,我们自然就可以写出 dy 和 dt 之间的关系:
那么,到了二元函数 z=f(x,y) 的时候呢?我们想象有个人在山的一点要往另一点爬,我们让他先沿着 x 轴的方向爬(也就是固定住 y 的值),假设他沿 x 轴移动了 dx。根据上面偏导数的定义,如果我们把 y 的值固定了,那么他在 x 轴方向上的导数是可以用偏导数 ∂z/∂x 来表示,那么在他沿着 x 轴移动的时候,他上升的高度就可以写成 (∂z/∂x)·dx。同样,接下来他沿着 y 轴方向走的时候,他上升的高度就可以写成 (∂z/∂y)·dy。我们把这两个部分上升的高度加起来,不就得到了最终爬山的高度变化 dz 的了么?也就是说:
这个公式我们可以把它做作全微分定理,它其实是对上面一元函数导数关系的一个自然推广。它告诉我们,虽然在曲面的一个点上有无数个方向,但是只要我们掌握了其中x和y两个方向上的偏导数,我们就能把握它的函数变化 dz。还原到爬山的例子上来,这个公式是在告诉我们:如果我知道你沿着x轴和y轴分别走了多少,然后我知道这座山在x轴和y轴方向的倾斜度(即偏导数)是多少,那我就知道你爬山的纯高度变化有多少(又是几近大废话)。
我们费了这么多劲就为了推出这个公式,那么这个公式里肯定隐藏了什么重要的东西。不过,现在这种形式还不容易看清楚,我们还得稍微了解一点矢量分析的内容,把公式拆成矢量点乘的形式,那就明显了。
06 再谈矢量乘点关于矢量点乘的事情,我在积分篇的第六节就已经说过一次了,因为电场的通量 Φ 就是电场 E 和面积 a 的点乘:Φ=E·a。因为矢量是既有大小又有方向的量,而我们小时候学习的乘法只管大小不管方向,所以两个矢量之间就得重新定义一套乘法规则,而最常见的就是点乘(符号为‘·’)。
两个矢量 OA、OB 的点乘被定义为:OA·OB=|OA||OB|cosθ(矢量的表示原本是在它头顶上加一个箭头,但是这里不方便这样表示,那就用黑体表示了)。它表示一个矢量 OA 在另一个矢量 OB 上的投影OC(OC=|OA| cosθ)和另一个矢量的大小的乘积,可见两个矢量点乘之后的结果是一个标量(只有大小没有方向)。
这些内容我在上一篇已经说了,这篇文章我们再来看看矢量点乘的几个性质。
性质1:点乘满足交换律,也就是说 OA·OB=OB·OA。这个很明显,因为根据定义,前者的结果是|OA||OB| cosθ,后者的结果是|OB||OA| cosθ,它们明显是相等的。
性质2:点乘满足分配律,也就是说 OA·(OB OC) = OA·OB OA·OC。这个稍微复杂一点,我这里就不作证明了,当做习题留给大家。
性质3:如果两个矢量相互垂直,那么它们点乘的结果为0。这个也好理解,如果两个矢量垂直,那么一个矢量在另一个矢量上的投影不就是一个点了么?一个点的大小肯定就是0啊,0乘以任何数都是0。如果大家学习了三角函数,从 cos90°=0 一样一眼看出来。
性质4:如果两个矢量方向一样,那么它们点乘的结果就是它们的大小相乘。理解了性质3,理解4就非常容易了,从 cos0°=1 也能一眼便知。
此外要注意的是,点乘是不满足结合律的,也就是说没有 (OA·OB)·OC=OA· (OB·OC),为什么?因为两个矢量点乘之后的结果是一个标量,再让一个标量去点乘另一个矢量压根就没有意义,点乘是两个矢量之间的运算。
我们小学就开始学的加法、乘法满足交换律、结合律、分配律,而矢量的点乘除了不能用结合律以外,其它的都满足。我这样写是为了告诉大家:点乘虽然是一种新定义的运算,但是它和我们平常接触的加法、乘法还是很类似的,大家不用对这种陌生的运算产生未知的恐惧。
07 坐标系下的点乘一个矢量有大小又有方向,我们通常是用一个箭头来表示,箭头的方向就代表了矢量的方向,而箭头的长短就代表了矢量的大小。如果我们这时候建立一个坐标系,把这个箭头的一端移动到坐标原点,那么箭头的另一端就会固定在坐标系的某个点上,这样的话,我们就可以用一个坐标点来表示一个矢量了。
如上图,A点的坐标是(4,3),那么这个矢量 OA 就可以记为(4,3)。然后,我们把矢量 OA 沿着 x 轴 y 轴做一个分解:
于是,矢量 OA 就可以表示成:OA=OB OC(矢量的加法就是把两个矢量首尾相连,所以 OB BA=OA,而 BA=OC,所以有上面的结论)。这时候,如果我们在 x 轴上定义一个单位向量 x = (1,0),那么 OB 的长度是 x 长度的四倍,而它们的方向又一样,所以矢量 OB=4x。同样,在 y 轴上定义一个单位向量y=(0,1),那么OC=3y。那么,我们的 OA 就可以重新写成:OA=OB OC=4x 3y。
08 梯度的诞生
对于很多高中生来说,这只是一个熟悉得不能再熟悉的结论,但是我还是从头到尾给大家扎扎实实地推导了一遍。我不喜欢那种凭空突然冒出一个结论的感觉,所以我也希望读者看我的文章,每个结论得出来都是踏踏实实的,都是严密的逻辑推导出来的。这个式子有什么用呢?我们看看它的后面一半(带箭头的 x,y 表示矢量,对应上面公式里的黑体 x,y ):
再对比一下我们上面推导出来的全微分定理:
于是,dz 就被我们拆成了两个矢量点乘的样子,我们再来仔细看看这两个矢量:右边这个矢量的两个分量分别是 dx 和 dy,这分别是沿着x轴和y轴移动无穷小的距离,它们相加的结果用 dl 来表示:
而左边呢,左边这个矢量的两个分量分别是函数 z=f(x,y) 对 x 和 y 的两个偏导数,这个我们也用一个新的符号来表示它:
绕了这么久,我们现在终于看到这个▽符号了,这个▽z的名字就叫:z的梯度。
把左右两边的矢量都单独拎出来之后,我们就可以把原来的式子写成更简单的样子:
这一段信息量有点大,对于没接触过矢量分析的人来说可能会稍有不适。我们前面绕那么大弯子讲全微分 dz,讲矢量的点乘,都是为了引出这个式子,然后从中提炼出梯度 ▽z 的概念。不是很理解的朋友可以好好再看一看上面的文章,再想一下,我们基本上是从零开始一步一步写到这里来的,只要耐心看肯定能看懂。
搞懂了这些事情的来龙去脉之后,我们就来重点看看我们引出来的▽z,也就是z的梯度。
09 梯度的性质这个梯度我们要怎么去看呢?首先▽z是一个矢量,是矢量就既有大小又有方向,我们先来看看梯度的方向。
上面我们已经得到了 dz=▽z·dl,把 dz 表示成了两个矢量的点乘,那我们再根据矢量点乘的定义把它们展开,就可以写成这样:
这个dz则表示山的高度的一个微小变化,那么,沿着哪个方向走这个变化是最快的呢?也就是说,我选择哪个方向会使得 dz 的变化最大?
cosθ 表示的是直角三角形里邻边和斜边的比值,而斜边总是比两个直角边大的,所以它的最大值只能取1(极限情况,θ=0°的时候),最小为0(θ=90°)。而根据上面的 dz=|▽z||dl|cosθ,显然要让 dz 取得最大值,就必须让 cosθ 取最大值1,也就是必须让 ▽z 和 dl 这两个矢量的夹角 θ=0°。
两个矢量的夹角等于0是什么意思?那就是这两个矢量的方向一样啊。也就是说:如果我们移动的方向(dl的方向)跟梯度▽z的方向一致的时候,dz的变化最大,我们高度变化最大。这就告诉我们:梯度▽z的方向就是高度变化最快的方向,就是山坡最陡的方向。
假设你站在一个山坡上四处遥望,那个最陡的地方就是梯度的方向,如果你去测量这个方向的斜率,那这就是梯度的大小。所以,梯度这个名字还是非常形象的。
10 ▽算子我们再仔细看一下梯度▽z的表示:
这是一个矢量,但是它看起来好像是▽和一个标量 z “相乘”,我们把这个 z 提到括号的外面来,这时候这个梯度 ▽z 就可以写成这样:
所以,如果把▽单独拎出来,就得到了这样一个东西:
这个东西就值得我们玩味了,这是啥?▽z表示的是二元函数 z=f(x,y) 的梯度,也就是说我们先有一个函数z,然后我们把这个▽往函数z前面一放,我们就得到z的梯度。从函数z得到z的梯度的具体过程就是对这个函数z分别求x的偏导和y的偏导。
也就是说,单独的▽是这么个东西:▽自己本身并不是什么具体的东西,需要给出一个函数,然后对这个函数进行一顿操作(求x和y的偏导),最后返回这个函数的梯度。这就像是有一个特定功能的模具:你给我一堆面粉,我一顿处理之后返回你一个饼。但是显然的,它并不是面粉,也不是饼,它单独的存在没有什么意义,它一定要跟面粉结合才能产生有具体意义的东西。
这种东西叫算子,▽就叫▽算子(读作nabla算子)。基于▽算子的巨大影响力,它又有一大堆其他的名字:从它的具体功能上来看,它被称为矢量微分算子;因为它是哈密顿引入进来的,所以它又被称为哈密顿算子;从读音上来说,它又被称为 nabla 算子或者 del 算子。这些大家了解一下,知道其他人在谈论这个的时候都是在指▽算子就行了。
11 梯度、散度、旋度▽算子不是一个矢量,除非你把它作用在一个函数上,否则它没啥意义。但是,它在各个方面的表现确实又像一个矢量,只要你把▽算子的“作用”看成矢量的“相乘”。
一个矢量一般来说有3种“乘法”:
1、矢量 A 和一个标量 a 相乘:aA。比如我把一个矢量 A 的大小变为原来的2倍,方向不变,那么这时候就可以写成 2A。
2、矢量A和一个矢量B进行点乘:A·B。这个点乘我们上面介绍很多了,A·B=|A||B|cosθ,这里就不说了。
3、矢量A和一个矢量B进行叉乘:A×B。这个叉乘跟点乘类似,也是我们单独针对矢量定义的另外一种乘法,|A×B|=|A||B|sinθ。大家可以看到,这个叉乘跟点乘唯一的区别就是:点乘是两个矢量的大小乘以它们的余弦值 cosθ,叉乘是两个矢量的大小乘以它们的正弦值 sinθ(在直角三角形里,角的对边和斜边的比为正弦 sinθ,邻边和斜边的比值为余弦 cosθ)。
那么,同样的,我们的▽算子也有3种作用方式:
1、▽算子作用在一个标量函数 z 上:▽z。这个 ▽z 我们上面说过了,它表示函数 z 的梯度,即函数z变化最快的方向。
2、▽算子跟一个矢量函数 E 点乘:▽·E。这就表示 E 的散度,我们开篇讲的高斯电场定律的左边就是电场 E 的散度,它就是表示成▽·E这样。
3、▽算子跟一个矢量函数 E 叉乘:▽×E。它叫 E 的旋度,这个我们后面会再详细说。
散度和旋度
这样,我们就以一种很自然的方式引出了这三个非常重要的概念:梯度(▽z)、散度(▽·E)和旋度(▽×E)。大家可以看到,▽算子的这三种作用跟矢量的三种乘法是非常相似的,只不过▽是一个算子,它必须作用在一个函数上才行,所以我们把上面的标量和矢量换成了标量函数和矢量函数。
我们在描述山的高度的函数 z=f(x,y) 的时候,不同的点(x,y)对应不同的山的高度,而山的高度只有大小没有方向,所以这是个标量函数,我们可以求它的梯度 ▽z。但是,电场 E 既有大小又有方向,这是一个矢量,所以我们可以用一个矢量函数 E=f(x,y) 表示空间中不同点(x,y)的电场 E 的分布情况。那么对这种矢量函数,我们就不能去求它的梯度了,我们只能去求它的散度 ▽·E 和旋度▽×E。
为了让大家对这些能够有更直观的概念,我们接下来就来仔细看看电场的散度▽·E。
请看下篇。
本文经授权转载自微信公众号“长尾科技”,「返朴」做了少量修改。
特 别 提 示
1. 进入『返朴』微信公众号底部菜单“精品专栏“,可查阅不同主题系列科普文章。
2. 『返朴』提供按月检索文章功能。关注公众号,回复四位数组成的年份 月份,如“1903”,可获取2019年3月的文章索引,以此类推。
《返朴》,科学家领航的好科普。国际著名物理学家文小刚与生物学家共同出任总编辑,与数十位不同领域一流学者组成的编委会一起,与你共同求索。关注《返朴》(fanpu2019)参与更多讨论。二次转载或合作请联系fanpusci@163.com。
,