矩阵的特征值和特征向量于动态系统

特征值和特征向量

对于特征值或者特征向量,很多人的记忆都停留在:

A\xi =\lambda \xi

A是一个矩阵,\xi是一个特征向量,\lambda是一个特征值。或者熟悉MATLAB的同学会(AT=TD):

>>[T, D] = eig(A)

T和D都是矩阵,T的列向量是A的特征向量,D是对角矩阵且是A的对应特征向量的特征值。那么寻找特征向量的意义又是什么呢?

我们先从下面的短视频来直观的感受一下特征向量和特征值:

线性变换时的特征向量

我们有矩阵A:

A=\begin{bmatrix} 3 & 1\\ 0 & 2 \end{bmatrix}

通过MATLAB,我们可以计算出:

>>[T D] = eig([3 1; 0 2])

T =

    1.0000   -0.7071
         0    0.7071


D =

     3     0
     0     2

视频中,我标出了3个向量:

\left\{\begin{matrix} \xi_1= (+1.0000,0.0000)\\ \xi_2 = (-0.7071,0.7071)\\ v= (+0.7071,0.7071) \end{matrix}\right.

可以看出,虽然经过了线性变换,\xi _1 和 \xi _2(A的特征向量)依然停留在之前方向,而 v 却偏离了之前的方向。这就是特征向量的含义。那特征值呢?视频中不难看出,虽然 \xi _1 和 \xi _2 停留在之前方向,但是他们的长度却被分别放大了3倍和2倍。这就是特征值的含义。

那它们存在的意义呢?我们探讨的是工程数学,所以我们当然是考虑计算量。

假设现在有个向量:

X=\begin{bmatrix} x_1\\ x_2 \end{bmatrix}

如果我们需要计算A^{100}X,计算的过程会很繁琐:

\underbrace{\begin{bmatrix} 3 & 1\\ 0 & 2 \end{bmatrix}\begin{bmatrix} 3 & 1\\ 0 & 2 \end{bmatrix}\cdots \begin{bmatrix} 3 & 1\\ 0 & 2 \end{bmatrix}}_\textrm{100 times} X

但是,如果我们根据AT=TD,可以将A改写成A=TDT^{-1},所以上面的计算可以变为:

\underbrace{TDT^{-1}TDT^{-1}\cdots TDT^{-1}}_\textrm{100 times} X

T^{-1}T=I,上面的计算又可以写成:

TD^{100}T^{-1}X

D^{100}=\begin{bmatrix} 3^{100} & 0\\ 0 & 2^{100} \end{bmatrix}

将这些代入的A^{100}X,计算会简单太多。那么,计算 A^{100}X 又有什么意义呢?请继续往下看。

动态系统的解以及稳定性

生活中方方面面遇到的几乎都是动态的系统,比方说人口的增长,汽车的行驶,倒立摆等等。当提到动态系统的时候,我们需要很自然地想到微分方程来表示这样的动态系统,比方说人口增长:

\frac{dN}{dt}=\alpha N,

或者

\dot{N}=\alpha N.

表示增长率(动态系统的变化)和人口基数相关。而且我们需要很快就反应过来,它的解是:

N(t)=e^{\alpha t}\cdot N_0

N_0 表示时间t_0 时刻的状态值,或者初始状态。所以当\alpha大于零的时候,人口会一直增长,这样的系统就不稳定(当然,人口的增长除了和基数有关,也受其它条件限制,不会无尽地增长)。而当\alpha小于零的时候,人口会逐渐降低,直至消失,也就是会趋向于稳定。

刚刚所描述的动态系统,只有一个状态。如果有更多的状态呢?现代控制理论会用State Space Representation来描述一个系统(这里仅局限于线性时不变系统,且没有输入):

\dot{X}(t)=AX(t)

X是一个向量,描述系统的各个状态。回想刚刚人口增长动态系统的解,对于这个多状态的系统,我们很容易知道它的解是:

X(t)=e^{At}\cdot X(0)

对于e^{At},我们可以通过泰勒展开式进行求解:

e^{At}=I+At+\frac{A^2t^2}{2!}+\frac{A^3t^3}{3!}+\cdot \cdot \cdot

然而,如果我们根据AT=TD(即 T^{-1}AT=D),对X进行坐标变换:

\left\{\begin{matrix} X(t)=TZ(t)\\ \dot{X}(t)=T\dot{Z}(t) \end{matrix}\right.

\dot{X}(t)=AX(t),我们可以得到:

T\dot{Z}(t)=ATZ(t)

进而得到:

\dot{Z}(t)=T^{-1}ATZ(t)=DZ(t)

新的动态系统的解是:

Z(t)=e^{Dt}\cdot Z(0)= \begin{bmatrix} e^{\lambda _1t} & 0& 0& ...& 0\\ 0& e^{\lambda _2t} & 0& ...& 0\\ 0& 0& e^{\lambda _3t} & ...& 0\\ \vdots & \vdots& \vdots& \ddots & \vdots\\ 0& 0& 0& ...& e^{\lambda _nt} \end{bmatrix}\cdot Z(0)

或者,更直白点:

\left\{\begin{matrix} z_1(t)=e^{\lambda _1t}\cdot z_1(0)\\ z_2(t)=e^{\lambda _2t}\cdot z_2(0)\\ z_3(t)=e^{\lambda _3t}\cdot z_3(0)\\ ...\\ z_n(t)=e^{\lambda _nt}\cdot z_n(0)\\ \end{matrix}\right.

这里,我们可以很显然知道,如果有一个\lambda _i是大于零的,这个系统对应的状态就是不稳定的,也导致了整个系统的不稳定。所以,判断系统是否稳定,可以通过计算矩阵A的特征值来判断。

另一种分析思路是,根据 A=TDT^{-1},我们可以将e^{At}改写成:

\begin{split}
    e^{At}&=TT^{-1}+TDT^{-1}t+\frac{TDT^{-1}TDT^{-1}t^2}{2!}+\frac{TDT^{-1}TDT^{-1}TDT^{-1}t^3}{3!}+\cdot \cdot \cdot \\
    &=T[I+Dt+\frac{D^2t^2}{2!}+\frac{D^3t^3}{3!}+...]T^{-1}\\
    &=Te^{Dt}T^{-1}\\
\end{split}

所以,这个系统的解是:

X(t)=Te^{Dt}T^{-1}\cdot X(0)

对比不难发现,T^{-1}\cdot X(0) 正是 Z(0), e^{Dt}T^{-1}\cdot X(0) 正是 Z(t),而X(t)=TZ(t)

准确来说,\lambda _i可以是复数,而判断系统的稳定是看\lambda _i的实数部分,因为(令\lambda _i=a+ib):

e^{\lambda _it}=e^{at}\cdot [cos(bt)+isin(bt)]

括号内部被限定在单位圆内,真正影响系统的稳定是e^{at},所以,我们说,如果所有特征值的实数部分是负数,系统稳定。

举例

我们看下面这个系统:

\left[ \begin{array}{l}\dot{x_1}\\ \dot{x_2}\end{array} \right]=\left[ \begin{matrix}0&1\\ -1&-0.1\end{matrix} \right]\left[ \begin{array}{l}x_1\\ x_2\end{array} \right]

通过MATLAB,我们很容易计算出

>>eig([0 1; -1 -0.1])
ans =

  -0.0500 + 0.9987i
  -0.0500 - 0.9987i

所以系统是稳定的(特征值的虚数部分表示这个系统在稳定之前会摇摆,比方说倒立摆,它会左右摇摆慢慢停下来)。

那系统:

\left[ \begin{array}{l}\dot{x_1}\\ \dot{x_2}\end{array} \right]=\left[ \begin{matrix}0&1\\ 1&-0.1\end{matrix} \right]\left[ \begin{array}{l}x_1\\ x_2\end{array} \right]

通过MATLAB,我们很容易计算出

>>eig([0 1; 1 -0.1])
ans =

   -1.0512
    0.9512

所以这个系统是不稳定的。

对于不稳定的系统,我们该怎么办呢?开环控制?闭环控制?我将再写几篇关于控制理论的博文。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值