栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

矩阵的幂(Matrix Powers)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

矩阵的幂(Matrix Powers)

矩阵的幂(Matrix Powers)

矩阵对角化给计算矩阵的幂提供了简便方法
我们将矩阵进行分解,然后在计算矩阵的幂

假设我们求解 u k = A k u 0 boldsymbol{u}_k=A^kboldsymbol{u}_0 uk​=Aku0​
由于 X X − 1 = I XX^{-1}=I XX−1=I,所以下式可以简化

图中矩阵 X X X 为矩阵 A A A 的特征向量构成的矩阵、矩阵 Λ Lambda Λ 为矩阵 A A A 的特征值构成的对角矩阵

Step 1:先求解出特征向量矩阵 X X X、特征值矩阵 Λ Lambda Λ、矩阵 X − 1 X^{-1} X−1

Step 2:求解 X − 1 u 0 X^{-1}boldsymbol{u}_0 X−1u0​,结果记作 c boldsymbol{c} c,即 c = X − 1 u 0 boldsymbol{c}=X^{-1}boldsymbol{u}_0 c=X−1u0​
实际上是将向量 u 0 boldsymbol{u}_0 u0​ 写为了特征向量的线性组合

Step 3:求解 Λ k X − 1 u 0 Lambda^kX^{-1}boldsymbol{u}_0 ΛkX−1u0​,即 Λ k c Lambda^kboldsymbol{c} Λkc

Step 3:求解 X Λ k X − 1 u 0 XLambda^kX^{-1}boldsymbol{u}_0 XΛkX−1u0​,即 X Λ k c XLambda^kboldsymbol{c} XΛkc

Step4:写出结果

例子:


求解特征向量矩阵、特征值矩阵的详细步骤请参考本人博客:特征值、特征向量、迹

Step1:
X = [ x ⃗ 1 x ⃗ 2 ] = [ 2 1 1 − 1 ]   X − 1 = 1 d e t   X [ − 1 − 1 − 1 2 ] = [ 1 / 3 1 / 3 1 / 3 − 2 / 3 ]   Λ = [ λ 1 0 0 λ 2 ] = [ 2 0 0 − 1 ] X=begin{bmatrix}vec{x}_1 & vec{x}_2end{bmatrix}=begin{bmatrix}2 & 1\ 1 & -1end{bmatrix}\ ~\ X^{-1}=frac{1}{det X}begin{bmatrix}-1 & -1\ -1 & 2end{bmatrix}= begin{bmatrix}1/3 & 1/3\ 1/3 & -2/3end{bmatrix}\ ~\ Lambda=begin{bmatrix}lambda_1 & 0\ 0 & lambda_2end{bmatrix}= begin{bmatrix}2 & 0\ 0 & -1end{bmatrix} X=[x 1​​x 2​​]=[21​1−1​] X−1=det X1​[−1−1​−12​]=[1/31/3​1/3−2/3​] Λ=[λ1​0​0λ2​​]=[20​0−1​]

Step2:
c = X − 1 u 0 = [ 1 / 3 1 / 3 1 / 3 − 2 / 3 ] [ 1 0 ] = [ 1 / 3 1 / 3 ] = [ c 1 c 2 ] boldsymbol{c}=X^{-1}boldsymbol{u}_0= begin{bmatrix}1/3 & 1/3\ 1/3 & -2/3end{bmatrix} begin{bmatrix}1\ 0end{bmatrix}= begin{bmatrix}1/3\ 1/3end{bmatrix}= begin{bmatrix}c_1\ c_2end{bmatrix} c=X−1u0​=[1/31/3​1/3−2/3​][10​]=[1/31/3​]=[c1​c2​​]

Step3:
Λ k = [ λ 1 k 0 0 λ 2 k ] = [ 2 k 0 0 ( − 1 ) k ]   Λ k c = [ λ 1 k 0 0 λ 2 k ] [ c 1 c 2 ] = [ 2 k 0 0 ( − 1 ) k ] [ 1 / 3 1 / 3 ] = [ 1 3 ( 2 k ) 1 3 ( − 1 ) k ] = 1 3 [ 2 k ( − 1 ) k ] Lambda^k=begin{bmatrix}lambda_1^k & 0\ 0 & lambda_2^kend{bmatrix}= begin{bmatrix}2^k & 0\ 0 & (-1)^kend{bmatrix}\ ~\ Lambda^kboldsymbol{c}= begin{bmatrix}lambda_1^k & 0\ 0 & lambda_2^kend{bmatrix} begin{bmatrix}c_1\ c_2end{bmatrix}= begin{bmatrix}2^k & 0\ 0 & (-1)^kend{bmatrix} begin{bmatrix}1/3\ 1/3end{bmatrix}= begin{bmatrix}frac{1}{3}(2^k)\ frac{1}{3}(-1)^kend{bmatrix}= frac{1}{3}begin{bmatrix}2^k\ (-1)^kend{bmatrix} Λk=[λ1k​0​0λ2k​​]=[2k0​0(−1)k​] Λkc=[λ1k​0​0λ2k​​][c1​c2​​]=[2k0​0(−1)k​][1/31/3​]=[31​(2k)31​(−1)k​]=31​[2k(−1)k​]

Step4:
u k = X Λ k c = [ 2 1 1 − 1 ] 1 3 [ 2 k ( − 1 ) k ] = 1 3 2 k [ 2 1 ] + 1 3 ( − 1 ) k [ 1 − 1 ] = [ F k + 1 F k ] boldsymbol{u}_k=XLambda^kboldsymbol{c}=begin{bmatrix}2 & 1\ 1 & -1end{bmatrix}frac{1}{3}begin{bmatrix}2^k\ (-1)^kend{bmatrix}= frac{1}{3}2^kbegin{bmatrix}2\ 1end{bmatrix}+ frac{1}{3}(-1)^kbegin{bmatrix}1\ -1end{bmatrix}= begin{bmatrix}F_{k+1}\ F_{k}end{bmatrix} uk​=XΛkc=[21​1−1​]31​[2k(−1)k​]=31​2k[21​]+31​(−1)k[1−1​]=[Fk+1​Fk​​]

F k F_k Fk​通项公式如下:
F k = 1 3 2 k ⋅ 1 + 1 3 ( − 1 ) k ⋅ ( − 1 ) = 2 k − ( − 1 ) k 3 F_k=frac{1}{3}2^kcdot1+frac{1}{3}(-1)^kcdot(-1)=frac{2^k-(-1)^k}{3} Fk​=31​2k⋅1+31​(−1)k⋅(−1)=32k−(−1)k​

基本思想:Follow the eigenvectors

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/724936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号