特征值和特征向量(3Blue1Brown学习笔记)
基变换
以原基底观测新基底表示的向量
以二维空间为例,向量的坐标 [ a b ] T [a \,\, b]^T [ab]T,这意味着从起点到他的终点需要向右移动三个单位,向上移动2个单位。以基底角度看,向量就是对基底的拉伸或者压缩。坐标的第一个元素是缩放 i i i,方向为 → \rightarrow →,坐标的第二个元素是缩放 j j j方向是 ↑ \uparrow ↑。
i i i和 j j j是二维空间最为常用的基向量,如果我们考虑使用不同于 i i i和 j j j的一组基向量表示空间中的向量,那么如何在这两组基向量中转换同一个向量将是一个重要的命题。我们将 i i i和 j j j定义为"Ours"将新的一组基底定义为"Jennifer’s",它们分别对应图中蓝色的 π \pi π和粉色的 π \pi π。使用Ours来描述Jennifer‘s的基底,可以获得这种表示 b 1 → = [ 2 1 ] T \overrightarrow{b_1} = [2 \,\, 1]^T b1=[21]T以及 b 2 → = [ − 1 1 ] T \overrightarrow{b_2}=[-1 \,\, 1]^T b2=[−11]T。

Ours下的 [ 1 2 ] T [1 \,\, 2]^T [12]T 和Jennifer‘s下的 [ 1 2 ] T [1 \,\, 2]^T [12]T会完全不同。因为 b 1 → \overrightarrow{b_1} b1和 b 2 → \overrightarrow{b_2} b2就是她认为的 [ 1 0 ] T [1\,\, 0]^T [10]T和 [ 0 1 ] T [0 \,\, 1]^T [01]T。
![]() | ![]() |
---|
二维空间中一个确定的向量可以用Ours和Jennifer’s两个体系描述。这可以类比于中国人和美国人都在表达“你好”,中国人说的就是“你好”,美国人说“Hello”。为了更方便的交流,我们需要找出这两个语言体系互相转换的规则。 Jennifer‘s描述了一个向量 [ − 1 2 ] T [-1 \,\, 2]^T [−12]T,这个向量在Ours下是如何表示的呢。借助之前的分析Jennifer’s的基底用Ours描述是 b 1 → = [ 2 1 ] T \overrightarrow{b_1} = [2 \,\, 1]^T b1=[21]T和 b 2 → = [ − 1 1 ] T \overrightarrow{b_2}=[-1 \,\, 1]^T b2=[−11]T。可以得到如下的推导,也就完成了从Jennifer’s 到Ours语言体系的转换。
v ^ = − 1 b 1 ^ + 2 b 2 ^ = − 1 [ 2 1 ] + 2 [ − 1 1 ] = [ − 4 1 ] = − 4 [ 1 0 ] + 1 [ 0 1 ] = − 4 i ^ + 1 j ^ \hat{v}=-1\hat{b_1} + 2\hat{b_2} = -1\left[ \begin{array}{c} 2\\ 1\\ \end{array} \right] +2\left[ \begin{array}{c} -1\\ 1\\ \end{array} \right] =\left[ \begin{array}{c} -4\\ 1\\ \end{array} \right] = -4 \left[ \begin{array}{c} 1 \\ 0 \\ \end{array} \right] + 1 \left[ \begin{array}{c} 0 \\ 1 \\ \end{array} \right] = -4\hat{i} + 1\hat{j} v^=−1b1^+2b2^=−1[21]+2[−11]=[−41]=−4[10]+1[01]=−4i^+1j^

上面的公式也可以写成如下所示的矩阵乘法。
[
2
−
1
1
1
]
[
−
1
2
]
\left[ \begin{array}{c} 2 & -1\\ 1 & 1\\ \end{array} \right] \left[ \begin{array}{c} -1\\ 2\\ \end{array} \right]
[21−11][−12]
令
A
=
[
[
2
1
]
T
[
−
1
1
]
T
]
A = [[2 \,\, 1]^T \,\, [-1 \,\, 1]^T]
A=[[21]T[−11]T],
A
A
A这个矩阵的两列也分别对应了
b
1
→
\overrightarrow{b_1}
b1和
b
2
→
\overrightarrow{b_2}
b2,也就是Ours下
b
1
→
\overrightarrow{b_1}
b1和
b
2
→
\overrightarrow{b_2}
b2的坐标,可以把它解读为我们对Jennifer’s向量的“误解”。可以这样说,我们对Jennifer’s的语言体系持有一个有色眼镜(上述矩阵),无论Jennifer’s说什么,我们都要用这个有色眼镜(矩阵)去看才能理解她表达的意思。
到这里,我们就知道了如何将Jennifer’s表达的语言转换到Ours的语言体系里,那么如何将Ours语言体系的内容转换到Jennifer’s的语言体系呢。
以新基底观测原基底表示的向量
A A A这个矩阵可以将Jennifer’s的语言转换到Ours的语言,那么 A − 1 A^{-1} A−1就可以将Ours的语言转换到Jennifer’s语言。下图中,网格到网格的变换可以这样理解,我们想要理解另一个语言体系,那首先要把我们的视角(基底)转换到另一套语言体系的视角(基底),然后再去观察这个视角里是如何对基底进行缩放的。就可以得到我们视角下另一套语言表述的内容。
![]() | ![]() |
---|
可以看下面的这个转换的例子。

