
原标题:二维变换及其微分的直观图像。

这是“多元函数及其微分的直观图像”系列的第二期,上一期谈到了二元函数的微分,如果你还没有看,可以点这里。
本期会讲到由两个二元函数组成的向量函数的可视化以及它的微分的直观图像。不过在此之前我们要搞清楚我们所在的多元函数微积分学的方位。
在多元函数中,自变量和因变量都可以不仅仅是一个数,它们也可以是向量(或者就是数组)。向量中分量的个数就是向量的维数。从某一维度的向量到另一维度的向量的映射,我们把它统称为向量函数。(y=f(x),x和y都是向量)我不知道如何用比较简单的方法从映射维度上命名这些向量函数。从m维到n维的映射应该叫什么函数(要反映出m和n这两个参数)?不妨就叫做m元n维向量函数吧(大误)。不过,好在我们目前要讨论的向量函数都是有名字的,就像下面的列表。

一元函数:非常简单,不用解释。(你说非常简单?待会放学别走)
n维曲线:实际上就是参数曲线,代表空间中的一条曲线(或轨迹)。输入一个数,输出一个向量。不过我们的高数书把这个划到了一元函数的范畴,这明明就是多元函数啊!(误)
n维曲面:实际上就是参数曲面,代表空间中的一个曲面。曲面上的几何是非欧几何。
n维变换:将空间中的点按一定的规则移动到另一个点。做积分的时候最摸不着头脑的就是变量替换,把一个变量变成另外一个变量(在多元函数里就是坐标变换,直角坐标转极坐标之类的)。
标量场:输出是一个数的函数,通常叫做多元函数。温度场、压力场、密度场等都是标量场。
矢量场:每个空间点上都有一个同等维度的向量对应的函数。速度场、电磁场、力场等就是矢量场。
降维打击?把三维变成二维的函数叫作二向箔(超级大误)。不过这样的函数还是有一定的例子的。比如,在显示屏上显示三维的物体、三维物体投影在平面上,就需要一个从三维映射到二维的函数。
所以说要讨论完所有的多元函数是需要很大的篇幅的。在这一期,我们只讨论输入和输出都是二维的函数,也就是二元二维向量函数。根据刚才的表格,我们有两种眼光看待二元二维向量函数。一是把它看成二维变换(后面简称变换),二是把它看成二维矢量场(后面简称矢量场)

平面中的一个点(x,y)通过函数映射到新的位置(x',y')就是二维变换。通常用两个二元函数来表示:

(x',y')和(x,y)没说一定是在同一个平面上,它们也可以存在于不同的平面上:(劣质画图预警)

图中在坐标系xOy里的蓝点映射到了在坐标系x'Oy'里的红点。
不过,画一个坐标系肯定比画两个坐标系方便,在通常的情况下为了方便,我会让两个坐标系重合在一起。无论你认为是一个平面映射到自身,还是一个平面映射到了另一个平面,你一定要搞清楚哪个点是映射前的(原象),哪个点是映射后的(象)。(这一点很重要!)

图中的蓝点是input,红点是output。
上面这个图只能看到一个点被映射到了哪儿,只能看到变换的一小部分,并不能一窥全貌。我要是能一眼看见所有的点都变换到了哪儿该多好。

很简单,先给一张变换前的图像,图上每一点根据函数对应到另一点,从而得到变换后的图像。就像下面这个滑稽一样。变换前是这样:

变换后变成了这样:

函数表达式是这个:(x,y)→(x+a*sin(0.5 x+y+t),y+a*cos(0.2 x y+0.7+t))。a是多少我已经忘了(0.5左右),反正调成了一个比较好看的效果。表达式里有个t,取不同的t就有不同的变换,造成一种动画的效果。
当然比较正经的我们还是都喜欢用坐标网格来进行变换。把变换前的图像用规则的栅格代替,通过变化后的栅格来感觉变换。当然,最好在变换后的图像上标出变换前的网格线标签。比如下图(自我检讨),如果左边的x=1这条线被映射成了右边的一个单位圆,就应该在那个单位圆上标一个x=1,表示原来的"x=1"被映射到了“这儿”。不标记的话就不知道是哪个对应哪个了。

