10.3 马尔可夫矩阵、人口和经济

本节内容是关于正矩阵(postive matrices): 每个元素 aij>0a_{ij}>0aij>0,它核心的结论是:最大的特征值为正实数,其对应的特征向量也是如此。 在经济学、生态学、人口动力系统和随机游走过程中都充分运用了该结论:马尔可夫矩阵 Markov:λmax=1人口动力系统 Population:λmax>1消耗矩阵 Consumption:λmax<1\begin{array}{rl}\color{blue}\pmb{马尔可夫矩阵\,\textrm{Markov}}:&\lambda_{\textrm{max}}=1\\\color{blue}\pmb{人口动力系统\,\textrm{Population}}:&\lambda_{\textrm{max}}>1\\\color{blue}\pmb{消耗矩阵\,\textrm{Consumption}}:&\lambda_{\textrm{max}}<1\end{array}马尔可夫矩阵Markov:人口动力系统Population:消耗矩阵Consumption:λmax=1λmax>1λmax<1λmax\lambda_{\textrm{max}}λmax 控制着 AAA 的幂的增长速度。我们先看 λmax=1\lambda_{\textrm{max}}=1λmax=1 的情况。

一、马尔可夫矩阵

在一个正向量 u0\boldsymbol u_0u0 重复左乘矩阵 AAA马尔可夫矩阵Markov matrixA=[0.80.30.20.7]u1=Au0,u2=Au1=A2u0\begin{array}{c}\pmb{马尔可夫矩阵}\\{\pmb{\textrm{Markov matrix}}}\end{array}\kern 15ptA=\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\kern 5pt\boldsymbol u_1=A\boldsymbol u_0,\kern 5pt\boldsymbol u_2=A\boldsymbol u_1=A^2\boldsymbol u_0马尔可夫矩阵Markov matrixA=[0.80.20.30.7]u1=Au0,u2=Au1=A2u0进行 kkk 步后,我们得到 Aku0A^k\boldsymbol u_0Aku0,向量 u1,u2,u3,⋯\boldsymbol u_1,\boldsymbol u_2,\boldsymbol u_3,\cdotsu1,u2,u3, 会趋于 “稳定状态” u∞=(0.6,0.4)\boldsymbol u_{\infty}=(0.6,0.4)u=(0.6,0.4),这最终的结果并不取决于起始向量 u0\boldsymbol u_0u0每个 u0=(a,1−a)\boldsymbol u_0=(a,1-a)u0=(a,1a) 都会收敛于 u∞=(0.6,0.4)\boldsymbol u_{\infty}=(0.6,0.4)u=(0.6,0.4). 为什么呢?
稳态方程 Au∞=u∞A\boldsymbol u_{\infty}=\boldsymbol u_{\infty}Au=u 表明 u∞\boldsymbol u_{\infty}u 为对应了特征值为 111 的特征向量稳定状态Steady state[0.80.30.20.7][0.60.4]=[0.60.4]=u∞\begin{array}{c}\pmb{稳定状态}\\\pmb{\textrm{Steady state}}\end{array}\kern 15pt\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\begin{bmatrix}0.6\\0.4\end{bmatrix}=\begin{bmatrix}0.6\\0.4\end{bmatrix}=\boldsymbol u_{\infty}稳定状态Steady state[0.80.20.30.7][0.60.4]=[0.60.4]=u左乘 AAA 不会改变 u∞\boldsymbol u_{\infty}u,但是这还不能解释为什么那么多的向量 u0\boldsymbol u_0u0 一直用 AAA 左乘最终收敛于 u∞\boldsymbol u_{\infty}u. 其它的例子也可能会有一个稳态,但是却没那么吸引人:不是马尔可夫矩阵B=[1002]有一个不那么吸引人的稳态B[10]=[10]\pmb{不是马尔可夫矩阵}\kern 15ptB=\begin{bmatrix}1&0\\0&2\end{bmatrix}\kern 5pt有一个不那么吸引人的稳态\kern 5ptB\begin{bmatrix}1\\0\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix}不是马尔可夫矩阵B=[1002]有一个不那么吸引人的稳态B[10]=[10]这种情形,如果将初始向量 u0=(0,1)\boldsymbol u_0=(0,1)u0=(0,1) 将会得出 u1=(0,2)\boldsymbol u_1=(0,2)u1=(0,2)u2=(0,4)\boldsymbol u_2=(0,4)u2=(0,4),第二个分量每次都翻倍。用特征值的语言来描述,BBB 有一个特征值 λ=1\lambda=1λ=1,同时也有一个特征值 λ=2\lambda=2λ=2,而后一个特征值产生了不稳定性。u0\boldsymbol u_0u0 沿着不稳定特征向量的分量会一直乘 λ\lambdaλ,而 ∣λ∣>1|\lambda|>1λ>1 意味着会爆炸。
这一节是讨论确保 AAA 有稳定状态的两个特殊性质,这些性质定义了一个正的马尔可夫矩阵,上面的 AAA 就是一个特例:

马尔可夫矩阵1、A 的每个元素都是正的:aij>02、A 的每一列元素加起来都是 1.\kern 20pt\begin{array}{l}\color{blue}1、A\,的每个元素都是正的:a_{ij}>0\\\color{blue}2、A\,的每一列元素加起来都是 \,1.\end{array}1A的每个元素都是正的:aij>02A的每一列元素加起来都是1.

注: 需要注意的是,上述的定义是针对的是正的马尔可夫矩阵,而马尔可夫矩阵的性质 111 仅要求元素非负。