Jennifer如何描述空间旋转 90 ° 90 \degree 90°呢。在Ours下 [ [ 0 1 ] T [ − 1 0 ] T ] [[0\,\, 1]^T \,\, [-1\,\, 0]^T] [[01]T[−10]T]可以表示为对空间的逆时针旋转。如下图,我们首先将Jennifer’s下的向量转换到Ours下,然后旋转,然后再将语言体系转换到Jennifer’s 下即可。其中, [ − 1 2 ] T [-1 \,\, 2]^T [−12]T可以是任意向量。

如果我们单独看这个变换矩阵的话,可以发现它接受一个Jennifer’s的向量,返回一个Jennifer’s下逆时针旋转 90 ° 90 \degree 90°的向量。

我们将变换矩阵写成如下的形式,这是一张数学上的转移作用,
M
M
M为常见的一种变换,两边的矩阵代表着转移作用,也就是视角上的转化。
A
−
1
M
A
A^{-1}MA
A−1MA
特征值和特征向量

对于线性变换 [ [ 3 0 ] T [ 1 2 ] T ] [[3\,\, 0]^T \,\, [1 \,\, 2]^T] [[30]T[12]T], x x x轴上的向量并没有改变方向(共线)只是在该变换下出现了一定量的缩放。也称这种情况为,向量留在了自己张成的空间里。

对于 [ [ 3 0 ] T [ 1 2 ] T ] [[3\,\, 0]^T \,\, [1 \,\, 2]^T] [[30]T[12]T],有两个张成空间上的向量都只是缩放为了原来的某个倍数,其他张成空间上的向量都离开了它们本来张成的空间。这些留在原来原来空间的向量就是这个线性变换的特征向量,这些向量变换后缩放的倍数就是特征值。

可以用如下公式表示。 A A A是线性变换, v → \overrightarrow{v} v是特征向量, λ \lambda λ是特征值。
A
v
→
=
λ
v
→
A
v
→
=
(
λ
I
)
v
→
A
v
→
−
(
λ
I
)
v
→
=
0
→
(
A
−
λ
I
)
v
→
=
0
→
A \overrightarrow{v} = \lambda \overrightarrow{v} \\ A \overrightarrow{v} = (\lambda I)\overrightarrow{v} \\ A \overrightarrow{v} - (\lambda I)\overrightarrow{v} = \overrightarrow{0} \\ (A - \lambda I)\overrightarrow{v} = \overrightarrow{0} \\
Av=λvAv=(λI)vAv−(λI)v=0(A−λI)v=0
求解特征值和特征向量就是求解一个非零
v
→
\overrightarrow{v}
v使得等式成立。当
A
−
λ
I
A- \lambda I
A−λI将空间压缩后,存在非零向量使得矩阵和它的乘积为零向量。
![]() | ![]() |
---|
举例
有特征向量
A = [ 3 1 0 2 ] A v → = λ v → ( A − λ I ) v → = 0 → det ( A − λ I ) = 0 λ = 2 o r λ = 3 A = \left [ \begin{matrix} 3 & 1 \\ 0 & 2 \end{matrix} \right] \\ A \overrightarrow{v} = \lambda \overrightarrow{v} \\ (A - \lambda I)\overrightarrow{v} = \overrightarrow{0} \\ \det (A - \lambda I) = 0 \\ \lambda = 2 \,\, or \,\, \lambda = 3 A=[3012]Av=λv(A−λI)v=0det(A−λI)=0λ=2orλ=3
无特征向量
A = [ 0 − 1 1 0 ] A = \left [ \begin{matrix} 0 & -1 \\ 1 & 0 \end{matrix} \right] \\ A=[01−10]
矩阵 A A A是一个将二维空间旋转 90 ° 90 \degree 90°的线性变换,容易想到,当空间旋转时没有向量会留在原来的张成空间内。所以对于 A A A而言,没有特征向量。