左图的坐标系为rOθ,右图的坐标系为xOy。再次强调一下,左图是变换前的网格,坐标为(r,θ);右图是变换后的网格,坐标为(x,y)。所以说刚才举的x=1映射成单位圆的例子里的x应该是r,r=1映射成了单位圆。这相当于在直角坐标系里看极坐标网格变换后的图像。千万不要以为这是直角坐标转极坐标的变换!
极坐标转直角坐标的变换。表达式


那真正的直角坐标转极坐标变换应该是怎样的呢?换句话说,在直角坐标(xOy)里画上规则的栅格,在极坐标(rOθ)下的形状会是怎样的?

变换成极坐标后,横坐标是极径r(范围从0到∞),纵坐标是角度θ(范围从-π到π)。
事实上这样的变换的表达式为(正好是刚才的逆变换):

arg(z)表示复数z的辐角。本来想写成arctan(y/x),但是这样只能返回1、4象限的角度。为了能返回正确的角度,索性用这个狡猾的方法。
来一张静止的图仔细的观察一下它的构造。

横轴是r(范围0到∞),纵轴是θ(范围0到2π)。图中扭曲的网格线是原本在xOy坐标系里的网格线变换到这里来的。原来的x=0(y轴)撕裂成了θ=π/2和θ=3π/2两条射线。而原来的y=1这条线变成了横躺着的余割函数曲线。从图中可以看出(从左往右看)网格的横向宽度几乎没有发生变化,纵向宽度在逐渐缩短,导致网格越压越扁。后面我们会讲到如何描述这种现象。
接下来是一个复变函数中的变换w=z²,也就是复数的平方变换。

函数表达式为(x,y)→(x²-y²,2xy)。可以看到坐标网格线全部变成了抛物线,神奇的是格点处的两条网格线在变换后仍然是互相垂直的。而且,虽然每个栅格都有一定的扭曲,但都还是大致保持着方块的形状,没有像上一个变换那样,格子压得特别扁。
接下来是一个看起来很简单的变换。所有的网格都被均匀的拉伸,方方正正,非常整齐。所有的网格线变换后还是直线而且还是等距排布。事实上,所有的直线变换后仍然是直线。在直线上均匀布点,变换后的点的分布仍然是均匀的。

函数表达式为(x,y)→(0.3x+y,x-0.6y)。表达式也很简洁,只是x和y的一次式的和。
(突然中二)这个变换似乎能引起一场巨大的讨论,并有可能占领整篇文章。看似不起眼的变换,却隐藏着巨大的奥秘,并折磨着广大初学者。它就是——线性变换。

上面这个变换有一个很好的性质。如果用y=T(x)表示向量x变换到了向量y,那么T(ax+by)=aT(x)+bT(y),其中a,b是数,x,y是向量(或者向量所对应的点)。满足这样的变换叫作线性变换。
所有的二维线性变换会有怎样的表达式呢?平面上的向量都可以用基向量线性表示。也就是说,向量(x,y)=xi+yj(i是水平向右的单位向量,j是竖直向上的单位向量)。根据线性变换满足的性质,T(xi+yj)=xT(i)+yT(j)。那么,对于一个线性变换,我们只要知道i,j变换到哪里,就知道其它点变到哪里了。

图中i变到了i'=(0.9,0.6),j变到了j'=(0.7,-0.7)。那么变换前的任何一个点xi+yj将会变换到xi'+yj'。

i',j'这两个列向量并排在一起就组成了一个2×2的矩阵,用来代表上面这个变换。这就是矩阵的几何意义。
如果你有兴趣的话,你还可以算一算一个单位正方形在变换后的面积,算完之后你会发现它就是行列式的值!(你算一下就知道了)这就是行列式的几何意义。当然,行列式有可能是负的,那是因为图像发生了翻转,就像上面的动图那样。
想看更多关于线性代数直观性的图像可以参考3Blue1Brown的精彩视频:
有了上面的准备工作,我们就可以顺利的进行下一步了。

当我们放大变换后的网格,不出所料地,我们看到了熟悉的图像。把网格线不断加密,每一个格子都变得很小很小,而形状逐渐逼近平行四边形。我们在微观下看到了线性变换的模样。

高清无码,硬核放大。变换的表达式(x',y')=(x+0.8cosy,y+0.8sinx)。把网格放大做成动画比较麻烦,因为你要不断地把网格加密。这里就将就用一张静止的图来代表了。
可微的几何意义就是微观线性,在微观上表现出线性变换的样子。既然在微观上是线性的,那么变换前(x,y)的微小变化(dx,dy)与变换后(x',y')的微小变化(dx',dy')之间的关系应该是线性的,也就是