上面的矩阵 BBB 的第 222 列加起来是 222,不是 111,所以它不是马尔可夫矩阵。当 AAA 为马尔可夫矩阵时,可以立刻得到两个事实:
由性质 111AAA 左乘 u0≥0\boldsymbol u_0\ge0u00 会得到一个非负向量 u1=Au0≥0\boldsymbol u_1=A\boldsymbol u_0\ge0u1=Au00.
由性质 222:如果 u0\boldsymbol u_0u0 的分量相加为 111,则 u1=Au0\boldsymbol u_1=A\boldsymbol u_0u1=Au0 分量的和也为 111.
原因:[11⋯1]\begin{bmatrix}1&1&\cdots&1\end{bmatrix}[111]u0=1\boldsymbol u_0=1u0=1 时,u0\boldsymbol u_0u0 分量的和为 111. 由性质 222 可知这对 AAA 的每一列都成立,则由矩阵乘法 [11⋯1]A=[11⋯1]\begin{bmatrix}1&1&\cdots&1\end{bmatrix}A=\begin{bmatrix}1&1&\cdots&1\end{bmatrix}[111]A=[111]Au0 分量的和为 1[11⋯1]Au0=[11⋯1]u0=1\color{blue}A\boldsymbol u_0\,分量的和为\,1\kern 17pt\begin{bmatrix}1&1&\cdots&1\end{bmatrix}A\boldsymbol u_0=\begin{bmatrix}1&1&\cdots&1\end{bmatrix}\boldsymbol u_0=1Au0分量的和为1[111]Au0=[111]u0=1这个事实同样可以用在 u2=Au1\boldsymbol u_2=A\boldsymbol u_1u2=Au1u3=Au2\boldsymbol u_3=A\boldsymbol u_2u3=Au2 上。所以可知每个向量 Aku0A^k\boldsymbol u_0Aku0 都是非负的,且它的分量求和都为 111. 这些是 “概率向量 probability vectors”,极限 u∞\boldsymbol u_{\infty}u 也是一个概率向量 —— 但是我们还需要证明这个极限存在。后面会证明对于一个正的马尔可夫矩阵有 λmax=1\lambda_{\textrm{max}}=1λmax=1.

例1】设丹佛(Denver)的租用车占全国的比例开始为 150=0.02\dfrac{1}{50}=0.02501=0.02,丹佛外的地方占比为 0.980.980.98. 每个月丹佛的汽车有 80%80\%80% 留在丹佛,另外 20%20\%20% 会离开;同时丹佛外的汽车会有 5%5\%5% 进入丹佛,另外 95%95\%95% 仍然留在丹佛外。这表明每个月结束,丹佛和丹佛以外的汽车占全国汽车的比例都用矩阵 AAA 左乘一次 u0=(0.02,0.98)\boldsymbol u_0=(0.02,0.98)u0=(0.02,0.98)第一个月由 A=[0.800.050.200.95]推出u1=Au0=A[0.020.98]=[0.0650.935]\pmb{第一个月}\kern 15pt由\,\pmb{A=\begin{bmatrix}0.80&0.05\\0.20&0.95\end{bmatrix}}\kern 5pt推出\kern 5pt\boldsymbol u_1=A\boldsymbol u_0=A\begin{bmatrix}0.02\\0.98\end{bmatrix}=\begin{bmatrix}0.065\\0.935\end{bmatrix}第一个月A=[0.800.200.050.95]推出u1=Au0=A[0.020.98]=[0.0650.935]注意到 0.065+0.935=10.065+0.935=10.065+0.935=1,表明所有的汽车都计入了。每一步都用 AAA 左乘:下一个月u2=Au1=(0.09875,0.90125)=A2u0\pmb{下一个月}\kern 15pt\boldsymbol u_2=A\boldsymbol u_1=(0.09875,0.90125)=A^2\boldsymbol u_0下一个月u2=Au1=(0.09875,0.90125)=A2u0由于 AAA 是正的,那么所有的这些向量都是正的。每个向量 uk\boldsymbol u_kuk 的分量加起来都为 111. 第一个分量从 0.020.020.02 开始增长,表明汽车是在驶入丹佛。那么长时间以后会怎样呢?
这一节涉及了矩阵的幂。要理解 AkA^kAk,我们首先将其对角化,这是对角化最好的应用。AkA^kAk 可能会很复杂,但是对角矩阵 Λk\Lambda^kΛk 很简单,特征向量矩阵 XXX 将它们联系了起来:Ak=XΛkX−1A^k=X\Lambda^kX^{-1}Ak=XΛkX1. 马尔可夫矩阵的应用使用了特征值(在 Λ\LambdaΛ 中)和特征向量 (在 XXX 中)。下面证明 u∞\boldsymbol u_{\infty}uAAA 特征值 λ=1\lambda=1λ=1 对应的特征向量
因为 AAA 每列元素相加都等于 111,这表明什么也没失去,同时什么也没得到。比如我们移动租用汽车或人口,没有汽车或人口的突然出现(或消失)。如果向量的分量和为 111,那么用矩阵 AAA 左乘这个向量该性质将会保持。那么现在的问题是在我们用矩阵 AAA 左乘 kkk 次后这个向量的分量是如何分布的 —— 这就导出了 AkA^kAk 的性质。
解: Aku0A^k\boldsymbol u_0Aku0 给出了在第 kkk 个月后丹佛内和丹佛外汽车的比例。我们将 AAA 对角化以理解 AkA^kAk 的性质。AAA 的特征值是 λ=1\lambda=\pmb1λ=10.75\pmb{0.75}0.75(迹为 1.751.751.75).Ax=λxA[0.20.8]=1[0.20.8],A[−11]=0.75[−11]{\color{blue}A\boldsymbol x=\lambda\boldsymbol x}\kern 15pt A\begin{bmatrix}0.2\\0.8\end{bmatrix}=1\begin{bmatrix}0.2\\0.8\end{bmatrix},\kern 15ptA\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}=0.75\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}Ax=λxA[0.20.8]=1[0.20.8],A[11]=0.75[11]将起始向量 u0\boldsymbol u_0u0 写成特征向量 x1\boldsymbol x_1x1x2\boldsymbol x_2x2 的线性组合,这里系数分别为 1110.180.180.18特征向量的线性组合u0=[0.020.98]=[0.20.8]+0.18[−11]\pmb{特征向量的线性组合}\kern 20pt\boldsymbol u_0=\begin{bmatrix}0.02\\0.98\end{bmatrix}=\begin{bmatrix}0.2\\0.8\end{bmatrix}+0.18\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}特征向量的线性组合u0=[0.020.98]=[0.20.8]+0.18[11]现在用 AAA 左乘 u0\boldsymbol u_0u0 求出 u1\boldsymbol u_1u1,特征向量将分别乘上特征值 λ1=1\lambda_1=1λ1=1λ2=0.75\lambda_2=0.75λ2=0.75每个 xi 都乘以对应的 λiu1=1[0.20.8]+(0.75)⋅(0.18)[−11]\pmb{每个\,\boldsymbol x_i\,都乘以对应的\,\lambda_i}\kern 20pt\boldsymbol u_1=1\begin{bmatrix}0.2\\0.8\end{bmatrix}+(0.75)\cdot(0.18)\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}每个xi都乘以对应的λiu1=1[0.20.8]+(0.75)(0.18)[11]每过一个月,向量 x2\boldsymbol x_2x2 都会多乘一次 λ2=0.75\lambda_2=0.75λ2=0.75,而特征向量 x1x_1x1 保持不变:k 个月以后uk=Aku0=1k[0.20.8]+(0.75)k⋅(0.18)[−11]\pmb{k\,个月以后}\kern 20pt\boldsymbol u_k=A^k\boldsymbol u_0=1^k\begin{bmatrix}0.2\\0.8\end{bmatrix}+(0.75)^k\cdot(0.18)\begin{bmatrix}-1\\\kern 7pt1\end{bmatrix}k个月以后uk=Aku0=1k[0.20.8]+(0.75)k(0.18)[11]这个等式就揭示了 uk\boldsymbol u_kuk 的实质。特征值 λ=1\lambda=1λ=1 对应的特征向量 x1\boldsymbol x_1x1 是稳定状态。 另一个特征向量 x2\boldsymbol x_2x2 最终会消失,因为它所对应的特征值 ∣λ∣<1|\lambda|<1λ<1. 我们进行的步骤越多,就越接近 u∞=(0.2,0.8)\boldsymbol u_{\infty}=(0.2,0.8)u=(0.2,0.8). 极限情况下,210\dfrac{2}{10}102 的汽车在丹佛,而 810\dfrac{8}{10}108 的汽车在丹佛外。这是马尔可夫链(Markov chains)的特征,即使初始向量 u0=(0,1)\boldsymbol u_0=(0,1)u0=(0,1) 也是一样:

