• 线性代数学习笔记7-4:马尔可夫矩阵、矩阵幂的稳态问题


    马尔可夫矩阵Markov Matrix

    马尔可夫矩阵与概率的思想有关,马尔可夫矩阵满足

    • 每个元素 a i j ≥ 0 a_{ij}\geq 0 aij0
    • 每列元素的总和为1

    有时也定义马尔可夫矩阵的每行元素总和为1,两个情况不冲突:
    " 每列元素的总和为1"与"马尔可夫矩阵右乘列向量"配套
    " 每行元素的总和为1"与"行向量左乘马尔可夫矩阵"配套

    马尔可夫矩阵的性质:

    • 马尔可夫矩阵的幂(矩阵与自身相乘),仍为马尔可夫矩阵
      进一步考虑矩阵幂的稳态问题,稳态问题与特征值和特征向量问题紧密关联(在7-2说过,特征值 λ = 1 \lambda=1 λ=1对应的矩阵幂为稳态)
    • 马尔可夫矩阵必然有特征值 λ i = 1 \lambda_i=1 λi=1(对应项就是矩阵幂最终的稳态),且对应的特征向量 x i \boldsymbol x_i xi中所有元素非负(要注意的是, A \mathbf A A的特征向量在 ( A − λ I ) (\mathbf A-\lambda\mathbf I) (AλI)的零空间中,即特征向量为方程 ( A − λ I ) x = 0 (\mathbf A-\lambda\mathbf I)\boldsymbol x=0 (AλI)x=0的非零解)
      其余所有特征值 ∣ λ j ∣ ≤ 1 |\lambda_j|\leq1 λj1

    证明:马尔可夫矩阵必然有特征值 λ i = 1 \lambda_i=1 λi=1(对应的特征向量 x i \boldsymbol x_i xi的所有元素非负,证明略)
    只要证明 A − I \mathbf A-\mathbf I AI是奇异矩阵即可(对应于 d e t ( A − λ I ) = 0 , λ = 1 det(\mathbf A-\lambda\mathbf I)=0,\lambda=1 det(AλI)=0,λ=1,这保证了方程有非零解/ A \mathbf A A有特征向量)
    由于马尔可夫矩阵 A \mathbf A A每列元素的总和为1,故 A − I \mathbf A-\mathbf I AI每列元素总和为0,也就是说, A − I \mathbf A-\mathbf I AI的行向量相加等于就是0向量,因此行向量线性相关( ( A − I ) T x = 0 (\mathbf A-\mathbf I)^T\boldsymbol x=0 (AI)Tx=0有非零解 [ 1 1 . . . 1 ] T [1 \quad1\quad... \quad1]^T [11...1]T),矩阵为奇异矩阵,证毕

    7-2复习:矩阵的幂乘以向量 A k u 0 \boldsymbol{A}^k \mathbf{u}_{0} Aku0,可以简化表示为通式 A k u 0 = S Λ k S − 1 S c = S Λ k c = c 1 λ 1 k x 1 + c 2 λ 2 k x 2 + … + c n λ n k x n \boldsymbol{A}^k \mathbf{u}_{0}=\boldsymbol{S}\boldsymbol{\Lambda}^k\boldsymbol{S}^{-1}\boldsymbol{S} \mathbf{c}=\boldsymbol{S}\boldsymbol{\Lambda}^k\mathbf{c}=c_{1} \lambda_{1}^{k} \mathbf{x}_{1}+c_{2} \lambda_{2}^{k} \mathbf{x}_{2}+\ldots+c_{n} \lambda_{n}^{k} \mathbf{x}_{n} Aku0=SΛkS1Sc=SΛkc=c1λ1kx1+c2λ2kx2++cnλnkxn
    其中需要将 u 0 \mathbf{u}_{0} u0表示为特征向量的线性组合 u 0 = S c \mathbf{u}_{0}=\boldsymbol{S} \mathbf{c} u0=Sc,并且注意前提是需要一整套线性无关的特征向量/或者说特征向量矩阵 S \boldsymbol{S} S可逆(否则无法保证任意 u 0 \mathbf{u}_{0} u0都可以被拆解)
    关于矩阵的幂的“稳态”:特征值 ∣ λ i ∣ < 1 |\lambda_i|<1 λi<1的项最终会消失,特征值 ∣ λ i ∣ = 1 |\lambda_i|=1 λi=1的项恒定,特征值 ∣ λ i ∣ > 1 |\lambda_i|>1 λi>1的项最终不断增长

    • 由上推出,马尔可夫矩阵的幂,最终的稳态只会留下那些特征值 λ = 1 \lambda=1 λ=1对应的项,而其余 ∣ λ j ∣ ≤ 1 |\lambda_j|\leq1 λj1的项最终都会消失
      也就是说,特征值 λ i = 1 \lambda_i=1 λi=1及其对应的特征向量 x i \boldsymbol x_i xi已经给出了矩阵幂的最终稳态(并且,由于特征向量 x i \boldsymbol x_i xi的所有元素非负,若初始值为正,则最终的稳态也为正)

    应用:求解人口流动问题

    有两个城市,每年这两个城市各自有一定比例留下/迁移到另一个城市(概率总和为1)
    这个问题的特点是,人口总数是固定不变的,并且对于某个城市,留下或迁移的比例总和为1,因此可用马尔可夫矩阵来描述
    两个城市的人口用向量 [ u A u B ] \left[uAuB\right] [uAuB]表示,假如每年的变换情况为(假设每年的人口流动概率情况都相同) [ u A u B ] t = k + 1 = [ . 9 . 2 . 1 . 8 ] [ u A u B ] t = k \left[uAuB\right]_{t=k+1} =\left[.9.2.1.8\right]\left [uAuB\right]_{t=k} [uAuB]t=k+1=[.9.1.2.8][uAuB]t=k

    其中,结果的第一行 u A u_A uA来自于马尔可夫矩阵的第一行,表示 A A A城市有0.9的人口留下, B B B城市有0.2的人口迁移到 A A A城市,最终第二年 u A = . 9 u A + . 2 u B u_A=.9u_A+.2u_B uA=.9uA+.2uB

    若初态为 u 0 = [ 0 1000 ] u_0=\left[01000\right] u0=[01000],求第 k k k年两城市的人口分布情况

    • 马尔可夫矩阵的特征值和特征向量 λ 1 = 1 , x 1 = [ 2 1 ] \lambda_1=1,x_1=\left[
      21" role="presentation" style="text-align: center; position: relative;">21
      \right]
      λ1=1,x1=[21]
      , λ 2 = 0.7 , x 2 = [ 1 − 1 ] \lambda_2=0.7,x_2=\left[
      11" role="presentation" style="text-align: center; position: relative;">11
      \right]
      λ2=0.7,x2=[11]
    • 初态分解为特征向量的线性组合: u 0 = c 1 x 1 + c 2 x 2 ,其中 c 1 = 1000 / 3 , c 2 = 2000 / 3 u_0=c_1x_1+c_2x_2,其中c_1=1000/3,c_2=2000/3 u0=c1x1+c2x2,其中c1=1000/3,c2=2000/3
    • 通解为 u k = c 1 [ 2 1 ] + c 2 ( 0.7 ) k [ − 1 1 ] \mathbf{u}_{k}=c_{1}\left[
      21" role="presentation" style="text-align: center; position: relative;">21
      \right]+c_{2}(0.7)^{k}\left[
      11" role="presentation" style="text-align: center; position: relative;">11
      \right]
      uk=c1[21]+c2(0.7)k[11]
      ,当 k k k很大时第二项消失
      也就是说,最初每年人口总体上从 B B B A A A流动,但最终的人口分布趋于稳定,两城市分别有 1000 / 3 1000/3 1000/3 2000 / 3 2000/3 2000/3

    上面的例子验证了:

    • 马尔可夫矩阵必有特征值 λ = 1 \lambda=1 λ=1,并且 λ = 1 \lambda=1 λ=1对应的特征向量+初态就确定了矩阵幂最终的稳态
      其余特征值 ∣ λ ∣ ≤ 1 |\lambda|\leq1 λ1 ∣ λ ∣ < 1 |\lambda|<1 λ<1的对应项最终会消失
  • 相关阅读:
    自动化办公更简单了:新版python-office,有哪些更新?
    【mycat】mycat水平分表
    Java 一些异常报错、注意事项(4) - Java8
    [附源码]JAVA毕业设计会议室租赁管理系统(系统+LW)
    Echarts 实现将X轴放在图表顶部并且自动播放展示提示信息内容
    灵性·挖掘 4:自我迭代之路
    为互连智能合约Connected Contracts使用Axelar SDK
    leetcodetop100(28) 两两交换链表中的节点
    Matplotlib轮廓图
    如何设计一套单点登录系统 ?
  • 原文地址:https://blog.csdn.net/Insomnia_X/article/details/126433480