以二维空间为例,向量的坐标 [ 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[ 21
上面的公式也可以写成如下所示的矩阵乘法。
[
2
−
1
1
1
]
[
−
1
2
]
\left[ 2−111
令
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 [ 3102
A
=
[
0
−
1
1
0
]
A = \left [ 0−110
矩阵 A A A是一个将二维空间旋转 90 ° 90 \degree 90°的线性变换,容易想到,当空间旋转时没有向量会留在原来的张成空间内。所以对于 A A A而言,没有特征向量。
A
=
[
2
0
0
2
]
A = \left [ 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 [ 2−λ002−λ
旋转过程中,旋转轴上的向量会保留在它们张成的空间中,求得了该特征向量也就得到了旋转轴。而把三维旋转看做绕某个轴旋转,比直接考虑 3 × 3 3 \times 3 3×3的矩阵来的更为直观。
![]() | ![]() |
|---|
旋转时特征向量必须为1,因为旋转不会缩放任何向量。
![]() | ![]() |
|---|
如果基向量恰好是特征向量,会发生什么?
I
=
[
−
1
0
0
2
]
I = \left [ −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 [ 3002
而对于非对角矩阵而言,计算高痴迷的矩阵乘法简直是噩梦。但是如果你要计算的这个矩阵(k维)有足够的特征向量,这些特征向量同样可以张成一个k维的空间,那么我们可以通过线性变换的方式,利用特征向量求解原矩阵的高次幂乘法。
A
=
[
3
1
0
2
]
v
1
→
=
k
[
1
−
1
]
,
v
2
→
=
k
[
1
0
]
A = \left [ 3102
通过下图中的变换,我们可以得到一个新的矩阵,这个矩阵和原矩阵代表了相同的变换(在不同视角下,新矩阵以新基底表示)。对于 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
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