如果 AAA 是一个正的马尔可夫矩阵(每个元素 aij>0a_{ij}>0aij>0,每列元素的和都为 111),则 λ1=1\lambda_1=1λ1=1 是最大的特征值,其对应的特征向量 x1\boldsymbol x_1x1稳定状态:若 u0=x1+c2x2+⋯+cnxn\boldsymbol u_0 = \boldsymbol x_1+c_2\boldsymbol x_2+\cdots+c_n\boldsymbol x_nu0=x1+c2x2++cnxn,则uk=x1+c2(λ2)kx2+⋯+cn(λn)kxn总是趋于u∞=x1\color{blue}\boldsymbol u_k=\boldsymbol x_1+c_2(\lambda_2)^k\boldsymbol x_2+\cdots+c_n(\lambda_n)^k\boldsymbol x_n\kern 15pt总是趋于\kern 10pt\boldsymbol u_{\infty}=\boldsymbol x_1uk=x1+c2(λ2)kx2++cn(λn)kxn总是趋于u=x1

第一点要明白的是,λ=1\lambda=1λ=1 一定是 AAA 的一个特征值。原因:A−IA-IAI 每列的元素相加为 1−1=01-1=011=0,则 A−IA-IAI 所有的行加起来是零行,所以这些行线性相关,那么 A−IA-IAI 是奇异的,它的行列式为零且 λ=1\lambda=1λ=1AAA 的一个特征值。
第二点是没有满足 ∣λ∣>1|\lambda|>1λ>1 的特征值。因为若有这样的特征值,AkA^kAk 将会一直增长。但是 AkA^kAk 也是一个马尔可夫矩阵!即 AkA^kAk 的元素均为正值,且每列元素之和仍然为 111(保留了列元素和为 111 的这个性质) —— 这没有留下让元素变大的空间。
还有一些特征值 ∣λ∣=1|\lambda|=1λ=1 的这样的矩阵也受到很多关注。

例2】由于特征值 λ2=−1\lambda_2=-1λ2=1,所以矩阵 A=[0110]A=\begin{bmatrix}0&1\\1&0\end{bmatrix}A=[0110] 没有稳定状态。
这个矩阵每个月都将丹佛内外的所有汽车互换。AkA^kAk 交替等于 AAAIII。第二个特征向量 x2=(−1,1)\boldsymbol x_2=(-1,1)x2=(1,1) 每一步都会乘上 λ2=−1\lambda_2=-1λ2=1,它并不会变小,所以没有稳定状态。
假设 AAAAAA 的任意次幂的元素都是正的 —— 不允许为零。在这种 “正则 regular” 或 “本原 primitive” 的情况下,λ=1\lambda=1λ=1 是严格大于其它特征值的。当 k→∞k\rightarrow\inftyk 时,幂 AkA^kAk 趋于每列都为稳定状态的秩一矩阵。

