矩阵的特征值,在马尔科夫链中应用非常广泛。什么是马尔科夫链呢?马尔科夫链是一个概率矩阵。所谓的概率矩阵是有N个概率向量组成的。举个例子,假如有一个移民模型
| 目的地 | 北京 | 上海 |
|---|---|---|
| 北京 | 0.4 | |
| 上海 | 0.3 |
这个矩阵代表由北京移民到上海的概率为0.3,有上海移民到北京的概率为0.4。
那么设初始北京有1000万人,上海有1200万人。
第一次移民后北京的人口为留在北京的1000×0.71000\times0.71000×0.7 +上海移民过来的$ 1000 \times0.4$
第一次移民后上海的人口为留在上海的1000×0.31000\times0.31000×0.3 +北京移民过来的 1200×0.61200\times0.61200×0.6
这其实就是矩阵乘以向量嘛。
(0.70.40.30.6)×(10001200)\begin{pmatrix} 0.7 &0.4 \\ 0.3 &0.6 \end{pmatrix}\times\begin{pmatrix}1000\\1200\end{pmatrix} (0.70.30.40.6)×(10001200)
那么概率矩阵为:
(0.70.40.30.6)\begin{pmatrix} 0.7 &0.4 \\ 0.3 &0.6 \end{pmatrix} (0.70.30.40.6)
因为概率的总和是1,所以概率矩阵的每个概率向量,向量里的数字加起来和为1。初始向量为:
(10001200)\begin{pmatrix}1000\\1200\end{pmatrix} (10001200)
我们可以用python代码试验这个过程。
from com.youngthing.mathalgorithm.matrix import Matrixif __name__ == '__main__':probability = Matrix([[0.7, 0.4], [0.3, 0.6]])vector = Matrix([[1000], [1200]])for i in range(1, 100):vector = probability * vectorprint(i, "vector=", vector.lines[0][0], vector.lines[1][0])print("vector=", vector)
在第i=29时,这个向量不再变化,也就是说北京和上海的人口不再变化。python运行结果如下:
29 vector= 1257.1428571428564 942.8571428571427
30 vector= 1257.1428571428564 942.8571428571424
31 vector= 1257.1428571428564 942.8571428571424
这个向量叫做马可夫链的稳态向量。
那么稳态向量怎么求呢?如果用上面的循环代码求,那也太蠢了。
稳态向量的求法是用公式:
Ap=pAp−p=0(A−I)p=0Ap=p\\ Ap-p=0\\ (A-I)p=0 Ap=pAp−p=0(A−I)p=0
所以解(A−I)p=0(A-I)p=0(A−I)p=0这个方程就可以了
但是因为稳态向量有多个,所以最好取一个总和为1的向量。所以python代码如下:
def steady_state_vector(self):# 首先构造矩阵A-Isize = len(self.__lines)unit_matrix = Matrix(self.unit_matrix(size))# A - I = 0final_matrix = (self - unit_matrix).append(Matrix([[0] for _ in self.__lines]))# 最后概率总和=1# 不要第一行final_matrix.__lines[0] = [1 for _ in final_matrix.lines[0]]print(final_matrix)return final_matrix.gaussian_reduction()
这里新加了矩阵的减法:
def __sub__(self, other):return Matrix([[e - other.__lines[y][x] for x, e in enumerate(line)] for y, line in enumerate(self.__lines)])
特征值与特征向量和马尔科夫链的稳态向量概念相似。特征值是这样定义的:
对于矩阵A和一个非零向量v,如果有:
Av=λvAv=\lambda v Av=λv
那么λ\lambdaλ就是A的特征值,v就是A的特征向量。和马尔科夫链的稳态向量对比一下:
Ap=pAp=p Ap=p
可见马尔可夫链的稳态向量就是特征值λ=1\lambda=1λ=1的特殊场景而已。特征向量有无穷多个,但是特征值的个数是有限的。从特征值的几何意义就是,矩阵不过是把某些向量给延长(或缩短)了而已。
求特征值的通用方法,就是大学课本教给我们的方法。
Av−λv=0(A−λI)v=0det(A−λI)=0Av-\lambda v=0\\ (A-\lambda I)v=0\\ det(A-\lambda I)=0 Av−λv=0(A−λI)v=0det(A−λI)=0
但是为了避免首项的系数是负数,要把det(A−λI)=0det(A-\lambda I)=0det(A−λI)=0换成det(λI−A)=0det(\lambda I-A)=0det(λI−A)=0。
对det(λI−A)=0det(\lambda I-A)=0det(λI−A)=0的计算,会得到一个多项式方程,这个多项式方程就叫做特征方程。举个例子:
A=(21−112−1−1−12)λI−A=(λ−21−11λ−2−1−1−1λ−2)det(λI−A)=λ3−6λ2+9λ−4=(λ−1)2(λ−4)=0λ1=λ2=1,λ3=4A=\begin{pmatrix} 2& 1& -1\\ 1& 2& -1\\ -1& -1& 2 \end{pmatrix}\\ \lambda I-A=\begin{pmatrix} \lambda-2& 1& -1\\ 1& \lambda-2& -1\\ -1& -1& \lambda-2 \end{pmatrix}\\ det(\lambda I-A)=\lambda^3 - 6\lambda^2 + 9\lambda - 4\\ =(\lambda-1)^2(\lambda-4)=0\\ \lambda_1=\lambda_2=1,\lambda_3=4 A=⎝⎛21−112−1−1−12⎠⎞λI−A=⎝⎛λ−21−11λ−2−1−1−1λ−2⎠⎞det(λI−A)=λ3−6λ2+9λ−4=(λ−1)2(λ−4)=0λ1=λ2=1,λ3=4
在上面的例子中λ3−6λ2+9λ−4=0\lambda^3 - 6\lambda^2 + 9\lambda - 4=0λ3−6λ2+9λ−4=0就是矩阵的特征方程。
前面说过矩阵不过是把自己的特征向量给延长或缩短了,为了求特征值和特征向量,我们有以下的方程:
(A−λI)v=0(A-\lambda I)v=0 (A−λI)v=0
把某个特征值代进去,得到的A−λIA-\lambda IA−λI是一个矩阵,这个矩阵会把对应的特征向量变成0向量。这群向量构成了一个空间,这个空间就叫做特征空间。
可以举个例子:
A=(2.01.0−1.01.02.0−1.0−1.0−1.02.0)A−λI=(1.01.0−1.01.01.0−1.0−1.0−1.01.0)A=\begin{pmatrix} 2.0 & 1.0 & -1.0\\ 1.0 & 2.0 & -1.0\\ -1.0 & -1.0 & 2.0 \end{pmatrix}\\ A-\lambda I=\begin{pmatrix} 1.0 & 1.0 & -1.0\\ 1.0 & 1.0 & -1.0\\ -1.0 & -1.0 & 1.0 \end{pmatrix}\\ A=⎝⎛2.01.0−1.01.02.0−1.0−1.0−1.02.0⎠⎞A−λI=⎝⎛1.01.0−1.01.01.0−1.0−1.0−1.01.0⎠⎞
然后我们根据定义解下齐次线性方程组就可以了。
(1.01.0−1.01.01.0−1.0−1.0−1.01.0)∼(1.01.0−1.00.00.00.00.00.00.0)∴v=k1(101)+k2(011)\begin{pmatrix} 1.0 & 1.0 & -1.0\\ 1.0 & 1.0 & -1.0\\ -1.0 & -1.0 & 1.0 \end{pmatrix} \sim \begin{pmatrix} 1.0 & 1.0 & -1.0\\ 0.0 & 0.0 & 0.0\\ 0.0 & 0.0 & 0.0 \end{pmatrix}\\ \therefore v=k_1\begin{pmatrix}1\\0\\1\end{pmatrix}+k_2\begin{pmatrix}0\\1\\1\end{pmatrix} ⎝⎛1.01.0−1.01.01.0−1.0−1.0−1.01.0⎠⎞∼⎝⎛1.00.00.01.00.00.0−1.00.00.0⎠⎞∴v=k1⎝⎛101⎠⎞+k2⎝⎛011⎠⎞
所以这个特征空间的两个基就求出来了。我们再试一下下一个特征值4:
A=(2.01.0−1.01.02.0−1.0−1.0−1.02.0)A−λI=(−2.01.0−1.01.0−2.0−1.0−1.0−1.0−2.0)A=\begin{pmatrix} 2.0 & 1.0 & -1.0\\ 1.0 & 2.0 & -1.0\\ -1.0 & -1.0 & 2.0 \end{pmatrix}\\ A-\lambda I=\begin{pmatrix} -2.0 & 1.0 & -1.0\\ 1.0 & -2.0 & -1.0\\ -1.0 & -1.0 & -2.0 \end{pmatrix}\\ A=⎝⎛2.01.0−1.01.02.0−1.0−1.0−1.02.0⎠⎞A−λI=⎝⎛−2.01.0−1.01.0−2.0−1.0−1.0−1.0−2.0⎠⎞
同样,解一下这个齐次方程组:
(−2.01.0−1.01.0−2.0−1.0−1.0−1.0−2.0)∼(−2.01.0−1.00.01.01.00.00.00.0)∴v=k(011)\begin{pmatrix} -2.0 & 1.0 & -1.0\\ 1.0 & -2.0 & -1.0\\ -1.0 & -1.0 & -2.0 \end{pmatrix} \sim \begin{pmatrix} -2.0 & 1.0 & -1.0\\ 0.0 & 1.0 & 1.0\\ 0.0 & 0.0 & 0.0 \end{pmatrix}\\ \therefore v=k\begin{pmatrix}0\\1\\1\end{pmatrix} ⎝⎛−2.01.0−1.01.0−2.0−1.0−1.0−1.0−2.0⎠⎞∼⎝⎛−2.00.00.01.01.00.0−1.01.00.0⎠⎞∴v=k⎝⎛011⎠⎞
这样两个特征值的特征空间就求出来了。
有了特征向量和特征向量构成的特征空间,我们知道A−λIA-\lambda IA−λI可以把特征空间里的向量变成0。我们再想想,(A−λI)2(A-\lambda I)^2(A−λI)2能不能把某个向量变成0呢?三次方呢?四次方呢?有了方向,数学家们就开始思考了,于是有了广义特征向量的定义:
(A−λI)jv=0(A-\lambda I)^jv=0 (A−λI)jv=0
公式中v被成为广义特征向量generalized eigenvector,对于某个固定的v,上述公式中的jjj的最小值是广义特征向量的下标index。毫无疑问,特征向量本身是一个j=1的广义特征向量。我们举个例子:
A=(211−2−1−2112)λ=1A= \begin{pmatrix} 2 & 1 & 1\\ -2 & -1 & -2\\ 1 & 1 & 2 \end{pmatrix}\\ \lambda=1 A=⎝⎛2−211−111−22⎠⎞λ=1
以λ1=2\lambda_1=2λ1=2为例子,求它的特征方程:
A−I=(111−2−2−2111)∼(111000000)v=k1(−110)+k2(−101)(A−I)2=(000000000)v=k1(100)+k2(010)+k3(001)A-I= \begin{pmatrix} 1 & 1 & 1\\ -2 & -2 & -2\\ 1 & 1 & 1 \end{pmatrix} \sim \begin{pmatrix} 1 & 1 & 1\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}\\ v=k_1\begin{pmatrix}-1\\1\\0\end{pmatrix}+k_2\begin{pmatrix}-1\\0\\1\end{pmatrix}\\ (A-I)^2= \begin{pmatrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{pmatrix}\\ v=k_1\begin{pmatrix}1\\0\\0\end{pmatrix}+k_2\begin{pmatrix}0\\1\\0\end{pmatrix}+k_3\begin{pmatrix}0\\0\\1\end{pmatrix}\\ A−I=⎝⎛1−211−211−21⎠⎞∼⎝⎛100100100⎠⎞v=k1⎝⎛−110⎠⎞+k2⎝⎛−101⎠⎞(A−I)2=⎝⎛000000000⎠⎞v=k1⎝⎛100⎠⎞+k2⎝⎛010⎠⎞+k3⎝⎛001⎠⎞
所以j到2时,再乘什么都是0矩阵了,广义特征向量就是任意向量,再乘方就没意义了。
对于上述的规律,我们总在j增大到一定程度后,广义特征向量所在的空间是不会增大的。所以对某个特定的特征值定义了以下空间:
Ej(λ)={v∣(A−λI)jv=0}E_j(\lambda)=\{v|(A-\lambda I)^jv=0\} Ej(λ)={v∣(A−λI)jv=0}
当jjj无穷大时定义的空间E∞(λ)E_\infty(\lambda)E∞(λ),被称为广义特征空间generalized eigenspace。但是也不要看到无穷就悲观,因为前面我们说了当j到一定程度时,Ej(λ)E_j(\lambda)Ej(λ)空间不再扩大,这个时候就等于广义特征空间,这时候的jjj被称为广义特征向量最大下标maximum index of
a generalized eigenvector of A associated to λ,数学符号为max−ind(λ)max-ind(\lambda)max−ind(λ)。实际上max−ind(λ)max-ind(\lambda)max−ind(λ)等于该特征值最大约当块的行数。
上一篇:oppo手机如何强行开机
下一篇:全国农机展会2021年