多个特征向量
A = [ 2 0 0 2 ] A = \left [ \begin{matrix} 2 & 0 \\ 0 & 2 \end{matrix} \right] \\ A=[2002]
上面这个线性变换把二维空间的两个基底分别拉伸了2倍,平面内的所有向量也被拉伸了2倍,所以每一个向量都是该线性变换的特征向量。
( A − λ I ) v → = 0 A − λ I = [ 2 − λ 0 0 2 − λ ] det ( A − λ I ) = 0 λ = 2 [ 0 0 0 0 ] v → = 0 (A-\lambda I) \overrightarrow{v} = 0 \\ A - \lambda I = \left [ \begin{matrix} 2-\lambda & 0 \\ 0 & 2-\lambda \end{matrix} \right] \\ \det(A - \lambda I) = 0 \\ \lambda = 2 \\ \left [ \begin{matrix} 0 & 0 \\ 0 & 0 \end{matrix} \right] \overrightarrow{v} = 0 (A−λI)v=0A−λI=[2−λ002−λ]det(A−λI)=0λ=2[0000]v=0
特征值和特征向量在三维旋转中的应用
旋转过程中,旋转轴上的向量会保留在它们张成的空间中,求得了该特征向量也就得到了旋转轴。而把三维旋转看做绕某个轴旋转,比直接考虑 3 × 3 3 \times 3 3×3的矩阵来的更为直观。
![]() | ![]() |
---|
旋转时特征向量必须为1,因为旋转不会缩放任何向量。
![]() | ![]() |
---|
对角矩阵
如果基向量恰好是特征向量,会发生什么?

I = [ − 1 0 0 2 ] I = \left [ \begin{matrix} -1 & 0 \\ 0 & 2 \end{matrix} \right] I=[−1002]
结合上面的计算过程,我们能很快的口算出 I I I的特征向值是 − 1 -1 −1和 2 2 2,对应的特征向量分别是 k [ − 1 0 ] T k [-1\,\,0]^T k[−10]T和 k [ 0 2 ] T k [0\,\,2]^T k[02]T
对角矩阵计算乘法是很便利的。
[
3
0
0
2
]
[
3
0
0
2
]
[
3
0
0
2
]
=
[
3
3
0
0
2
3
]
\left [ \begin{matrix} 3 & 0 \\ 0 & 2 \end{matrix} \right] \left [ \begin{matrix} 3 & 0 \\ 0 & 2 \end{matrix} \right] \left [ \begin{matrix} 3 & 0 \\ 0 & 2 \end{matrix} \right] = \left [ \begin{matrix} 3^3 & 0 \\ 0 & 2^3 \end{matrix} \right]
[3002][3002][3002]=[330023]
而对于非对角矩阵而言,计算高痴迷的矩阵乘法简直是噩梦。但是如果你要计算的这个矩阵(k维)有足够的特征向量,这些特征向量同样可以张成一个k维的空间,那么我们可以通过线性变换的方式,利用特征向量求解原矩阵的高次幂乘法。

A = [ 3 1 0 2 ] v 1 → = k [ 1 − 1 ] , v 2 → = k [ 1 0 ] A = \left [ \begin{matrix} 3 & 1 \\ 0 & 2 \end{matrix} \right] \\ \overrightarrow{v_1} = k \left [ \begin{matrix} 1 \\ -1 \end{matrix} \right],\,\, \overrightarrow{v_2} = k \left [ \begin{matrix} 1 \\ 0 \end{matrix} \right] A=[3012]v1=k[1−1],v2=k[10]
通过下图中的变换,我们可以得到一个新的矩阵,这个矩阵和原矩阵代表了相同的变换(在不同视角下,新矩阵以新基底表示)。对于 A A A而言,这个过程叫做矩阵的对角化,并非所有矩阵都能对角化。

可对角矩阵的定义: 若存在可逆矩阵
S
S
S,使得
S
−
1
A
S
S^{−1}AS
S−1AS为对角矩阵,则称为矩阵
A
A
A是可对角化的(diagonalized)。
S
−
1
A
S
=
Λ
o
r
A
=
S
Λ
S
−
1
S^{-1} A S = \varLambda \\ or \,\, A = S \varLambda S^{-1}
S−1AS=ΛorA=SΛS−1
那么,矩阵的幂可以这样计算。
A
n
=
(
S
Λ
S
−
1
)
n
=
(
S
Λ
S
−
1
)
(
S
Λ
S
−
1
)
⋯
(
S
Λ
S
−
1
)
=
S
Λ
(
S
−
1
S
)
Λ
(
S
−
1
S
)
⋯
(
S
−
1
S
)
Λ
S
−
1
=
S
Λ
n
S
−
1
\begin{aligned} A^{n} &= (S \varLambda S^{-1}) ^ n \\ &= (S \varLambda S^{-1})(S \varLambda S^{-1}) \cdots (S \varLambda S^{-1}) \\ &= S \varLambda (S^{-1}S) \varLambda (S^{-1} S) \cdots (S^{-1} S) \varLambda S^{-1} \\ &= S \varLambda ^ n S^{-1} \end{aligned}
An=(SΛS−1)n=(SΛS−1)(SΛS−1)⋯(SΛS−1)=SΛ(S−1S)Λ(S−1S)⋯(S−1S)ΛS−1=SΛnS−1