例3】(“每个人都移动 Everbody moves”)我们从三组人数(向量 u0\boldsymbol u_0u0)开始。每一步,第 111 组一半的人数进入第 222 组,另一半人数进入第 333 组。另外两组也将各自的人数平分两半后分别进去其他两组。下面是从最初的人口 p1,p2,p3p_1,p_2,p_3p1,p2,p3 经过第一步:新的人口u1=Au0=[012121201212120][p1p2p3]=[12p2+12p312p1+12p312p1+12p3]\pmb{新的人口}\kern 20pt\boldsymbol u_1=A\boldsymbol u_0=\begin{bmatrix}0&\dfrac{1}{2}&\dfrac{1}{2}\\[1.5ex]\dfrac{1}{2}&0&\dfrac{1}{2}\\[1.5ex]\dfrac{1}{2}&\dfrac{1}{2}&0\end{bmatrix}\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix}=\begin{bmatrix}\dfrac{1}{2}p_2+\dfrac{1}{2}p_3\\[1.5ex]\dfrac{1}{2}p_1+\dfrac{1}{2}p_3\\[1.5ex]\dfrac{1}{2}p_1+\dfrac{1}{2}p_3\end{bmatrix}新的人口u1=Au0=021212102121210p1p2p3=21p2+21p321p1+21p321p1+21p3AAA 是一个马尔可夫矩阵,没有人口出生也没有人口死亡。AAA 含有零元素,例 222 中的零元素带来了麻烦,但是这个例子中在两步后,零元素从 A2A^2A2 中消失了:两步矩阵u2=A2u0=[121414141214141414][p1p2p3]\pmb{两步矩阵}\kern 20pt\boldsymbol u_2=A^2\boldsymbol u_0=\begin{bmatrix}\dfrac{1}{2}&\dfrac{1}{4}&\dfrac{1}{4}\\[1.5ex]\dfrac{1}{4}&\dfrac{1}{2}&\dfrac{1}{4}\\[1.5ex]\dfrac{1}{4}&\dfrac{1}{4}&\dfrac{1}{4}\end{bmatrix}\begin{bmatrix}p_1\\p_2\\p_3\end{bmatrix}两步矩阵u2=A2u0=214141412141414141p1p2p3AAA 的特征值是 λ1=1\lambda_1=1λ1=1(因为 AAA 是马尔可夫矩阵),λ2=λ3=12\lambda_2=\lambda_3=\dfrac{1}{2}λ2=λ3=21. 对于 λ1=1\lambda_1=1λ1=1特征向量 x1=(13,13,13)\boldsymbol x_1=(\dfrac{1}{3},\dfrac{1}{3},\dfrac{1}{3})x1=(31,31,31) 会保持稳定状态。 当三组人数相等时,再经过 “平方-移动” 人数仍然相等。若起始向量 u0=(8,16,32)\boldsymbol u_0=(8,16,32)u0=(8,16,32),马尔可夫链趋于稳定状态:u0=[81632]u1=[242012]u2=[161822]u3=[201917]\boldsymbol u_0=\begin{bmatrix}8\\16\\32\end{bmatrix}\kern 15pt\boldsymbol u_1=\begin{bmatrix}24\\20\\12\end{bmatrix}\kern 15pt\boldsymbol u_2=\begin{bmatrix}16\\18\\22\end{bmatrix}\kern 15pt\boldsymbol u_3=\begin{bmatrix}20\\19\\17\end{bmatrix}u0=81632u1=242012u2=161822u3=201917第四步时 u4\boldsymbol u_4u4 会出现将一个人分成两半的情况,这现实中不可能出现,但是这里假设人数可以为分数。每一步的总人口都是 8+16+32=568+16+32=568+16+32=56,稳定状态是 565656(13,13,13)(\dfrac{1}{3},\dfrac{1}{3},\dfrac{1}{3})(31,31,31),我们可以看到,这三组人数将趋近于它们的最终极限 563\dfrac{56}{3}356,但是永远不可能达到。
根据网站之间的链接数量可以创建一个马尔可夫矩阵 AAA,稳定状态 u∞\boldsymbol u_{\infty}u 将给出谷歌的排名。谷歌通过跟随链接随机游走的方法得到 u∞\boldsymbol u_{\infty}u. 特征向量来自计算每个网站的访问比例 —— 这是一种快速计算稳定状态的方法。
第二个特征值的大小 ∣λ2∣|\lambda_2|λ2 控制着收敛到稳定状态的速度。

二、佩隆 - 弗罗贝尼乌斯定理

佩隆-弗罗贝尼乌斯定理(Perron-Frobenius Theorem)在研究矩阵稳定状态时起决定性的作用,该定理仅要求矩阵的所有元素 aij≥0a_{ij}\ge0aij0,而没有要求列的和相加为 111. 这里证明最简单的情形:当所有的 aij>0a_{ij}>0aij>0 时,任意的正矩阵 AAA(不需要是正定的!).

A>OA>OA>O 时的佩隆-弗罗贝尼乌斯定理Ax=λmaxx 中所有的数都是正的.\kern 20pt\color{blue}A\boldsymbol x=\lambda_{\textrm{max}}\boldsymbol x\,中所有的数都是正的.Ax=λmaxx中所有的数都是正的.

