方阵特征值分解
首先来看矩阵乘法,我们可以将矩阵乘法看作是一种映射,以x' = Ax为例,通过左乘矩阵A将向量x映射到x'。
这里有两种观点:
- 以行的观点:
trans表示转置操作,x与A的每一个行向量的内积构成了x’的每个元素,即x’i = Aix = |Ai|cos<Ai, x>|x|;
一组cos<Ai, x>即为x在以A行向量为基底(单位化之后)的向量空间中的坐标。
由此可以看出x’的每个元素都与x在A的行向量组这组基底上的坐标有关,每个坐标值多乘了一个对应行向量的模。
- 以列的观点:
这要好理解得多了:x’为以x各元素为系数的A的列向量的线性组合。
这样得到的将会是,以A列向量组为基底,x为坐标的向量在单位矩阵I的行/列向量组为基底的向量空间中的坐标
下文主要使用到“以行的观点”。
再来看矩阵的逆,什么样的矩阵有逆矩阵?
那么逆矩阵的特殊性就来了,方阵A如果存在逆矩阵,那么就存在唯一的逆矩阵A',使得 A'Ax = A'Ax = x , 其中x是任意的。
于是,我们就可以来推导什么样的矩阵有逆矩阵了:
注意到x的任意性,那么如果存在非0向量x使得Ax=0,那么A在这种情况之下连撤销矩阵都不存在了(0向量无法映射到非0向量),那么A肯定不存在逆矩阵。
意思就是说:A不满秩 <=> Ax=0存在非0解 => A不可逆
那么有:A可逆 => A满秩
那么A满秩就一定可逆吗?是的,如果A满秩,那么A一定可以通过一系列的初等行/列变换(也可以包含某一行/列的数乘)变成单位矩阵,即:
初等变换矩阵是一定存在逆矩阵的(初等操作一定存在逆操作)
于是
A
′
=
P
n
′
.
.
.
P
2
′
P
1
′
A' = Pn'...P2'P1'
A′=Pn′...P2′P1′ 就是A的逆矩阵。
结论:A可逆 <=> A满秩
有了以上两点,我们就可以来讨论相似矩阵了
先说一个直观一点的看法:相似矩阵是同一个线性变换在不同向量空间(基底不同)中的表述。
如果有A = P'BP,其中P'是P的逆矩阵。还是向量左乘一个矩阵:
P与P’是相互对应的,P将向量映射到一个基底与P的行向量有关的向量空间中去,然后P‘可以将之映射回来。
于是事情已经很明了了:P将x映射到另一个向量空间中去,B在那个向量空间中执行线性变换,最后利用P’映射回来——逆矩阵是一种普适的”撤销“矩阵,这一系列的操作均与直接在原向量空间中左乘A等价!
于是我们说 A相似于 B
有了以上一大堆的铺垫,现在终于可以进入正题:
特征值分解
从等式
A
x
=
λ
x
Ax =\lambda x
Ax=λx 开始:
(
A
−
λ
I
)
x
=
0
→
(A - \lambda I)x = \overrightarrow{0}
(A−λI)x=0 A为方阵,I是单位矩阵,x非0
令
B
=
A
−
λ
I
B = A - \lambda I
B=A−λI
Bx=0要有非0解,即非零x属于N(B),那么B必须不满秩,即det(B)=0 ( det(B)=0 <=> B不满秩 <=> Bx=0有非0解,具体证明过程不再赘述.
于是有:
d
e
t
(
A
−
λ
I
)
=
0
det(A - \lambda I) = 0
det(A−λI)=0解此n次多项式就能得到特征值
λ
\lambda
λ
依据
λ
\lambda
λ求
(
A
−
λ
I
)
x
=
0
( A - \lambda I )x = 0
(A−λI)x=0即可得到对应的特征向量。
但是对于一个方阵,能求出一些特征值和特征向量,并不代表可以进行特征值分解,一个方阵能进行特征值分解的充要条件是具有n个线性无关的特征向量。
啰嗦一下一下,具有n个线性无关的特征向量是什么情形:
一个特征值至少有一个特征向量:因为特征值一定使det(B) = 0,即B不满秩,那么一定存在非零向量使得Bx=0,其基础解系即为一组特征向量(注意,这里的潜在意思也就是说一个特征值可以对应多个特征向量,例如单位矩阵I只有一个特征值1,但是任意n维向量都是它的特征向量)
各个特征值对应的各自的特征向量组所构建的向量空间之间不重叠:
证明:对于 A x 1 → = λ 1 x 1 → , A x 2 → = λ 2 x 2 → , λ 1 ! = λ 2 A \overrightarrow{x1} = \lambda1 \overrightarrow{x1} ,A \overrightarrow{x2} = \lambda2 \overrightarrow{x2},\lambda1 != \lambda2 Ax1=λ1x1,Ax2=λ2x2,λ1!=λ2。
假设 x 1 = c x 2 x1 = cx2 x1=cx2
那么 A x 1 = λ 1 x 1 → Ax1 = \lambda1 \overrightarrow{x1} Ax1=λ1x1
又有 A x 1 = λ 2 x 1 → Ax1 = \lambda2 \overrightarrow{x1} Ax1=λ2x1
λ 1 x 1 = λ 2 x 2 → \lambda1 x1 = \lambda2 \overrightarrow{x2} λ1x1=λ2x2, x 1 → , x 2 → \overrightarrow{x1},\overrightarrow{x2} x1,x2非0,矛盾!因此 x 1 ≠ c x 2 x1 \not= cx2 x1=cx2
类似地,可以推广至多一个特征值对应多个特征向量的情形。
于是,我们可以看出n个线性无关的特征向量的情形是:可以是n个特征值对应n个特征向量,也可以是少于n个特征值,其中存在一个特征值对应多个特征向量的情形,但是不同特征值对应的特征向量空间绝不可能重叠!
如果A能对角化,即有
A
=
P
B
P
′
,
B
=
Λ
=
d
i
a
g
o
n
a
l
(
λ
)
,
P
=
[
x
1
,
x
2
,
.
.
.
,
x
i
,
.
.
.
,
x
n
]
A = PBP', B= \Lambda = diagonal(\lambda),P=[ x1, x2, ..., xi, ..., xn]
A=PBP′,B=Λ=diagonal(λ),P=[x1,x2,...,xi,...,xn]为特征列向量组成的的nxn矩阵,于是,利用相似矩阵的的观点:
如果有Ax,那么等价于PBP’x,P’将x映射到另一个向量空间(以P’的行向量为基底的空间),B是一个对角矩阵,那么也就是将映射之后的向量(坐标)伸缩特征值倍,最后P将之映射回原来的向量空间。
于是从总的过程来说,若A可以进行特征值分解,那么Ax意味着将x沿着A的各个特征向量方向伸缩特征值倍。
附:对于非方阵A而言,如果需要对之做类似于特征值分解的信息提取,就需要用到奇异值分解(SVD)来解决问题,简而言之的做法就是分别对 A ′ A A'A A′A和 A A ′ AA' AA′做特征值分解,得到形如 A = U Σ V ′ A = U\Sigma V' A=UΣV′的形式