本文为3blue1brown
视频《线性代数的本质》的笔记。只记录了重要的内容,至于细节或者看不懂的地方,可以观看3blue1brown
的视频。
1. 向量与空间
1.1 向量
1.1.1 向量定义
向量指具有大小和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量(物理学中称标量),数量(或标量)只有大小,没有方向。
向量表示空间中的一种运动关系,正负号表示运动方向。如向量 [ 1 − 2 ] \left[ \begin{array}{c} 1\\ -2\\ \end{array} \right] [1−2]表示在一个二维坐标系中,从原点出发,先沿 x x x轴正方向前进1,再沿 y y y轴负方向前进2,同理可以推导到多维空间。
1.1.2 向量加法
向量加法
表示两次运动的叠加。如:
[
1
2
]
+
[
3
4
]
=
[
1
+
3
2
+
4
]
=
[
4
6
]
\left[ \begin{array}{c} 1\\ 2\\ \end{array} \right] +\left[ \begin{array}{c} 3\\ 4\\ \end{array} \right] =\left[ \begin{array}{c} 1+3\\ 2+4\\ \end{array} \right] =\left[ \begin{array}{c} 4\\ 6\\ \end{array} \right]
[12]+[34]=[1+32+4]=[46]
表示先按照第一个向量运动,再按照第二个向量运动。两个运动叠加的结果等同于在
x
x
x轴和
y
y
y轴总位移向量的运动结果。
因此可以得到向量加法的运算规则为:对应分量相加。
1.1.3 向量数乘
向量乘以数字表示运动的缩放。如:
3
[
1
2
]
=
[
3
6
]
3\left[ \begin{array}{c} 1\\ 2\\ \end{array} \right] =\left[ \begin{array}{c} 3\\ 6\\ \end{array} \right]
3[12]=[36]
表示把原来的向量运动扩大 3 3 3倍。
1.2 线性组合
向量数乘的和称为向量的线性组合
。任何向量本质上都是由基向量缩放再相加
得到的。例如:
v
=
[
x
y
z
]
=
x
i
+
y
j
+
z
k
\boldsymbol{v}=\left[ \begin{array}{c} x\\ y\\ z\\ \end{array} \right] =x\boldsymbol{i}+y\boldsymbol{j}+z\boldsymbol{k}
v=
xyz
=xi+yj+zk则向量
v
\boldsymbol{v}
v就是向量
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j、
k
\boldsymbol{k}
k分别缩放
x
x
x、
y
y
y、
z
z
z倍后相加的结果。
其中向量
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j、
k
\boldsymbol{k}
k被称为一组基向量
。基向量实现了实数对与向量之间转化。当然,基向量的选取不同,表示的数字也不相同。
1.3 空间
给定向量线性组合得到的向量集合,称为给定向量张成(span)的空间。
对于向量
α
=
x
i
+
y
j
\boldsymbol{\alpha }=x\boldsymbol{i}+y\boldsymbol{j}
α=xi+yj,如果让两个标量
x
x
x和
y
y
y同时自由变化,大部分情况下,可以到达平面中的任意一点,而向量
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j张成的空间,就是一个二维平面空间。
当向量
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j共线时,所有向量都被限制在一条过原点的直线上,此时形成的就是一个一维直线空间。
当向量
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j都为零向量时,此时所有向量均被限制在原点。
1.4 线性相关与线性无关
一组向量中至少有一个是多余的,没有对张成空间做出任何贡献,或者说,移除一组向量中的某一个向量不会减小张成的空间,称它们是线性相关(Linearly dependent)的。
另一种表述是,其中一个向量可以表述为其他向量的线性组合。因为这个向量已经落在其他向量张成的空间之中,所以该向量没有对张成空间作出贡献。
如果所有的向量都给张成的空间添加了新的维度,则称他们是线性无关(Linearly independent)的。
上图中,对于任意的
a
a
a、
b
b
b,均不能使
u
\boldsymbol{u}
u落在
v
\boldsymbol{v}
v、
w
\boldsymbol{w}
w张成的空间中,即:
u
\boldsymbol{u}
u增加了一个空间维度,因此
u
\boldsymbol{u}
u、
v
\boldsymbol{v}
v、
w
\boldsymbol{w}
w是线性无关的。
证明线性无关要说明
u
≠
a
v
+
b
w
\boldsymbol{u}\ne a\boldsymbol{v}+b\boldsymbol{w}
u=av+bw
对任意的
a
a
a、
b
b
b成立,因此常用反证法
。
1.5 基
向量空间的一组基是张成(span)该空间的一个线性无关
的向量集
。
如果空间中的一组向量是线性无关
的,并且它们的任意线性组合
都可以表示为空间里的一个向量,则这组向量称为该空间的基。
一个空间的基并不唯一
,但它们的数量是唯一的,并且基向量的个数等于空间的维数。
在三维空间中,一组常见的基向量是:
i
=
[
1
0
0
]
T
j
=
[
0
1
0
]
T
k
=
[
0
0
1
]
T
\boldsymbol{i}=\left[ \begin{matrix} 1& 0& 0\\ \end{matrix} \right] ^T \\ \boldsymbol{j}=\left[ \begin{matrix} 0& 1& 0\\ \end{matrix} \right] ^T \\ \boldsymbol{k}=\left[ \begin{matrix} 0& 0& 1\\ \end{matrix} \right] ^T
i=[100]Tj=[010]Tk=[001]T
三维空间里任意向量均可表示为这三个向量的线性组合。
2. 矩阵与线性变换
2.1 变换与线性变换
变换本质上是函数
(function)的一种。线性代数里,变换通常指输入一个向量并输出一个向量的过程。
变换本质上是函数的一种,因此不存在一个向量映射到多个向量。
若一个变换
L
\boldsymbol{L}
L满足下面两条性质:
L
(
u
±
v
)
=
L
(
u
)
±
L
(
v
)
L
(
k
u
)
=
k
L
(
u
)
\begin{aligned} \boldsymbol{L}\left( \boldsymbol{u}\pm \boldsymbol{v} \right) &=\boldsymbol{L}\left( \boldsymbol{u} \right) \pm \boldsymbol{L}\left( \boldsymbol{v} \right) \\ \boldsymbol{L}\left( k\boldsymbol{u} \right) &=k\boldsymbol{L}\left( \boldsymbol{u} \right) \end{aligned}
L(u±v)L(ku)=L(u)±L(v)=kL(u)
则称
L
\boldsymbol{L}
L是线性的。
直观来讲,线性变换就是,任意直线变换后还是直线,并且原点位置固定不变。
线性变换保持网格线平行且等距。
2.2 矩阵向量乘法与线性变换
了解了线性变换,一个自然而然的问题便是,如何描述一个线性变换?
对于向量
v
=
[
−
1
2
]
T
\boldsymbol{v}=\left[ \begin{matrix} -1& 2\\ \end{matrix} \right] ^T
v=[−12]T,可以将其写成向量线性组合的形式:
v
=
−
1
i
+
2
j
\boldsymbol{v}=-1\boldsymbol{i}+2\boldsymbol{j}
v=−1i+2j
其中
i
\boldsymbol{i}
i、
j
\boldsymbol{j}
j为基向量。
经过某种变换后,可以得到下图。其中蓝色网格线为变换后的基坐标表示。
线性变换的一个重要推论就是:线性变换不改变基向量的线性组合方式。
变换前,向量
v
\boldsymbol{v}
v(黄色箭头)可以表示为:
v
=
−
1
i
+
2
j
\boldsymbol{v}=-1\boldsymbol{i}+2\boldsymbol{j}
v=−1i+2j
那么变换后的向量
v
′
\boldsymbol{v}\prime
v′可以表示为:
v
′
=
−
1
i
′
+
2
j
′
\boldsymbol{v}\prime=-1\boldsymbol{i}\prime+2\boldsymbol{j}\prime
v′=−1i′+2j′
其中
i
′
\boldsymbol{i}\prime
i′,
j
′
\boldsymbol{j}\prime
j′为变换后的基向量(蓝色网格)。
可见两者的线性组合方式相同。
经过变换后的向量
i
′
\boldsymbol{i}\prime
i′与向量
j
′
\boldsymbol{j}\prime
j′,分别是
[
1
−
2
]
T
\left[ \begin{matrix} 1& -2\\ \end{matrix} \right]^T
[1−2]T和
[
3
0
]
T
\left[ \begin{matrix} 3& 0\\ \end{matrix} \right] ^T
[30]T,经过计算,向量
v
′
\boldsymbol{v}\prime
v′一定落在向量
(
5
,
2
)
\left( 5,2 \right)
(5,2)上。
事实上,只要知道变换后的向量
i
′
\boldsymbol{i}\prime
i′与
j
′
\boldsymbol{j}\prime
j′,就可以推断任意向量在变换之后的位置。例如,对于原坐标为
(
x
,
y
)
\left( x,y \right)
(x,y)的任意向量,就有
[
x
y
]
→
x
i
′
+
y
j
′
=
x
[
1
−
2
]
+
y
[
3
0
]
=
[
x
+
3
y
−
2
x
]
\left[ \begin{array}{c} x\\ y\\ \end{array} \right] \rightarrow x\boldsymbol{i}\prime+y\boldsymbol{j}\prime=x\left[ \begin{array}{c} 1\\ -2\\ \end{array} \right] +y\left[ \begin{array}{c} 3\\ 0\\ \end{array} \right] =\left[ \begin{array}{c} x+3y\\ -2x\\ \end{array} \right]
[xy]→xi′+yj′=x[1−2]+y[30]=[x+3y−2x]
由此可见,一个二维的线性变换仅由四个数字完全确定,即变换后的向量
i
′
\boldsymbol{i}\prime
i′与
j
′
\boldsymbol{j}\prime
j′。
而如果将向量
i
′
\boldsymbol{i}\prime
i′与
j
′
\boldsymbol{j}\prime
j′放到一个
2
×
2
2\times 2
2×2的格子里,便会得到一个
2
×
2
2\times 2
2×2的矩阵,这便是变换矩阵
。
一般情况下,给定任意
2
×
2
2\times 2
2×2矩阵
A
\boldsymbol{A}
A:
[
a
b
c
d
]
\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right]
[acbd]
它的两个列向量可以认为是向量
i
\boldsymbol{i}
i与
j
\boldsymbol{j}
j经过某一变换
L
\boldsymbol{L}
L得到的。给定任意向量
[
x
y
]
T
\left[ \begin{matrix} x& y\\ \end{matrix} \right] ^T
[xy]T经过变换
L
\boldsymbol{L}
L后得到的向量可以表示为:
[
a
b
c
d
]
[
x
y
]
=
[
a
x
+
b
y
c
x
+
d
y
]
\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right] \left[ \begin{array}{c} x\\ y\\ \end{array} \right] =\left[ \begin{array}{c} ax+by\\ cx+dy\\ \end{array} \right]
[acbd][xy]=[ax+bycx+dy]
即矩阵 A \boldsymbol{A} A乘向量 [ x y ] T \left[ \begin{matrix} x& y\\ \end{matrix} \right] ^T [xy]T的结果。
实际上,完全可以把矩阵的列向量看作是变换后的基向量,矩阵向量的乘法就是矩阵列向量缩放再相加的过程。因此,一个矩阵其实就是代表了一种线性变换,矩阵实际上就是变换后基向量的组合,而矩阵向量乘法就是计算线性变换作用于给定向量的一种途径。
2.2.1 旋转变换
如果将空间逆时针旋转90°,则基向量
i
\boldsymbol{i}
i与
j
\boldsymbol{j}
j分别落在
(
0
,
1
)
\left( 0,1 \right)
(0,1)和
(
−
1
,
0
)
\left( -1,0 \right)
(−1,0),因此这个变换矩阵
A
\boldsymbol{A}
A可以写成:
[
0
−
1
1
0
]
\left[ \begin{matrix} 0& -1\\ 1& 0\\ \end{matrix} \right]
[01−10]想要算出任意向量逆时针旋转90°后的位置,只需将它左乘旋转矩阵即可。
2.2.2 剪切变换
如果让向量
i
\boldsymbol{i}
i保持不变,将
j
\boldsymbol{j}
j的坐标移到
(
1
,
1
)
\left( 1,1 \right)
(1,1)上,得到的变换称为剪切变换。该剪切矩阵可以表示为:
[
1
1
0
1
]
\left[ \begin{matrix} 1& 1\\ 0& 1\\ \end{matrix} \right]
[1011]同样地,想要算出任意向量经过剪切变换后的位置,只需将它左乘剪切矩阵即可。
2.3 矩阵乘法与线性变换复合
在一个线性变换之后再进行另一个线性变换,该过程称为前两个独立变换的复合变换
。
例如,对一个向量
[
x
y
]
T
\left[ \begin{matrix} x& y\\ \end{matrix} \right] ^T
[xy]T先进行旋转变换
[
0
−
1
1
0
]
\left[ \begin{matrix} 0& -1\\ 1& 0\\ \end{matrix} \right]
[01−10],再进行剪切变换
[
1
1
0
1
]
\left[ \begin{matrix} 1& 1\\ 0& 1\\ \end{matrix} \right]
[1011],可以得到:
[
1
1
0
1
]
[
0
−
1
1
0
]
[
x
y
]
=
[
1
−
1
1
0
]
[
x
y
]
\left[ \begin{matrix} 1& 1\\ 0& 1\\ \end{matrix} \right] \left[ \begin{matrix} 0& -1\\ 1& 0\\ \end{matrix} \right] \left[ \begin{array}{c} x\\ y\\ \end{array} \right] =\left[ \begin{matrix} 1& -1\\ 1& 0\\ \end{matrix} \right] \left[ \begin{array}{c} x\\ y\\ \end{array} \right]
[1011][01−10][xy]=[11−10][xy]复合矩阵
[
1
−
1
1
0
]
\left[ \begin{matrix} 1& -1\\ 1& 0\\ \end{matrix} \right]
[11−10]为前两个矩阵相乘地结果。因此两个矩阵相乘的几何意义就是两个线性变换的相继作用。
如果将矩阵
A
=
[
a
b
c
d
]
\boldsymbol{A}=\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right]
A=[acbd]视为一种线性变换,矩阵
B
=
[
e
f
g
h
]
\boldsymbol{B}=\left[ \begin{matrix} \boldsymbol{e}& f\\ g& h\\ \end{matrix} \right]
B=[egfh]视为另一种线性变换,若对向量先进行
B
\boldsymbol{B}
B变换在进行
A
\boldsymbol{A}
A变换,则这一过程可表示为:
A
B
v
=
[
a
b
c
d
]
[
e
f
g
h
]
[
x
y
]
\boldsymbol{ABv}=\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right] \left[ \begin{matrix} e& f\\ g& h\\ \end{matrix} \right] \left[ \begin{array}{c} x\\ y\\ \end{array} \right]
ABv=[acbd][egfh][xy]前面提到过,可以把矩阵的列向量看作是变换后的基向量。若只考虑上面的矩阵
A
\boldsymbol{A}
A、
B
\boldsymbol{B}
B,把矩阵
B
\boldsymbol{B}
B的列向量看作是经过
B
\boldsymbol{B}
B变换后的基向量,然后再进行
A
\boldsymbol{A}
A变换,也就是分别对向量
[
e
g
]
T
\left[ \begin{matrix} e& g\\ \end{matrix} \right] ^T
[eg]T和
[
f
h
]
T
\left[ \begin{matrix} f& h\\ \end{matrix} \right] ^T
[fh]T进行
A
\boldsymbol{A}
A变换:
[
a
b
c
d
]
[
e
g
]
=
e
[
a
c
]
+
g
[
b
d
]
=
[
a
e
+
b
g
c
e
+
d
g
]
[
a
b
c
d
]
[
f
h
]
=
f
[
a
c
]
+
h
[
b
d
]
=
[
a
f
+
b
h
c
f
+
d
h
]
\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right] \left[ \begin{array}{c} e\\ g\\ \end{array} \right] =e\left[ \begin{array}{c} a\\ c\\ \end{array} \right] +g\left[ \begin{array}{c} b\\ d\\ \end{array} \right] =\left[ \begin{array}{c} ae+bg\\ ce+dg\\ \end{array} \right] \\ \ \ \\ \left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right] \left[ \begin{array}{c} f\\ h\\ \end{array} \right] =f\left[ \begin{array}{c} a\\ c\\ \end{array} \right] +h\left[ \begin{array}{c} b\\ d\\ \end{array} \right] =\left[ \begin{array}{c} af+bh\\ cf+dh\\ \end{array} \right]
[acbd][eg]=e[ac]+g[bd]=[ae+bgce+dg] [acbd][fh]=f[ac]+h[bd]=[af+bhcf+dh]于是,我们便得到了矩阵乘法的运算公式:
[
a
b
c
d
]
[
e
f
g
h
]
=
[
a
e
+
b
g
a
f
+
b
h
c
e
+
d
g
c
f
+
d
h
]
\left[ \begin{matrix} a& b\\ c& d\\ \end{matrix} \right] \left[ \begin{matrix} e& f\\ g& h\\ \end{matrix} \right] =\left[ \begin{matrix} ae+bg& af+bh\\ ce+dg& cf+dh\\ \end{matrix} \right]
[acbd][egfh]=[ae+bgce+dgaf+bhcf+dh]
同样地,该结果可以认为是矩阵
A
\boldsymbol{A}
A的列向量
[
a
c
]
T
\left[ \begin{matrix} a& c\\ \end{matrix} \right] ^T
[ac]T和
[
b
d
]
T
\left[ \begin{matrix} b& d\\ \end{matrix} \right] ^T
[bd]T分别缩放
e
e
e、
g
g
g倍和
f
f
f、
h
h
h倍后再相加,即
A
\boldsymbol{A}
A的列向量的线性组合。
矩阵乘法的实质是两种线性变换相继作用的结果,两种变换的先后顺序会导致变换结果不相同,因此通常情况下:
A
B
≠
B
A
\boldsymbol{AB}\ne \boldsymbol{BA}
AB=BA
上面两张图可以看出,先剪切再旋转
与先旋转再剪切
得到的结果是不同的。
2.4 三维空间的线性变换
三维空间的线性变换与二维空间的类似,缩放再相加
的过程仍适用。例如矩阵与向量相乘,要找到向量变换后的位置,只需将它的坐标与对应列向量相乘再将结果相加即可。
两个矩阵相乘也是类似。例如两个
3
×
3
3\times 3
3×3的矩阵相乘,可以把右侧矩阵的列向量看作经过第一个变换后的基向量,然后分别对三个基向量进行第二个变换。
2.5 行列式
变换矩阵
A
\boldsymbol{A}
A将空间
X
\boldsymbol{X}
X变换为空间
Y
\boldsymbol{Y}
Y,则空间中的任意区域将被拉伸或者放缩,任意区域变换后得到的区域的面积(二维)或者体积(三维),与变换前的面积或体积的比值称为变换矩阵
A
\boldsymbol{A}
A的行列式,记为
det
(
A
)
\det \left( \boldsymbol{A} \right)
det(A)。
- det ( A ) = 0 \det \left( \boldsymbol{A} \right) =0 det(A)=0时, A \boldsymbol{A} A变换是降维变换,将空间压缩到更小的维度,比如三维空间的体积变换成面、线或点;二维空间的面积变换成点或线。此时,矩阵 A \boldsymbol{A} A的列向量线性相关。
- det ( A ) > 0 \det \left( \boldsymbol{A} \right) >0 det(A)>0时,经过 A \boldsymbol{A} A变换后,空间未发生翻转或者空间定向没有发生改变,或者说,基向量的相对位置没有发生改变。
-
det
(
A
)
<
0
\det \left( \boldsymbol{A} \right) <0
det(A)<0时,空间发生翻转或者空间定向发生变化(基向量的相对位置发生变化),但行列式的
绝对值
仍是变换前后面积或体积的比值。
行列式正负的判断,看基向量的相对位置。
对于二维空间,若向量
i
\boldsymbol{i}
i在向量
j
\boldsymbol{j}
j的右侧,则基向量的相对位置没有发生改变。否则,则说明空间定向发生变化,行列式小于零。
对于三维空间,采用右手定则
判断。右手食指指向向量
i
\boldsymbol{i}
i的方向,伸出中指指向向量
j
\boldsymbol{j}
j的方向,当竖起大拇指时,拇指指向的就是向量
k
\boldsymbol{k}
k的方向。若不满足这种情况,则说明空间定向发生变化,
det
(
A
)
<
0
\det \left( \boldsymbol{A} \right) <0
det(A)<0。