证明: 证明的关键是考虑 Ax≥txA\boldsymbol x\ge t\boldsymbol xAxtx 对某个非负向量 x\boldsymbol xxx≠0\boldsymbol x\neq\boldsymbol 0x=0)成立的所有实数 ttt,这里允许不等式 Ax≥txA\boldsymbol x\ge t\boldsymbol xAxtx 的目的是为了取得更多的正的候选的 ttt 值。其上界 tmaxt_{\textrm{max}}tmax(这样的值是可以取到的,因为 ttt 是非空有上界的集合,一定存在上确界),我们先证明等式成立Ax=tmaxxA\boldsymbol x=t_{\textrm{max}}\boldsymbol xAx=tmaxx.
如果 Ax≥tmaxxA\boldsymbol x\ge t_{\text{max}}\boldsymbol xAxtmaxx 的等号不成立,我们在两端同时左乘 AAA,由于 AAA 是正的,所以这将得到一个严格的不等式 A2x>tmaxAxA^2\boldsymbol x>t_{\textrm{max}}A\boldsymbol xA2x>tmaxAx,因此正向量 y=Ax\boldsymbol y=A\boldsymbol xy=Ax 满足 Ay>tmaxyA\boldsymbol y>t_{\textrm{max}}\boldsymbol yAy>tmaxy,这里 tmaxt_{\textrm{max}}tmax 可以增大,因为这和上一个 tmaxt_{\textrm{max}}tmax 并不一致。这个矛盾导推出等式 Ax=tmaxxA\boldsymbol x=t_{\textrm{max}}\boldsymbol xAx=tmaxx 成立,此时我们将得到一个特征值。由于等式左边为正,所以它的特征向量 x\boldsymbol xx 为正。
下面证明没有比 tmaxt_{\textrm{max}}tmax 更大的特征值。假设 Az=λzA\boldsymbol z=\lambda\boldsymbol zAz=λz,由于 λ\lambdaλz\boldsymbol zz 可能包含有负数或复数,我们对所有的分量取绝对值,则由三角不等式可得:∣λ∣∣z∣=∣Az∣≤A∣z∣|\lambda||\boldsymbol z|=|A\boldsymbol z|\le A|\boldsymbol z|λ∣∣z=AzAz. 这里 ∣z∣|\boldsymbol z|z 表示的是一个非负的向量,所以 ∣λ∣|\lambda|λ 是一个可能的候选数 ttt,因此 ∣λ∣|\lambda|λ 比可能超过 tmaxt_{\textrm{max}}tmax,即 λmax\lambda_{\textrm{max}}λmax 就等于 tmaxt_{\textrm{max}}tmax.

三、人口增长

606060 岁以下的人口按年龄分成三组:小于 202020 岁的,202020393939 岁的,404040595959 岁的。第 TTT 年,这三组的人数分别为 n1,n2,n3n_1,n_2,n_3n1,n2,n3. 二十年以后,这三组的人数会出现改变,原因是:出生、死亡和衰老。

  1. 生育(Reproduction):n1new=F1n1+F2n2+F3n3n_1^{\pmb{\textrm{new}}}=F_1n_1+F_2n_2+F_3n_3n1new=F1n1+F2n2+F3n3 给出了新的第一组的人口,都是新生人口;
  2. 存活(Survial):n2new=P1n1n_2^{\pmb{\textrm{new}}}=P_1n_1n2new=P1n1n3new=P2n2n_3^{\pmb{\textrm{new}}}=P_2n_2n3new=P2n2 给出了新的第二组和第三组的人口。

F1,F2F_1,F_2F1,F2F3F_3F3F2F_2F2 最大)分别为这三个年龄组的生育率,可以用莱斯利矩阵(Leslie matrix)AAA 来关联这些数据,设:[n1n2n3]new=[F1F2F3P1000P20][n1n2n3]=[0.041.10.010.980000.920][n1n2n3]\begin{bmatrix}n_1\\n_2\\n_3\end{bmatrix}^{\pmb{\textrm{new}}}=\begin{bmatrix}F_1&F_2&F_3\\P_1&0&0\\0&P_2&0\end{bmatrix}\begin{bmatrix}n_1\\n_2\\n_3\end{bmatrix}=\begin{bmatrix}0.04&\pmb{1.1}&0.01\\0.98&0&0\\0&\pmb{0.92}&0\end{bmatrix}\begin{bmatrix}n_1\\\pmb{n_2}\\n_3\end{bmatrix}n1n2n3new=F1P10F20P2F300n1n2n3=0.040.9801.100.920.0100n1n2n3这个形式是最简单的人口投影,每一步(202020 年)的矩阵 AAA 都是相同的。在现实模型中,AAA 会随着时间改变(因为环境或内部因素)。研究者可能会加入年龄大于 606060 岁的作为第四个年龄组,但这里不考虑这种情况。
矩阵 AAA 满足 A≥OA\ge OAO,但是不满足 A>OA>OA>O. 而由于 A3>OA^3>OA3>O,正矩阵情形的佩隆-弗罗贝尼乌斯定理仍然有效。最大的特征值是 λmax≈1.06\lambda_{\textrm{max}}\approx1.06λmax1.06. 我们假设中间组的人口从 n2=1n_2=1n2=1 起始,以观察人口的变化:eig(A)=1.06−1.01−0.01A2=[1.080.050.000.041.080.010.9000]A3=[0.101.190.010.060.050.000.040.990.01]\textrm{\pmb{eig}}(A)=\begin{matrix}\kern 7pt1.06\\-1.01\\-0.01\end{matrix}\kern 15ptA^2=\begin{bmatrix}1.08&0.05&0.00\\0.04&1.08&0.01\\0.90&0&0\end{bmatrix}\kern 15ptA^3=\begin{bmatrix}0.10&\pmb{1.19}&0.01\\0.06&\pmb{0.05}&0.00\\0.04&\pmb{0.99}&0.01\end{bmatrix}eig(A)=1.061.010.01A2=1.080.040.900.051.0800.000.010A3=0.100.060.041.190.050.990.010.000.01为了快速的看出人口的变化,我们设 u0=(0,1,0)\boldsymbol u_0=(0,1,0)u0=(0,1,0),经过一个 202020 年,中间组会生育 1.11.11.1 同时存活 0.920.920.92u1=(1.1,0,0.92)\boldsymbol u_1=(1.1,0,0.92)u1=(1.1,0,0.92) 对应 AAA 的第 222 列。再过 202020 年,u2=Au1=A2u0\boldsymbol u_2=A\boldsymbol u_1=A^2\boldsymbol u_0u2=Au1=A2u0A2A^2A2 的第 222 列。开始的一些数据(短期内各组的人口)很大程度上依赖于 u0\boldsymbol u_0u0,但是无论起始向量是什么,渐进增长率 λmax\lambda_{\textrm{max}}λmax 都是相同的。它对应的特征向量 x=(0.63,0.58,0.51)\boldsymbol x=(0.63,0.58,0.51)x=(0.63,0.58,0.51) 表明这三组所有的人口数一起稳定增长。
上述模型肯定不是完全准确的,如果矩阵中的 FiF_iFiPiP_iPi 变化 10%10\%10%λmax\lambda_{\textrm{max}}λmax 会小于 111 吗(这意味着人口灭绝)?由矩阵变化 ΔA\Delta AΔA 将导出特征值变化 Δλ=yT(ΔA)x\Delta \lambda=\boldsymbol y^T(\Delta A)\boldsymbol xΔλ=yT(ΔA)x. 这里的 x\boldsymbol xxyT\boldsymbol y^TyT 分别是 AAA 的右特征向量和左特征向量,即 Ax=dxA\boldsymbol x=d\boldsymbol xAx=dxATy=λyA^T\boldsymbol y=\lambda\boldsymbol yATy=λy.

