Skip to content

第二十四讲:马尔科夫矩阵、傅里叶级数

马尔科夫矩阵

马尔科夫矩阵(Markov matrix)是指具有以下两个特性的矩阵:

  1. 矩阵中的所有元素大于等于0;(因为马尔科夫矩阵与概率有关,而概率是非负的。)
  2. 每一列的元素之和为1

对于马尔科夫矩阵,我们关心幂运算过程中的稳态(steady state)。与上一讲不同,指数矩阵关系特征值是否为0,而幂运算要达到稳态需要特征值为1

根据上面两条性质,我们可以得出两个推论:

  1. 马尔科夫矩阵必有特征值为1
  2. 其他的特征值的绝对值皆小于1

使用第二十二讲中得到的公式进行幂运算uk=Aku0=SΛkS1u0=SΛkS1Sc=SΛkc=c1λ1kx1+c2λ2kx2++cnλnkxn,从这个公式很容易看出幂运算的稳态。比如我们取λ1=1,其他的特征值绝对值均小于1,于是在经过k次迭代,随着时间的推移,其他项都趋近于0,于是在k时,有稳态uk=c1x1,这也就是初始条件u0的第1个分量。

我们来证明第一个推论,取A=[0.10.010.30.20.990.30.700.4],则AI=[0.90.010.30.20.010.30.700.6]。观察AI易知其列向量中元素之和均为0,因为马尔科夫矩阵的性质就是各列向量元素之和为1,现在我们从每一列中减去了1,所以这是很自然的结果。而如果列向量中元素和为0,则矩阵的任意行都可以用“零减去其他行之和”表示出来,即该矩阵的行向量线性相关。

用以前学过的子空间的知识描述,当n阶方阵各列向量元素之和皆为1时,则有[111]在矩阵AI左零空间中,即(AI)T行向量线性相关。而A特征值1所对应的特征向量将在AI的零空间中,因为Ax=x(AI)x=0

另外,特征值具有这样一个性质:矩阵与其转置的特征值相同。因为我们在行列式一讲了解了性质10,矩阵与其转置的行列式相同,那么如果det(AλI)=0,则有det(AλI)T=0,根据矩阵转置的性质有det(ATλIT)=0,即det(ATλI)=0。这正是AT特征值的计算式。

然后计算特征值λ1=1所对应的特征向量,(AI)x1=0,得出x1=[0.6330.7],特征向量中的元素皆为正。

接下来介绍马尔科夫矩阵的应用,我们用麻省和加州这两个州的人口迁移为例:

[ucalumass]k+1[0.90.20.10.8][ucalumass]k,元素非负,列和为一。这个式子表示每年有10的人口从加州迁往麻省,同时有20的人口从麻省迁往加州。注意使用马尔科夫矩阵的前提条件是随着时间的推移,矩阵始终不变。

设初始情况[ucalumass]0=[01000],我们先来看第一次迁徙后人口的变化情况:[ucalumass]1=[0.90.20.10.8][01000]=[200800],随着时间的推移,会有越来越多的麻省人迁往加州,而同时又会有部分加州人迁往麻省。

计算特征值:我们知道马尔科夫矩阵的一个特征值为λ1=1,则另一个特征值可以直接从迹算出λ2=0.7

计算特征向量:带入λ1=1AI的零空间有[0.10.20.10.2],则x1=[21],此时我们已经可以得出无穷步后稳态下的结果了。u=c1[21]且人口总数始终为1000,则c1=10003,稳态时[ucalumass]=[2000310003]。注意到特征值为1的特征向量元素皆为正。

为了求每一步的结果,我们必须解出所有特征向量。带入λ2=0.7A0.7I的零空间有[0.20.20.10.1],则x2=[11]

通过u0解出c1,c2uk=c11k[21]+c20.7k[11],带入k=0u0=[01000]=c1[21]+c2[11],解出c1=10003,c2=20003

另外,有时人们更喜欢用行向量,此时将要使用行向量乘以矩阵,其行向量各分量之和为1

傅里叶级数

在介绍傅里叶级数(Fourier series)之前,先来回顾一下投影。

q1,q2,qn为一组标准正交基,则向量v在该标准正交基上的展开为v=x1q1+x2q2++xnqn,此时我们想要得到各系数xi的值。比如求x1的值,我们自然想要消掉除x1q1外的其他项,这时只需要等式两边同乘以q1T,因为的qi向量相互正交且长度为1,则qiTqj=0,qi2=1所以原式变为q1Tv=x1

写为矩阵形式有[q1 q2  qn][x1x2xn]=v,即Qx=v。所以有x=Q1v,而在第十七讲我们了解到标准正交基有QT=Q1,所以我们不需要计算逆矩阵可直接得出x=QTv。此时对于x的每一个分量有xi=qiTv

接下来介绍傅里叶级数。先写出傅里叶级数的展开式:

f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+

傅里叶发现,如同将向量v展开(投影)到向量空间的一组标准正交基中,在函数空间中,我们也可以做类似的展开。将函数f(x)投影在一系列相互正交的函数中。函数空间中的f(x)就是向量空间中的v;函数空间中的1,cosx,sinx,cos2x,sin2x,就是向量空间中的q1,q2,,qn;不同的是,函数空间是无限维的而我们以前接触到的向量空间通常是有限维的。

再来介绍何为“函数正交”。对于向量正交我们通常使用两向量内积(点乘)为零判断。我们知道对于向量v,w的内积为vTw=v1w1+v2w2++vnwn=0,也就是向量的每个分量之积再求和。而对于函数f(x)g(x)内积,同样的,我们需要计算两个函数的每个值之积而后求和,由于函数取值是连续的,所以函数内积为:

fTg=f(x)g(x)dx

在本例中,由于傅里叶级数使用正余弦函数,它们的周期都可以算作2π,所以本例的函数点积可以写作fTg=02πf(x)g(x)dx。我来检验一个内积02πsinxcosxdx=12sin2x|02π=0,其余的三角函数族正交性结果可以参考傅里叶级数的“希尔伯特空间的解读”一节。

最后我们来看cosx项的系数是多少(a0f(x)的平均值)。同向量空间中的情形一样,我们在等式两边同时做cosx的内积,原式变为02πf(x)cosxdx=a102πcos2xdx,因为正交性等式右边仅有cosx项不为零。进一步化简得a1π=02πf(x)cosxdxa1=1π02πf(x)cosxdx

于是,我们把函数f(x)展开到了函数空间的一组标准正交基上。

本站没有备案,因为不需要备案