打爆散度、旋度、梯度的小狗头 散度Divergence、梯度Gradient和旋度Curl这三个概念单独学的时候也许还能明白但是一旦放在一起可能就完全不知道它们到底是什么玩意了如果我问散度、旋度、梯度这三个量里面哪些是矢量哪些是标量时间久了也许很多人都会忘。 我希望用自己的语言把这三个概念讲得简单一点。最好不用一上来就是一堆符号让人一眼看了就想跑。当然如果要真正看懂公式肯定还是需要高数基础的。但在进入公式之前我们完全可以先从物理场景和直觉出发理解它们到底在描述什么。散度“散度”这个词可以先从字面上理解散发散、向外扩散度程度、度量。所以散度可以理解为一个场在某个位置向外发散的程度。如果散度为正说明这里像是在“往外吐”如果散度为负说明这里像是在“往里吸”如果散度为零说明这里既没有源也没有汇只是单纯流过。比如过年放礼花弹爆炸的一瞬间火花从中心向四面八方散开而且越散越大。这个时候礼花弹爆炸的中心就像一个“源”因为有东西从这里不断向外流出。对于这个位置来说散度就是正的。再比如下雨的时候路面上的水从四面八方流进下水道。下水道口就像一个“汇”因为周围的水都在向它聚集。对于这个位置来说散度就是负的。但是并不是所有“有流动”的地方都有源或汇。比如风吹过一片开阔的平原空气从左边流进来又从右边流出去。如果我们只盯着其中一个很小的小方块看会发现空气从左边进入这个小方块又从右边离开这个小方块进入的量和离开的量完全相等。也就是说这个小方块内部并没有凭空产生空气也没有空气在里面消失。它只是空气流动路径上的一个“路人”。这种情况下这个小区域的散度就是零。所以散度真正关心的压根不是“有没有流动”而是某个小区域内部有没有净流出或净流入。简单来说散度衡量的是流出去的量 − 流进来的量。如果结果是正的说明流出去的比流进来的多里面像是有一个“源”比如礼花弹爆炸如果结果是负的说明流进来的比流出去的多里面像是有一个“汇”比如水流进下水道如果结果是零说明流进和流出的量相等只是经过这里并没有增加也没有减少。因此散度只关心的是一个空间场在某一点附近是向外发散、向内汇聚还是单纯流过。需要注意的是散度最终得到的是一个数值。它只告诉我们“净流出多少”或“净流入多少”并不告诉我们具体朝哪个方向流。因此散度是一个标量。不过虽然散度的结果是标量但在判断流进和流出的时候仍然需要用到流场的方向。只是这些方向信息在计算过程中被综合掉了最后只留下一个表示“发散程度”的数值。我们可以把散度想象成用来判断一个空间里有没有“源头”或“汇点”的物理量。旋度“旋度”这个词也可以先从字面上理解旋旋转、打转度程度、度量。所以旋度可以理解为一个场在某个位置附近“让东西旋转起来的程度”。如果散度关心的是“有没有向外发散或向内汇聚”那么旋度关心的就是这个地方附近有没有打转、绕圈、旋转的趋势。我们可以把旋度想象成水池里的漩涡。水池里出现一个漩涡时水流会绕着某个中心顺时针或者逆时针旋转。如果我们在漩涡附近放一个很小的小水轮它很可能会被水流带着转起来。如果水流是顺时针旋转小水轮就顺时针转如果水流方向反了小水轮的旋转方向也会反过来。这个时候我们就说这个地方的流场有带动小水轮旋转的趋势也就是旋度不为零。因此描述旋度的时候通常不仅要描述“转得有多厉害”还要描述“绕着哪个方向转”。也就是说旋度这个物理量是一个有大小、有方向的量所以它是矢量。但是并不是所有“看起来在绕弯”的运动都有旋度。旋度真正关心的不是一个物体整体是不是绕着某个很远的点转而是看某个很小区域内部有没有局部旋转趋势。比如风吹过一片开阔平原空气整体从左往右流。如果速度处处一样左边流进来右边流出去每一小块空气只是平移过去并不会自己打转。所以这种均匀直线流动的旋度就是零。也就是说旋度真正关心的不是“有没有流动”也不是“路径是不是弯的”而是某个小区域内部有没有绕着自身打转的趋势。简单来说旋度衡量的是一个场在某一点附近的局部旋转程度。如果旋度不为零说明这个位置附近的流场有让小水轮转起来的趋势如果旋度为零说明这个位置附近虽然可能有流动但没有局部旋转趋势如果旋度越大说明这种旋转趋势越强。和散度不同旋度不仅有大小还有方向。旋度的大小表示“转得有多厉害”旋度的方向表示“旋转轴指向哪里”这个方向可以用右手定则来理解如果水流按照你右手四指弯曲的方向旋转那么大拇指指向的方向就是旋度的方向。比如在平面上看一个逆时针旋转的水流如果你用右手四指顺着逆时针方向弯曲大拇指会指向纸面外所以它的旋度方向就是垂直纸面向外如果水流是顺时针旋转的那么旋度方向就是垂直纸面向里。因此旋度描述的是一个空间场在某一点附近是不是有局部旋转趋势以及这个旋转趋势的强弱和方向。可以和散度对比着记散度看这个地方是不是“往外吐”或者“往里吸”描述的是源和汇旋度看这个地方是不是“在打转”描述的是局部旋转。所以散度最终得到的是一个标量因为它只描述净流出或净流入的多少而旋度通常是一个向量因为它既要描述旋转的强弱也要描述旋转轴的方向。梯度“梯度”这个词也可以先从字面上理解梯阶梯、坡度度程度、度量。所以梯度可以理解为某个量在空间中变化最快的方向和变化的剧烈程度。如果说散度关心的是“有没有源或汇”旋度关心的是“有没有打转”那么梯度关心的就是一个量往哪个方向增加得最快以及增加得有多快。最容易想到的就是把梯度想象成爬山。比如我站在玉龙雪山山脚下仰望一座山假设你站在山脚下的某一个位置准备往上爬。你会发现从你脚下这个点出发周围有很多不同方向往东可能坡比较缓往西可能高度变化不大往北可能越来越低往南可能高度上升得最快。也就是说在这个点附近总会有一个方向让人感觉最陡、最累。这个方向就是高度上升最快的方向。所以梯度指向的方向就是高度上升最快的方向梯度的大小就表示这个方向上高度增加得有多快也就是坡有多陡。如果我们把“高度”看成一个场那么山坡上每一点的梯度就告诉我们从这一点出发往哪个方向走高度增加最快高度增加的速度有多大。再比如温度场。假设一个房间里不同位置温度不同靠近暖气片的地方温度高远离暖气片的地方温度低。那么在房间中的某一点温度的梯度就指向温度升高最快的方向通常也就是指向更热的地方。梯度越大说明温度变化越剧烈梯度越小说明温度变化越平缓。但是需要注意的是梯度描述的不是“温度本身有多高”而是“温度在空间中变化得有多快”。一个地方温度可以很高但如果周围温度也差不多那么这个地方的梯度可能很小一个地方温度不一定最高但如果它附近温度变化特别剧烈那么这个地方的梯度就可能很大。比如山顶的高度很高但在山顶正中央四周可能都开始下降局部没有哪个方向还能继续上升得更快这时山顶处的梯度可能是零。而山腰虽然没有山顶高但高度变化很明显所以山腰的梯度反而可能很大。所以梯度真正关心的不是“数值本身大不大”而是某个位置附近这个量的空间变化趋势。简单来说梯度衡量的是一个标量场在某一点附近增加最快的方向和增加的快慢。如果梯度很大说明这个地方变化很剧烈比如山坡很陡、温度变化很快如果梯度很小说明这个地方变化很平缓如果梯度为零说明这个位置附近没有明显的上升方向比如平地、山顶、山谷底或者局部变化暂时停住的地方。和散度不同梯度也是一个向量。梯度的大小表示“变化有多快” 梯度的方向表示“增加最快的方向”。梯度通常是把一个标量场变成一个向量场。一张表总结最后区分这三个概念梯度看一个量往哪个方向增加最快描述的是空间变化散度看一个场是不是“往外吐”或“往里吸”描述的是源和汇旋度看一个场是不是“在打转”描述的是局部旋转。名称输入输出物理意义类比梯度 Gradient∇标量场例如温度、高度向量场变化最陡的方向和速度山坡坡度散度 Divergence∇·向量场例如风速、水流速度标量源或汇的强度喷头 vs 下水道旋度 Curl∇×向量场例如风速、水流速度向量旋转轴方向和旋转强度小风车这样理解之后再回头看那些博主的文章就不会觉得它们只是冰冷的符号了。公式只是把这些直觉变成了精确的数学表达。后面更新带有公式版本的。希望可以讲的明白一些。让大家感受到这三个物理量的厉害。