四、经济学中的线性代数:消耗矩阵

这里不会详细讲解经济学中的线性代数,只简单的介绍一下消耗矩阵(consumpution matrix). 消耗矩阵表示的是每产出一个单位,每种的投入需要多少单位。这个描述的是经济学的制造业方面。
消耗矩阵:nnn 个工厂,如化学品、食品和石油等。为了生产 111 单位的化学品需要 0.20.20.2 单位的化学品、0.30.30.3 单位食品和 0.40.40.4 单位石油。将这些数放在消耗矩阵 AAA 的第 111 行:[化学品产出食品产出石油产出]=[0.20.30.40.40.40.10.50.10.3][化学品投入食品投入石油投入]\begin{bmatrix}化学品产出\\食品产出\\石油产出\end{bmatrix}=\begin{bmatrix}0.2&0.3&0.4\\0.4&0.4&0.1\\0.5&0.1&0.3\end{bmatrix}\begin{bmatrix}化学品投入\\食品投入\\石油投入\end{bmatrix}化学品产出食品产出石油产出=0.20.40.50.30.40.10.40.10.3化学品投入食品投入石油投入222 行表明生产食品的投入 —— 需要大量的化学品和食品,石油的消耗比较少。AAA 的第 333 行表明提炼 111 单位的石油需要的投入。美国在 195819581958 年实际的消耗矩阵包含 838383 个工厂,而 199019901990 年的模型要更大、更精确。我们选择的消耗矩阵有一个方便使用的特征向量。
现在问题来了:这种经济能满足对化学品、食品和石油各自的需求 y1,y2,y3y_1,y_2,y_3y1,y2,y3 吗?为了满足需求,投入 p1,p2,p3p_1,p_2,p_3p1,p2,p3 必须要更高 —— 因为在生产 y\boldsymbol yy 的过程中,消耗掉了一部分 p\boldsymbol pp. 投入为 p\boldsymbol pp,消耗的为 ApA\boldsymbol pAp,那么产出为 p−Ap\boldsymbol p-A\boldsymbol ppAp. 这个净产量就是可以满足外部的需求 y\boldsymbol yy(即需要产出的 y\boldsymbol yy):

问题: 求一个向量 p\boldsymbol pp,使得 p−Ap=y\color{blue}\boldsymbol p-A\boldsymbol p=\boldsymbol ypAp=yp=(I−A)−1y\color{blue}\boldsymbol p=(I-A)^{-1}\boldsymbol yp=(IA)1y.

显然,对于线性代数的来说,就是确定 I−AI-AIA 是否可逆。但是这里有更多的限制,产出向量 y\boldsymbol yy 是非负的,AAA 也是非负的,p=(I−A)−1y\boldsymbol p=(I-A)^{-1}\boldsymbol yp=(IA)1y 中的生产水平也要是非负的。真正的问题是:什么时候 (I−A)−1是一个非负矩阵?\pmb{什么时候\,(I-A)^{-1} 是一个非负矩阵?}什么时候(IA)1是一个非负矩阵?这是关于产出型经济对应的 (I−A)−1(I-A)^{-1}(IA)1 的检验法,该经济可以满足任何需求。如果 AAAIII 小,则 ApA\boldsymbol pAp 就会小于 p\boldsymbol pp,就会有足够的产出。如果 AAA 太大,那么生产就消耗的太多,产出 y\boldsymbol yy 的需求就无法满足。
“小” 或 “大” 是由 AAA 最大的特征值 λ1\lambda_1λ1(正的)决定的:

  • 如果 λ1>1\lambda_1>1λ1>1,则 (I−A)−1(I-A)^{-1}(IA)1 有负元素
  • 如果 λ1=1\lambda_1=1λ1=1,则 (I−A)−1(I-A)^{-1}(IA)1 不存在
  • 如果 λ1<1\lambda_1<1λ1<1,则 (I−A)−1(I-A)^{-1}(IA)1 就是所需的非负矩阵

