跳到正文
格致开物MATHWIKI

线性化与雅可比矩阵

线性化(linearization)用某一点附近的一次变化近似原来的非线性关系。一个变量的导数给出切线斜率;多个输入、多个输出同时变化时,各个偏导数排成的雅可比矩阵(Jacobian matrix)把输入的小扰动映为输出的一次变化。在动力系统中,它能帮助判断平衡附近的运动,同时也有明确的失效边界。

考虑两个经过无量纲化的反馈读数 x,y,目标为 (1,2)。令偏差 u=x1,v=y2,用下面的合成规则描述小范围调节:

u=2u+vu2,v=u2v.

自身偏差引起负反馈,另一个读数带来耦合;第一条还包含二次修正。这里的参数是教学设定,不表示某类真实设备已经遵循此规律。我们要回答:两个读数都接近目标时,是怎样共同回到目标的?忽略二次项究竟忽略了多少?

从两个方向的扰动建立矩阵

先在 (u,v)=(0,0) 只改变 u。若把它改成很小的 h,变化率从 (0,0) 变成 (2hh2,h);除以 h 并令它趋于零,得到第一列 (2,1)𝖳。它回答“第一个状态变化一点,两个变化率各变多少”。

再只改变 v,变化率变成 (h,2h),得到第二列 (1,2)𝖳。于是一次近似为

(uv)(2112)(uv).

下图把列向量分别画出来,再相加。取 (u,v)=(0.1,0.2),第一列贡献 (0.2,0.1),第二列贡献 (0.2,0.4),相加为 (0,0.3)。原方程给出 (0.01,0.3),差异恰好是被忽略的 (u2,0)

矩阵第一列乘零点一得到负零点二、零点一,第二列乘零点二得到零点二、负零点四,首尾相接得到零、负零点三。
矩阵的每一列描述一种独立输入方向;共同扰动的一次影响由各列贡献相加。

注意矩阵输出的是变化率,并不是下一时刻的偏差。若要近似推进一小段时间 h,还需写成 z(t+h)z(t)+hAz(t),其中 z=(u,v)𝖳

雅可比矩阵的定义与余项

对可微函数 f:mk,第 i 个输出记为 fi,第 j 个输入记为 xj。雅可比矩阵在点 x 的第 (i,j) 个元素是

Jij(x)=fixj(x).

行对应输出,列对应输入,因此矩阵大小为 k×m。可微的精确含义是存在余项 R(h),使

f(x+h)=f(x)+J(x)h+R(h),R(h)h0(h0).

这不是说余项等于零,而是说扰动缩小时,余项比扰动本身更快缩小。若二阶导数在小邻域有界,通常还能估计 R(h)Ch2。只有偏导数存在不足以自动保证这样的多变量线性近似;连续偏导数是常用的充分条件。Lebl:Linearization, critical points, and equilibria

动力系统 x=f(x) 在平衡点满足 f(x)=0。令 z=xx,便有 z=J(x)z+R(z);去掉余项得到线性化系统 z=Az。在不是平衡的位置展开时,常数项一般不为零,不能删掉后仍声称是在研究原点平衡。

具体算出快慢两个方向

本例的一般雅可比矩阵为

J(u,v)=(22u112),A=J(0,0)=(2112).

寻找经矩阵作用只改变长度、不改变直线方向的向量,就是求特征向量。先解

det(AλI)=(2λ)21=(λ+1)(λ+3)=0.

得到 λ1=1λ2=3。直接乘法核验

A(11)=(11),A(11)=3(11).

所以同向偏差 (1,1)et 衰减,反向偏差 (1,1)e3t 衰减,后者更快。初值 z(0)=(0.3,0.1) 分解为

(0.30.1)=0.2(11)+0.1(11).

因此线性化的精确解为

uL(t)=0.2et+0.1e3t,vL(t)=0.2et0.1e3t.

t=1 时,约为 (0.07855,0.06860)。图中早期反向模式仍有可见贡献,后来主要剩下沿 u=v 的较慢模式。这里“精确”只指线性化方程的解,不是原非线性方程的精确解。

同向模式幅度零点二乘指数负t与反向模式零点一乘指数负三t随时间衰减,后者更快;绿色虚线为两模式相加得到的线性近似u。
把耦合变量拆成特征方向,可以看出相同系统里不同的时间尺度。

近似误差怎样随邻域缩小

本例不必借助抽象定理才能写出余项:R(u,v)=(u2,0),所以

R(u,v)=u2u2+v2=z2.

在半径 ε 的邻域内,有 R(z)εz。把邻域半径缩小十倍,一阶相对误差的这个上界也缩小十倍。

具体地,z=(0.4,0.2) 时线性变化率为 (0.6,0),原变化率为 (0.76,0),两者差 0.16;缩小为 (0.04,0.02) 后,差变为 0.0016,而线性变化率大小为 0.06。余项缩小一百倍,一次项只缩小十倍。

下图以相同初始方向画出原方程的数值轨迹与线性化解析轨迹,并把不同初始幅度的纵轴按幅度归一。这样比较的是形状误差;若只把小轨迹画得更小,肉眼更难看出是否真的改善。原方程用四阶 Runge–Kutta 法计算,并用步长减半核对图中精度。

初始偏差幅度零点四和零点零四时,非线性轨迹与线性化轨迹按初始幅度归一后比较,小幅度下两条轨迹更接近。
线性化改善的是小邻域中的近似;两幅图使用相同的归一化坐标。

一次变化率近似不等于任意长时间都具有同样小的解误差。误差还会沿动力系统积累或放大;离开所研究邻域后,原先的估计也不能继续套用。

从线性化判断原系统稳定,需要哪些条件

f 在平衡附近连续可微,且 A=J(x) 的所有特征值实部严格为负,那么原非线性平衡局部渐近稳定;若有特征值实部严格为正,则不稳定。本例特征值 −1、−3 都为负,因此原点局部渐近稳定。

本例还可以直接给出一个局部证明,说明二次项没有偷偷改变结论。令 V=(u2+v2)/2,沿原系统求导:

V=2u2+2uv2v2u3.

2uvu2+v2,以及 |u|1/2|u|3u2/2,得到

V12u2v2V.

若初始距离小于 1/2,则 V 在这个球内下降,解不会从边界逃出去;于是估计可以一直使用,V(t)V(0)et。这给出了局部吸引与稳定的独立核对。Tedrake:局部 Lyapunov 分析

“局部”不可省略:本例完整多项式系统还有平衡 (u,v)=(1.5,0.75)。在该处雅可比行列式为 −3,两个特征值异号,是鞍点。只在原点算一次矩阵,无法据此宣称整个平面都会流向原点。

零实部与离散迭代的边界

若所有特征值实部非正但至少一个为零,线性化可能遗漏决定性的项。最简单的对照是 x=x3x=x3:零处雅可比都是零,前者渐近稳定,后者不稳定。平面中纯虚特征值也不自动意味着原系统有闭轨道;中心、向内螺旋和向外螺旋可以具有同一线性部分,须分析高阶项或其他不变量。Lebl:不能由线性化判定的中心情形

对离散系统 xn+1=F(xn),同样减去不动点并展开,得到 en+1=DF(x)en+R(en)。判据改成特征值模小于一,而不是实部为负。若对本例线性系统用欧拉法,更新矩阵为 I+hA,其两个特征值为 1h13h。要求二者模都小于一,得到 0<h<2/3。因此连续系统稳定并不能替代数值步长的稳定性检查。

参考资料与继续阅读