所有矩阵都可以对角化吗?
前几天某好友同学, 参加了某度算法岗的面试, 问了很多问题, 其中就有这么一个基础数学的问题: ..所有矩阵都可以对角化吗?..
实际上, 我立马就可以想出一个反例:
A=1011.A 矩阵不可以对角化, 因为:
λ1=λ2=1.x1=x2=k10.其特征向量线性相关, 即 A 不可对角化, 所以 ..并不是所有的矩阵都可以对角化..
上述矩阵 A 是最小的若尔当块.
矩阵对角化
矩阵对角化是什么?
可对角化矩阵 是线性代数 和矩阵论 中重要的一类矩阵. 如果一个方块矩阵 A 相似于对角矩阵, 也就是说: 如果存在一个可逆矩阵 P 使得 P−1AP 是对角矩阵,则它就被称为可对角化的.
记 n 阶方阵 A 的特征值为(可能存在相同的特征指)
λ={λ1,…,λn}.以及线性无关的特征向量
S=[x1,…,xn].其中 xi 为列向量. 则
AS=[Ax1,…,Axn]=[λ1x1,…,λnxn]=[x1,…,xn]λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn=SΛ.根据上式, 即得到一种矩阵分解
A=SAS−1.
可对角化条件
我们已经知道, 并不是所有的矩阵都可以对角化, 那么矩阵 ..可对角化需要满足哪些条件呢?..
特征向量
所有特征向量线性无关
特征值
- 若矩阵的特征值各不相同, 则矩阵一定可以对角化;
- 若矩阵存在某特征值的重数大于 1, 矩阵则可能 可以对角化.
空间
全空间 V 可表示为各特征子空间的直和
课本上有一系列等价条件, 此处不再枚举.
实际上, 若尔当标准型理论可以完美解释对角化问题, 此处也不多介绍, 之后会专门说一说.
有趣的应用
以下内容的前提条件都是: 矩阵满足可对角化
矩阵的幂 An
首先, 因为 A=SΛS−1, 所以
An=SΛS−1⋅SΛS−1⋯SΛS−1=SΛnS−1.其中,
Λn=λ1n0⋮00λ2n⋮0⋯⋯⋱⋯00⋮λnn以上是利用特征值计算矩阵幂的方法, 而且可以得到: 矩阵的 n 次方后, 特征值相应地变为 n 次方, 而特征向量不变.
其次, 因为 Ax=λx, 所以
A2x=Aλx=λAx=λ2x.递推可得
Anx=λnx由上式同样得到: 矩阵的 n 次方后, 特征值相应地变为 n 次方, 而特征向量保持不变.
差分方程 uk+1=Auk
假设 u2=Au1, 由递推 uk+1=Auk 可得 uk+1=Aku1, 那么, 已知 n 阶方阵 A,u1, 如何计算 uk+1 ?
因为已知 A 可对角化, 所以矩阵 A 的特征向量线性无关, S={x1,…,xn} 可构成全空间 V 的一组基, 则 u1 可表示为:
u1=c1x1+c2x2+⋯+cnxn=Sc1c2⋮cn=Sc.继而,
u2=Au1=c1Ax1+c2Ax2+⋯+cnAxn=c1λ1x1+c2λ2x2+⋯+cnλnxn=[x1,…,xn]λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λnc1c2⋮cn=SΛc.另外, 上述结果同样由以下矩阵形式得到
u2=Au1=SΛS−1Sc=SΛc.递推, 就可以得到
uk+1=Aku1=SΛkc.(∗)该公式可用于以下 生兔子问题
斐波那契数列 (Fibonacci sequence)
数列 F={0,1,1,2,3,5,…}, 即满足如下递推式
Fn=Fn−1+Fn−2.试求 Fn 的表达式.
设 u1=F2F1, 则
u2=F3F2=1110F2F1=Au1.计算矩阵 A 的特征值和特征向量:
特征多项式
∣λI−A∣=λ−1−1−1λ=λ2−λ−1.从而得到
λ1=21+5对应的特征向量 x1=[λ1,1]T.
λ2=21−5对应的特征向量 x2=[λ2,1]T.
计算特征向量可由观察得到:
>λI−A=λ−1−1−1λab=0>因为 λ2−λ−1=0, 所以
>⎩⎨⎧>a=λ,>>b=1.>>所以
>S=[x1,x2]=λ11λ21>.
继而,
u1=10=c1x1+c2x2=c1λ11+c2λ21.解得
⎩⎨⎧c1=λ1−λ21,c2=−c1.带入 (∗) 式
un=SΛn−1c=λ11λ21λ1n−100λ2n−1λ1−λ21−λ1−λ21=λ1−λ21λ1n−λ2nλ1n−1−λ2n−1所以,
Fn=λ1−λ2λ1n−1−λ2n−1.指数矩阵 eAt
你能证明 eAt=SeΛtS−1 吗?
其中,
>eΛt=>>eλ1t>0>⋮>00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt>>