重点就是最后一个,推导时会使用一个表示 (I−A)−1(I-A)^{-1}(IA)1 很棒的公式。数学中最重要的无穷级数是几何级数(geometric series) 1+x+x2+⋯1+x+x^2+\cdots1+x+x2+. 当 −1<x<1-1<x<11<x<1 时,这个级数的和是 11−x\dfrac{1}{1-x}1x1;当 x=1x=1x=1 时,级数为 1+1+1+⋯=∞1+1+1+\cdots=\infty1+1+1+=;当 ∣x∣≥1|x|\ge1x1 时,xnx^nxn 的极限不为零,这个级数不会收敛。
表示 (I−A)−1(I-A)^{-1}(IA)1 的公式是矩阵的几何级数(geometric series of matrices):

几何级数 Geometric series(I−A)−1=I+A+A2+A3+⋯\pmb{几何级数\,\textrm{Geometric\,series}}\kern 20pt\color{blue}(I-A)^{-1}=I+A+A^2+A^3+\cdots几何级数Geometricseries(IA)1=I+A+A2+A3+

如果级数 S=I+A+A2+A3+⋯S=I+A+A^2+A^3+\cdotsS=I+A+A2+A3+ 两边左乘 AAA,可以得到除了 III 以外的同样的级数,因此 S−AS=IS-AS=ISAS=I,即 (I−A)S=I(I-A)S=I(IA)S=I. 如果该级数收敛,它的和为 S=(I−A)−1S=(I-A)^{-1}S=(IA)1. 如果 AAA 所有的特征值都满足 ∣λ∣<1|\lambda|<1λ<1,则级数 SSS 收敛。
我们这种情况是 A≥OA\ge OAO,这个级数所有的项都是非负的,和为 (I−A)−1≥O(I-A)^{-1}\ge O(IA)1O.

例4】矩阵 A=[0.20.30.40.40.40.10.50.10.3]A=\begin{bmatrix}0.2&0.3&0.4\\0.4&0.4&0.1\\0.5&0.1&0.3\end{bmatrix}A=0.20.40.50.30.40.10.40.10.3 最大的特征值 λmax=0.9\lambda_{\textrm{max}}=\pmb{0.9}λmax=0.9,则 (I−A)−1=1093[412527333624342336](I-A)^{-1}=\dfrac{10}{93}\begin{bmatrix}41&25&27\\33&36&24\\34&23&36\end{bmatrix}(IA)1=9310413334253623272436.
这个经济是产出型的。因为 λmax=0.9\lambda_{\textrm{max}}=0.9λmax=0.9,所以 AAAIII 要小。为了满足需求 y\boldsymbol yy,从投入 p=(I−A)−1y\boldsymbol p=(I-A)^{-1}\boldsymbol yp=(IA)1y 开始,则 ApA\boldsymbol pAp 就是生产时的消耗,剩余 p−Ap\boldsymbol p-A\boldsymbol ppAp,就是 (I−A)−1p=y(I-A)^{-1}\boldsymbol p=\boldsymbol y(IA)1p=y,满足了需求。

例5A=[0410]A=\begin{bmatrix}0&4\\1&0\end{bmatrix}A=[0140] 最大的特征值 λmax=2\lambda_{\textrm{max}}=\pmb2λmax=2,则 (I−A)−1=−13[1411](I-A)^{-1}=-\dfrac{1}{3}\begin{bmatrix}1&4\\1&1\end{bmatrix}(IA)1=31[1141].
这个消耗矩阵 AAA 太大了,无法满足生产的需求,因为消耗要比产出更多。由于 λmax>1\lambda_{\textrm{max}}>1λmax>1,所以它对应的几何级数是 I+A+A2+⋯I+A+A^2+\cdotsI+A+A2+ 不会收敛到 (I−A)−1(I-A)^{-1}(IA)1. 事实上,这个级数不断增长,矩阵 (I−A)−1(I-A)^{-1}(IA)1 是负矩阵。
同理,1+2+4+⋯1+2+4+\cdots1+2+4+ 并不等于 11−2=−1\dfrac{1}{1-2}=-1121=1,但这也不是完全错误!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921913.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python学习进阶之面向对象(二)

文章目录 1.面向对象编程介绍 2.面向对象基本语法 3.面向对象的三大特征 4.面向对象其他语法 1.面向对象编程介绍 1.1 基本概念 概念:面向对象编程(Object-Oriented Programming, OOP)是一种流行的编程范式,它以"对象"为核心组织代码和数据 在面向对象的世界里: …

VS+QT的编程开发工作:关于QT VS tools的使用 qt的官方帮助

加粗样式 最近的工作用到VS2022QT5.9.9/QT5.12.9&#xff0c;在查找相关资料的时候&#xff0c;发现Qt 官方的资料还是很不错的&#xff0c;特记录下来&#xff0c;要记得抽时间学习下。 Add Qt versions https://doc.qt.io/qtvstools/qtvstools-how-to-add-qt-versions.html B…

【系统分析师】第21章-论文:系统分析师论文写作要点(核心总结)

更多内容请见: 备考系统分析师-专栏介绍和目录 文章目录 一、写作注意事项:构建论文的合规性与专业性 1.1 加强学习 1.2 平时积累 1.3 提高打字速度 1.4 以不变应万变 二、试题解答方法:结构化应对策略 2.1 试题类型分析 2.2 三段式答题框架 2.3 时间分配 三、论文写作方法:…

tailwindcss 究竟比 unocss 快多少?

tailwindcss 究竟比 unocss 快多少&#xff1f; 前言 大家好&#xff0c;我是去年一篇测评 《unocss 究竟比 tailwindcss 快多少&#xff1f;》 的作者 icebreaker。 一晃到了 2025 年&#xff0c;tailwindcss4 也正式发布了&#xff0c;现在最新版本是 4.1.13。 新版本不仅…