其中矩阵[J]为雅克比矩阵。
雅克比矩阵描述了在这一点局部的变换最接近哪个线性变换。

对应到图上说就是,雅克比矩阵告诉你在点out附近的网格最接近哪种平行四边形。(至于为什么图中的雅克比矩阵的对角线总是1,只是因为用来举例的这个函数算出来凑巧这样罢了)


让我们聚焦在某一个点的局部。这个点是(x,y)=(-0.26,-0.44),此时的(x',y')=(-0.60,0.33)。在这附近的网格图像如下图所示。(再次强调变换前是(x,y),变换后是(x',y')。)图中的d表示对应量的相对值(比如dx=x-(-0.26),dy=y-(-0.44))。

当x增加0.02而y不变(即dx=0.02,dy=0)时,象从点O移动到点i,象发生了移动就表明x'和y'发生了变化(即产生了dx',dy'),变化的多少跟dx的大小成正比。将i的坐标除以dx就得到了[J]的第一列。

实际上,这里的d是△的意思,应该换成△,不然感觉式子特别奇怪。(用d用习惯了,再说,△也不好打出来呀,乖巧.jpg)
同样的道理,当dx=0,dy=0.02时,象从点O移动到点j,点j的坐标也跟dy成正比,两者做比就得到了[J]的第二列。这就是雅克比矩阵列向量的几何意义。
不要走开,下面还有。
声明:这篇文章是我的微信公众号unidentified2016里的原创文章,顺便在B站unidentified2015 (uid:8574629)同步一篇让更多人看到。创作不易严禁盗发!
版权所有,盗发必究!
本文采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。https://creativecommons.org/licenses/by-nc-sa/4.0/

求一块铁片的质量,如果铁片的密度是不均匀的,那么就需要用到二重积分。把平面划分成许多很小的面积微元dA,用面积微元乘以此处的密度再求和就是二重积分。就跟一重积分一样,长度微元dx乘以f(x)再求和。
我们都知道一元函数积分的换元法是

换元的时候我们把dx换成了x'(ξ)dξ。要这么换的原因是因为在一维变换下x移动一小段距离dx,这一小段在ξ的坐标系下就不是dx这么长了。转换坐标系时,微元发生了长度上的伸缩。(关于一维变换及其导数在上一期略有提到,请自行查阅)要把这一伸缩考虑上就应该这么算。
那么对于二重积分,如果要进行换元求积分你应该这样:

关于x,y的积分转到关与ξ,η的积分的公式。其中|det[J]|表示ξOη坐标系转xOy坐标系的雅克比矩阵行列式的绝对值。(其实讲道理这没有必要加绝对值啊,你看一元函数那个就没有加绝对值)
同样地对于二重积分,由于坐标变换,微元的面积同样发生了变化,而根据行列式的几何意义,变化的比例就是雅克比行列式。

这个扇形的区域,转成极坐标后就变成矩形了。同时网格(想成微元)的面积也发生了变化。我们都会算,极坐标转直角坐标的雅克比行列式为r。也就是说极坐标下坐标为(r,θ)的网格,变换到直角坐标后,网格面积会变成原来的r倍。所以说在极坐标下的微元面积drdθ要乘以r才能等于直角坐标下对应位置的微元面积dxdy。

有一种变换它看起来很和谐(保角性,伸缩率不变性),它就是保形映射。因为它在微观下保持形状不发生变化(只发生旋转和等比放缩)。这时候的雅克比矩阵的元素满足主对角元素相同,次对角元素互为相反数。它可以写成一个旋转矩阵的数乘。

在微观下,变换只发生旋转和等比缩放。变换前是正方形,变换后还是正方形;变换前是个圆,变换后还是个圆。
下图是w=1/z,也就是复数倒数的变换。它就是一个保形映射。

可以看到,变换后的网格都尽量保持正方形的形状(网格不够密看不太出来)。网格交点处的两条线都是互相垂直的。

本期内容已经很长了。这部分只能留到下期再说了。本期所有的图片全是我自己做的,简直就是一个巨大的工程啊。多元微积分还有很多有趣的内容,希望大家敬请期待。看到这里的都是真爱粉,希望大家多多捧场,非常感谢。