向量、矩阵和行列式
|
字面意思 |
实际意思 |
向量 |
排成一列的数字 |
有向线段(带有方向的线段)、空间内的点 |
矩阵 |
拍成矩形的数字 |
空间到空间的 映射 |
行列式 |
麻烦的计算 |
上面映射对应的「体积扩大率」 |
基底
下面两个条件满足,一组向量 (e1,⋯,en) 才能称为基地:
维数
维数 = 基向量的个数 = 坐标的分量数
矩阵
矩阵就是映射(变换)
鸡兔同笼问题
鸡有 x1 只,兔有 x2 只,笼中头的总数为 y1 和脚的总数为 y2,可以表示为
y1y2=a11x1+a12x2=x1+x2=a21x1+a22x2=2x1+4x2
用矩阵表示就是:
(y1y2)=(a11a21a12a22)(x1x2)=(1214)(x1x2)
今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
代入 y1=35,y2=94,则:
(3594)=(1214)(x1x2)
用 Mathematica 解:
1 2 3
| y = ({{35}, {94}}); m = ({{1, 1}, {2, 4}}); LinearSolve[m, y] // MatrixForm
|
结果为 (2312),那么鸡就有 23 只,兔子有 12 只。
加法、数乘、乘积
满足 f(x+y)=f(x)+f(y) 以及 f(cx)=cf(x) 的映射 f 称为 线性映射
矩阵的乘积就是映射的合成(注意变换的先后顺序)
矩阵的乘方就是映射的迭代
对角矩阵
非对角元素全部为 0 的矩阵称为 对角矩阵:
例如:(2005)
由于绝大多元素为 0,通常会用 diag 记法
a100000a200000a300000a400000a5=diag(a1,a2,a3,a4,a5)
Mathematica 中对应的函数为 DiagonalMatrix
1
| DiagonalMatrix[{a, b, c, d, e}] // MatrixForm
|
对角矩阵表示的映射时「沿着坐标轴伸缩」,其中对角元素就是各个轴伸缩的倍率。
逆矩阵
逆矩阵就意味着逆(反向)映射
对于 方阵 A,它的逆映射对应的矩阵称为 A 的逆矩阵,记为 A−1。对于任意的向量 x,若有 Ax=y,则有 A−1y=x
(AB)−1=B−1A−1(理解为,先包装了 B,然后再包装了一层 A,那么反过来,就肯定先拆掉外层的 A,才能拆掉里面的 B)
上面的鸡兔同笼,也可以通过求逆矩阵,用 Mathematica 就是:
1 2 3
| y = ({{35}, {94}}); m = ({{1, 1}, {2, 4}}); Inverse[m] . y // MatrixForm
|
Matlab 则是:
1 2 3
| y = [35 94]'; m = [1 1; 2 4]; inv(m) * y
|
坐标变换与矩阵
- 坐标变换可以用「乘以方阵 A」的形式来表示。这里的 A 存在逆矩阵
- 乘以某个存在逆矩阵的方阵 A,也可以用坐标变换来解释
考虑二维空间中的 基底变换 ,选取两组基底 (ex,ey),(ex′,ey′)
对于同一个向量 v,在不同的基底下有以下两种不同的表示:
v=xex+yey=x′ex′+y′ey′
如果有基底的变换关系,比如:
ex′ey′=3ex−2ey=−ex+ey
代入可以得到:
v=x′ex′+y′ey′=x′(3ex−2ey)+y′(−ex+ey)=(3x′−y′)ex+(−2x′+y′)ey
对比系数,有
xy=3x′−y′=−2x′+y′
可以解出 x′ 和 y′:
x′y′=x+y=2x+3y
这就是两组坐标的变换法则。用矩阵来改成,就是
(xy)(x′y′)=(3−2−11)(x′y′)=(1213)(xy)
一般来讲,坐标变换都可以表示为「乘上一个矩阵」。
转置矩阵
矩阵 A,行列互换,就得到 转置矩阵,记为 AT
共轭转置,每个元素取(复)共轭得到的矩阵:
A=(2+i79−2i5+5i43)→A∗=2−i9+2i475−5i3
行列式与扩大率
A=(1.5000.5) 表示线性变换将图形横向变为原来的 1.5 倍,纵向变为原来的 0.5 倍。于是面积变为原来的 1.5×0.5=0.75 倍。
2 阶方阵 A=(a1,a2) 也可以解释为由向量 a1,a2 围成的 平行四边形的面积。
面积扩大率与原图形的位置和形状都无关。这样的面积扩大率就称为该矩阵的 行列式,记为 detA=0.75
3 阶方阵 A=(a1,a2,a3) 也可以解释为由向量 a1,a2,a3 围成的 平行六面体的体积。
对于三阶方阵,行列式表示体积扩大率。
1 2 3 4
| Det[({ {1.0, 0}, {0, 0.5} })]
|
简单性质
detI=1det(AB)=(detA)(detB)
利用这两个公式,可以得到
detA−1=detA1
进一步可以得到,当 detA=0 时,A−1 不存在。原因很简单,如果 A−1 存在,那么 (detA)(detA−1)=1,而 0 乘以 某个数得到 1,无疑是有问题的。
秩、逆矩阵、线性方程组
由已知的结果 y 去推测 x 的问题,称为 逆问题。
实际问题可能还会有噪音,也就是不仅仅是 y=Ax,还要加上噪音,变成 y=Ax+b。
可逆矩阵
如果 x 和 y 具有相同的维数,A 是方阵,如果 A 的逆矩阵存在,就可以直接使用公式:
x=A−1y
存在逆矩阵的方阵 A,则称为 正则矩阵(可逆矩阵、非奇异矩阵),而不是正则矩阵的,则称为 奇异矩阵。
维度不足
如果 x=(x1,⋯,xn)T 和 y=(x1,⋯,xm)T 的维度不同 n=m时,这时候需要面对只有 m 条线索要解出 n 个未知量。
如果 y 的维度比 x 的维度少。这里以 m=2,n=3 为例,那么 A 对应的是「x 所在的 3 维 空间」到 「y 所在的 2 维空间」的映射。从高维到低维度映射,实质上就会有多个 x 被转移到 y 上。
正式一点的说法是给定 A,在映射的作用下,满足 Ax=0 的 x 的集合称为 A 的核,记为 KerA 。
只知道映射后的点,是无法还原的。(高维度信息已经丢失了)。
维度过剩
如果 y 的维度比 x 的维度多。现在以 m=3,n=2 为例,因为现在是从低维度到高维度。所以要把目标的 3 维空间全覆盖是不可能的。由于现实问题中存在噪音,在噪音的影响可能会出现理论上不可能出现的值。
数学上,对于给定的 A,将 x 进行各种不同变换。在 A 的 作用下,y=Ax 构成的集合,称为 A 的 像(image),记为 ImA。例如从 2 维映射到 3 维,ImA 就是 2 维(平面)。
维度相同
维度相同也并不不够,因为有的条件可能没有提供额外的信息,例如:A=(0.80.4−0.6−0.3)。这两个条件是倍数关系,在空间当中就只有长度差异,属于冗余的条件。
单射、满射、双射
如果得到结果 y 的 x 是唯一的,那么就是 单射 。
满射 称为「映上的映射」
双射 则是在单射和满射同时成立时,也被称为「一对一映上的映射」。
如果将 y 理解为萝卜坑,x 理解为萝卜。那么单射就是有一个萝卜一个坑,有坑不一定有萝卜;满射就是,所有坑都有萝卜,而且可能不止一个萝卜;双射就是有坑就有萝卜,而且有且只有一个萝卜。
维度定理(秩-零化度定理)
对于 m×n 矩阵 A,有
dimKerA+dimImA=n
压缩掉 KerA 的维数,自然就剩下 ImA 的维数,可以得到两个推论:
- 若 m<n,则 A 不会是单射
- 若 m>n,则 A 不会是满射
线性相关、线性无关
「压缩扁平化」:不同的 x 和 x′ 变换到相同的 y。
(a1,⋯,an)x1⋮xn=(a1,⋯,an)x1′⋮xn′
也就是下面的式子成立:
x1a1+⋯+xnan=x1′a1+⋯+xn′an
在 x=x′ 前提下,那么就称 a1,⋯,an 为 线性相关 。反之,不是线性相关的情况下,称 a1,⋯,an 线性无关 。
- A 的各个列向量线性相关 = 「压缩」
- A 的各个列向量线性无关 = 「不压缩」
基底比线性无关更为严格 ,例如:e1=(1,0,0)T 和 e2=(0,1,0)T 线性无关,但是 (e1,e2) 不构成基底。因为类似 x=(1,1,1)T 无法写成 e1 和 e2 的组合。要构成基底,一定要有足够多线性无关的向量。
秩:实际条件的个数
「目标空间全体是否能够被全部覆盖到」
ImA 的维数,实际上代表了条件的实际个数。一旦知道这个维数,就可以得到答案。
令 A 是 m×n 矩阵,也就是 n 维向量 x 变成 m 维向量 y=Ax 的映射。这里将 ImA 的维数 dimImA 命名为矩阵 A 的 秩(rank),记为 rank A,那么就有:
dimKerA+rankA=n
- rankA=n (秩与原空间(定义域)的维数相等),那么 A 是单射
- rankA=m (秩与目标空间(值域)的维数相等),那么 A 是满射
秩的基本性质
A 是 m×n 矩阵,有以下的性质:
- rankA⩽m
- rankA⩽n
目标空间是 m 维,包含在其中的 ImA 无论如何都不可能让自己的维数超过 m;原空间是 n 维,把空间全体通过 A 映射出去,也不可能超过原来的维数 n。
乘以可逆矩阵后,维数不发生变化 。也就是所,若 P、Q 可逆,则
rank(PA)=rankArank(AQ)=rankA
可逆矩阵对应了「非压缩扁平化」的映射,所以施加 A 的作用之前和之后插入一个 P 和 Q,维数不发生变化。
对于一般矩阵 A,B,有
rank(BA)⩽rankArank(BA)⩽rankB
- 第一个阶段:原空间 U 在 A 的作用下,移动到空间 V 上
- 第二个阶段:空间 V 在 B 的作用下,移动到空间 W,所求即为 W 的维数
经过第一个阶段后,空间 V 的维数已经变成 rankA,接下来无论 B 怎么变换,最终的维数都不会超过 rankA。第二个阶段,即使空间全体都通过 B 进行了变换,最终维数也不会超过 rankB。所以 V 作为空间的一部分,在 B 的作用下进行变换后,维数自然不会超过 rankB。
转置矩阵的秩不变:rankAT=rankA
逆矩阵存在的条件
(只讨论方阵)
核心就是是不是被「压缩扁平化的映射」
「非压缩扁平化映射」(单射)与「目标空间被全部覆盖」(满射)是等价的。保证映射为双射,逆映射存在,那么逆矩阵就存在。
可逆性小结
- 对于任何 n 维向量 y,使得 y=Ax 成立的 x 只有一个
- A 是可逆矩阵(逆矩阵 A−1 存在)
- A 对应的映射为「压缩扁平化」映射
- 使得 Ax=0 成立仅有 x=0 一个值
- KerA 仅包含原点这一个点
- dimKerA=0
- A 的列向量 a1,⋯,an 线性无关
- 在 A 的映射作用下,目标空间可以被全部覆盖到
- A 对应的映射是满射
- ImA 是 n 维空间全体
- rankA=dimImA=n
- detA=0
- A 不含 0 的特征值
- 以上的 A 替换成 AT
参考资料
- Wolfram 语言与系统:参考资料中心
- 平冈和幸,堀玄.程序员的数学.3,线性代数[M].人民邮电出版社,2016.