算法练习——55.跳跃游戏

1.题目描述给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。示例 1&#xff…

Django 项目6:表单与认证系统

目录 1、form 表单 2、session 保存状态 3、Admin 后台 4、Auth 系统 1、form 表单 &#xff08;1&#xff09;创建 form.py 文件&#xff0c;并完善 from django import forms# 定义一个表单类 class Register(forms.Form):user forms.CharField(max_length30, label用…

tvm/triton/tensorrt比较

1.tvm的主线感觉更新太慢&#xff0c;文档太落后&#xff0c;在自动驾驶领域不支持Blackwell平台&#xff0c;跨平台其实吹牛的更多。我觉得自动驾驶用不起来。2.性能最快的还是tensorrt/tensorrt_llm这条路&#xff0c;纯cuda路线面临大量cuda算子开发&#xff0c;比如vllm ll…

Transform 和BERT、GPT 模型

目录 Transform的由来 Seq2seq 模型 Transform 的内部结构 语言模型 BERT 介绍 BERT 模型的组成 分词器 位置编码 Softmax 残差结构 BERT 模型总结 Transform的由来 传统的语⾔模型&#xff0c;⽐如RNN&#xff08;循环神经⽹络&#xff09;&#xff0c;就像⼀个“短…

2025高教社国赛数学建模A题参考论文35页(含代码和模型)

2025国赛数学建模竞赛A题完整参考论文 目录 摘要 1 问题背景与重述 2 问题分析 2.1 问题一分析 2.2 问题二分析 2.3 问题三分析 2.4 问题四分析 2.5 问题五分析 3 符号说明 4 模型假设 5 模型建立与求解 5.1 问题一 烟幕有效遮蔽时长…

【Linux】常用命令汇总

【Linux】常用命令【一】tar命令【1】可用参数【2】常用案例&#xff08;1&#xff09;创建归档&#xff08;打包&#xff09;&#xff08;2&#xff09;查看归档内容&#xff1a;​​&#xff08;3&#xff09;解包归档 (提取)&#xff1a;​​【二】日志查看命令【1】基础命令…

软考系统架构设计师之软件系统建模

一、软件系统建模 系统建模流程包括如下&#xff1a; 二、人机交互设计 黄金三法则&#xff1a; 1、置于用户控制之下以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式 提供灵活的交互 允许用户交互可以被中断和撤销 当技能级别增加时可以使交互流水化并允许定制交…

Linux系统学习之注意事项及命令基本格式

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01;你要是翻过历史文章的话&#xff0c;肯定特别疑惑&#xff1a;这神经病搞得这个号到底是啥定位&#xff0c;究竟是分享啥类型的&#xff0c;咋乱七八糟的啥都有。真是个杂货铺啥都有&#xff0c;咋又开始分享Linux系统了…

0基础Java学习过程记录——枚举、注解

一、枚举1.基本介绍&#xff08;1&#xff09;枚举对应英文 enumeration&#xff0c;简写为 enum&#xff08;2&#xff09;枚举是一组常量的集合&#xff08;3&#xff09;可以理解为&#xff1a;枚举属于一种特殊的类&#xff0c;里面只包含一组有限的特定的对象2.实现方式&a…

高效计算的源泉:深入浅出冯诺依曼模型与操作系统的管理艺术 —— 构建稳定、高效的应用基石 【底层逻辑/性能优化】

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

性能测试-jmeter9-逻辑控制器、定时器压力并发

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter逻辑控制器、定时器妙用IF控制器**IF 控制器的作用**循环控制器循环控制器的作用ForEach控制器ForEach 控制器的作用…

T:线段树入门(无区间更新)

线段树.线段树介绍.线段树框架.理解线段树.图式整个过程.线段树代码逐层解析.代码汇总.leetcode练习.线段树介绍 线段树(SegmentTree)\;\;\;\;\;\;\;\;线段树(SegmentTree)线段树(SegmentTree) is 用于高效处理区间查询和单点修改的数据结构&#xff0c;和树状数组很像&#xf…

【ISP】Charlite工具实操

实习一周了&#xff0c;参与了客观拍摄和测试&#xff0c;复习一下nv工具 BLACK LEVEL&#xff08;黑电平&#xff09; eg&#xff1a; $ nv_ob 0 in_dir <input directory> out_name <ob file> nv_ob 0 in_dir D:\study\nvraw\ob1 out_name D:\study\nvraw\my_out…

普蓝机器人 AutoTrack-IR-DR200 外设配置全指南

为什么外设配置对机器人研究如此重要&#xff1f;在当今机器人技术飞速发展的时代&#xff0c;高校学生研究团队正成为创新的重要力量。无论是参加机器人竞赛、开展毕业设计&#xff0c;还是进行学术研究&#xff0c;正确配置和使用外设设备都是成功的关键。尤其学生组装一个服…

8、Python性能优化与代码工程化

学习目标&#xff1a;掌握Python程序性能分析和优化的通用方法&#xff0c;建立工程化开发的规范意识&#xff0c;为后续AI项目开发奠定坚实的编程基础在数据科学和AI开发中&#xff0c;代码性能往往决定了项目的可行性。一个处理时间从几小时缩短到几分钟的优化&#xff0c;可…

【算法--链表】117.填充每个节点的下一个右侧节点指针Ⅱ--通俗讲解

通俗算法讲解推荐阅读: 【算法–链表】83.删除排序链表中的重复元素–通俗讲解 【算法–链表】删除排序链表中的重复元素 II–通俗讲解 【算法–链表】86.分割链表–通俗讲解 【算法】92.翻转链表Ⅱ–通俗讲解 【算法–链表】109.有序链表转换二叉搜索树–通俗讲解 【算法–链…