(以下内容均为学习后的个人理解,如有不当,望指正!)
相信很多人都学习过线性代数,课本上教会我们的有:
- 行列式
- 矩阵
- 向量组
等等众多理论知识,当然这里只是一个粗略概括
但我同样相信的是很多人和我一样迷惑了很久(可能是因为我没有认真听课?)我们通过线性代数算出来那么多行列式的值、解出了那么多方程组、求出了那么多秩,But,What are we doing?
甚至有些课程如运动控制、机器人基础用到了诸多变换矩阵,我们知道了那么去做可以求出一个答案,一个正确的答案,但还是刚才的问题,
What are we doing? & Why are we doing this?
一个偶然的机会,我窥见了一些内容,我不敢说接下来的东西能对你起到的帮助有多大,但至少,或许可以解决一点你的疑惑,让你今后看到被方括号 [ ] 包起来的的一堆数字时有站在更高视角的理解。
因为正如Morpheus所说:
很遗憾,矩阵是什么是说不清的,你必须得自己亲眼看看。
目录
1、向量是什么?
基于目前的知识,可以将线性代数分为两个层面去理解,一个是数值水平,一个是几何水平。
几何水平 | 数值水平 |
---|---|
判断解决特定的问题需要什么工具;感受到为什么有用;如何解读结果 | 可以顺利应用工具进行计算、求解 |
那么这次我们的重点就是从几何水平看问题。
一些直观的解释
向量在物理学中用矢量表示,在计算机学科中用有序的数字列表表示,而数学这个学科,结合了二者的观点,并解释道向量可以是任何东西,只要满足可加以及数乘两种运算即可,而线性代数正是围绕这两种基本运算的。
我们先将向量用空间中的箭头表示,例如 F ⃗ = [ a b ] \vec{F} = \begin{bmatrix} a \\ b \end{bmatrix} F=[ab]
将该向量(二维)终点位置,看做一个点先沿x轴走一段长度为a的距离,再沿y轴走一段长度为b的距离。
两向量的加和(即矩阵加法)是对应位置的数相加,这可以理解为先走完x或y这两步之后取得的效果与一次性将x或y对应位置的距离走完,所运行之后产生的效果相同,三维等依此类推。
2、向量的线性组合、张成的空间与基
x轴单位向量为
i
^
\widehat{i}
i
,y轴单位向量为
j
^
\widehat{j}
j
,向量就可理解为单位向量的缩放并相加,而
i
^
\widehat{i}
i
、
j
^
\widehat{j}
j
为直角坐标系的基向量,二者合起来为坐标系的基。
[表示为
F
⃗
=
a
i
^
+
b
j
^
\vec{F} = a\widehat{i} + b\widehat{j}
F=ai
+bj
]
一些直观的解释
- Q: 两个数乘向量的和被称为这两个向量的线性组合(为什么叫线性?)
A:当你固定向量的一个基不变,改变另一个基的缩放比例时,产生的向量终点会得到一条直线。
如此,如果两个标量同时变化,就可以得到所有向量。 - 若两向量共线,则终点在一条过原点的直线
若两向量均为零向量,则终点只能为原点
回顾一些知识点
- 所有可表示为给定向量线性组合的向量的集合,称为给定向量张成的空间(span)
【我们学习的教材中用的是生成的向量空间,其实就是向量的集合】 - 我们换一个方式进行提问:仅通过向量加法与向量数乘这两种基本运算可以获得的所有可能的向量集合是什么?
【其实就是向量张成的空间】 - 二维中的共线,以及三维中的共面,说明一组向量中至少有一个是多余的,并没有对张成的空间做出任何贡献(也就是可以移除其中一个而不改变张成的空间),这就被称为“线性相关”,否则 线性无关。
- 现在就可以给出基的严格定义了:
向量空间的一组基是张成该空间的一个线性无关向量集
(A set of linearly independent vectors that span that space)
3、线性变换与矩阵
Now,我们将向量与点联系起来
因为如果向量都用箭头表示显得过于拥挤(其实就是丑),所以现在仅将终点作为向量的代表。如此一来,如果想要考虑一条直线上的所有向量,则只需要考虑直线本身即可。同理,考虑整个二维平面的向量时,仅考虑整个无限大的二维平面即可。
【仅考虑一个向量时,把它看做箭头,多个时,都看做点】
一些直观的解释
- 这里,说是线性变换,我们把这两个词拆分开来。实际上,变换一词的本质还是函数(function)。也就是,first step:接收输入内容;second step:输出对应结果。而用变换这一个词其实就在暗示我们可以用运动的角度去看问题。
先来看看一些变换的样子:
而线性则表明了线性代数的变换是特殊的,首先变换后的直线依旧是直线,不存在弯曲,二是原点保持固定不变。【即保持空间中的网格线平行且等距的变换】
注:后文如不加声明,都以二维为例
- 矩阵乘法其实就是基向量的伸缩变换再与原向量的数乘,也就是线性变换,变换用到的两个新的基可以写为一个2×2的矩阵,矩阵放在向量左边,类似于一个函数。就像 f ( x ) f(x) f(x)这个样子。
注:其实想一想计算式,依旧是 F ⃗ = a i ^ + b j ^ \vec{F} = a\widehat{i} + b\widehat{j} F=ai +bj 这个样子,只不过单位向量变了
3、 变换包含旋转与剪切
【二维的剪切是仅改变一个列向量,旋转就是两个都变】
4、线性变换复合与矩阵乘法
复合变换就是由多个独立变换组成。而两个矩阵相乘的几何意义表示两个线性变换相继作用。
变换通常包含剪切(share)| 旋转(Rotation),且在读矩阵时是从右往左的,像函数一样,上文已经提到过了
下图的
M
1
、
M
2
M1、M2
M1、M2就是这样运作的,将基进行了两次变换
5、行列式
知道了变换就是在对空间进行变化之后,问题就来了,这变换究竟对空间有多少拉伸或者挤压?
这就是行列式回答的问题!
一些直观的解释
- 上图是规则区域的样子,如果对于空间中不规则的区域,我们可以结合微积分的思想来进行求解,得到的结论仍旧是等比例地进行变化。【线代便可同微积分产生联系】
- 通过矩阵运算,我们通过观察面积,看到这种特殊的缩放得到的比例,就称为这个变换的行列式。
- 由此,我们只需要检验一个矩阵的行列式是否为0,就可以知道这个矩阵所代表的变换是否将空间压缩到了更小的维度上。
- 至于行列式的负值,需要涉及定向的概念。
【如果我们将空间进行翻转,则称这样的变换改变了空间的定向。】
行列式的负值,也就是空间的定向改变了
【也可以理解为单位向量 i ^ \widehat{i} i 跑到了单位向量 j ^ \widehat{j} j 的左边】,但值的绝对值依然为缩放的比例。
【这其实是很自然的一件事:随着单位向量 i ^ \widehat{i} i 不断接近单位向量 j ^ \widehat{j} j ,空间也在不断被压缩,直至0,然后开始变为负值】 - 三维则表示体积,负值依旧与定向有关,正值是右手定则,食指为x轴,负值则说明换到了左手定则。
- 二维行列式 ∣ a b c d ∣ \begin{vmatrix} a & b \\ c & d \end{vmatrix} ∣∣∣∣acbd∣∣∣∣的计算中, a d − b c ad-bc ad−bc的 b c bc bc,表明平行四边形在对角方向上拉伸或压缩了多少。
a a a是在x轴上的拉伸, b b b是在y轴上的拉伸, a d ad ad就表示面积的拉伸, b c bc bc就表示面积的压缩
6、逆矩阵、列空间与零空间
逆阵的诞生:
在寻求一个未知向量经过
A
A
A(矩阵)变换后,得到了一个确切向量,若要求未知向量,则应对变换后的向量施行反变换,如此,未知向量经变换和反变换后相当于什么都没做,而通过追踪确切向量反变换的结果就可以求得未知向量。这个反变换矩阵就是逆阵。
一些直观的解释
- 这就是求方程组时的方法之一,就比如下面这个方程组:
V
⃗
=
A
X
⃗
\vec{V} = A \vec{X}
V=AX
得到 V ⃗ \vec{V} V的过程是这样的
所以,如果我们要求解 X ⃗ \vec{X} X,只需要施行空间的反变换,然后追踪 V ⃗ \vec{V} V的轨迹即可。 - 对于
A
A
A的行列式不为0的情况,则这个未知向量几乎是唯一的;而对于
A
A
A的行列式不为0时,空间则被压缩到了更小的维度上。
这时就引入秩【秩表示着变换后空间的维数,变换后空间几维,则该变换的秩就是几】
【就解方程而言,联想计算方式,如果满秩,则空间没有改变,解唯一;若不满秩(此时没有逆变换),则需要看变换后的向量是否与变换后的空间保持相同维度,若变化后向量维度更高,则无解,若二者纬度相同,则有解,不过这个解是一个列空间。(因为在变换过程中,空间被压缩,无数个向量进行降维,变成了同一个向量,这时无穷多解,这也就意味着这个变换后的向量要足够幸运。)】 - 变换后,矩阵的列张成的空间称为列空间(列就是基),因此秩更精准的定义就是列空间的维数。
- 变换后,落在原点的向量的集合称为零空间(Null space)或核(Kernal)。若变换后的向量恰为零向量,则零空间给出了这个向量方程所有可能的解。
- 非方阵(变换阵)的列数可以想象为变换后向量的基的个数,也就是原始空间维数;而行数,则可以表示为变换后基向量用几个坐标表示,也就是变换到了几维。【这个行列的思想后面点积还会用到】
7、点积与叉积
这是点积的计算
这是叉积的计算
一些直观的解释_点积
- Q:我们说点积的计算和顺序是没有关系的,怎么解释?
A:首先计算式上你是可以看出来的,但这当然满足不了我们的好奇心。看看下面这个图
你应该会有印象,老师说过,点积是一个向量在另一个向量上投影,然后把两个向量的长度乘起来。毕竟,高数里讲过这么一个玩意 V ⃗ ⋅ W ⃗ = ∣ V ⃗ ∣ ∣ W ⃗ ∣ cos θ ( 数 量 积 ) \vec{V}·\vec{W} = \lvert \vec{V} \rvert\lvert \vec{W} \rvert\cosθ(数量积) V⋅W=∣V∣∣W∣cosθ(数量积)
其实是一样的,就像上图中 V ⃗ \vec{V} V和 W ⃗ \vec{W} W是轴对称的,其互相投影不改变结果。如果任意放大其中一个,虽说对称性被破坏了,但因为缩放的比例没变,其结果也不会变。 - 我们将向量放倒(
[
a
b
]
\begin{bmatrix}a \\ b \end{bmatrix}
[ab]),可以得到一个空间变换阵(
[
a
b
]
\begin{bmatrix}a&b \end{bmatrix}
[ab]);而将矩阵直立,可以得到一个向量。
(这就是点积与矩阵乘法之间的微妙关系,首先,数值上是相同的)【将向量转化为数的线性变换,和这个向量本身有关系】 - Q:虽然,单位向量的点积可以解读为将向量投影到单位向量所在的直线上所得到的投影长度,但是总感觉还是和对应位相乘没什么关系对不对?
A:我们以二维为例,将二维通过线性变换压缩至一维
通过对偶性(对称)的直观思想,我们可以知道变换后的x、y轴单位向量在一维数轴上的投影长度就是一维数轴上单位向量的横纵坐标,写为矩阵则为变换阵,直立的形式就是向量。
而空间中任意向量经过投影变换的结果,即投影矩阵(变换阵)与这个向量相乘,结果与数轴上单位向量与这个向量的点积完全相同!
【这大概就是矩阵向量乘积同点积之间的微妙关系了吧】
因为投影过程中,这个变换是线性的,也就必然可以用一个矩阵进行描述,而这过程又和转置矩阵并求点积过程相同,因此二者必然会有相关性。
【但我个人觉得这里有一点不清楚,这个将二维变到一维的过程从结果来看,更像是转置,因为一个 2 × 1 2×1 2×1的矩阵如何变到 1 × 2 1×2 1×2呢?但是学习的内容中没有提到】 - 这对偶性便是某个自然而又出人意料的对应关系,一个向量的对偶便是由它定义的线性变换,反之亦然。
一些直观的解释_叉积
- 以坐标轴顺序计算(逆时针)结果为正,反之为负。
定向同样是右手定则,食指为x,中指为y,拇指为叉积运算得到的向量的方向,其长度为x,y围成的四边形的面积。 - 下面这个图是叉积几何思想的来源
我们保持 V ⃗ \vec{V} V和 W ⃗ \vec{W} W不变(它们围成了平行六面体的底部),而改变这第三个向量,这个体积是可变的,我们将其视为一个函数,而且这个函数是线性的。
因此,对于这个函数是多少,我们可以找到一个变换使等式成立,就像这样
而这,不就回到点积的知识了吗?
现在单从计算的角度来看,应该已经明白点什么了。【接下来是重点!】 - 叉积关键在于找到一个向量
P
⃗
\vec{P}
P,满足它与
(
x
,
y
,
z
)
(x, y, z)
(x,y,z)的点积等于
(
x
,
y
,
z
)
(x, y, z)
(x,y,z)与向量
V
⃗
\vec{V}
V和向量
W
⃗
\vec{W}
W的行列式的值。
Q:为什么是这样?有什么几何意义吗?
A:回顾一下点积的几何意义, P ⃗ \vec{P} P与 ( x , y , z ) (x, y, z) (x,y,z)的点积等于 ( x , y , z ) (x, y, z) (x,y,z)在 P ⃗ \vec{P} P上的投影(反过来也可),二者长度相乘;而行列式的值表示平行六面体的体积。
在计算体积时,我们的做法是 V ⃗ \vec{V} V与 W ⃗ \vec{W} W围成的平行四边形面积乘以 ( x , y , z ) (x, y, z) (x,y,z)在垂直于该四边形的方向上的投影的值,而这就恰好与垂直于 V ⃗ \vec{V} V与 W ⃗ \vec{W} W围成的平行四边形,且长度为平行四边形面积值的向量与 ( x , y , z ) (x, y, z) (x,y,z)的点积相同。
【所以,找到的这个向量也就必然与 P ⃗ \vec{P} P是相关联的】
8、基变换
我们通过矩阵乘法其实实现的就是基变换。
基变换是架起一个使用不同的语言描述两个不同空间的相同向量的桥梁。
一些直观的解释
- 以直角坐标系为基的向量在经过线性变换后,仍然是这个线性组合,只不过使用的是新的基向量。因此,变换阵的作用就是消除对新基的误解,变换为使用新基的向量。
- 用直角系的基乘以新基所描述的向量即为在直角系下描述新基的向量。
- 直角系下的新基的逆乘以直角系下的向量即为新基下描述直角系的向量。
【重点还是要理解矩阵是一种线性变换,,矩阵相乘为多个变换的复合】
9、特征向量与特征值
现在,可以将前面学过的都拼接起来了。
一些直观的解释
- 在向量进行线性变换时,有些特殊的向量在变换后仍然停留在其原向量所张成的空间(一条直线)中,而没有离开原向量张成的空间,仅仅是进行了拉伸或压缩,就好像矩阵对它的作用相当于一个标量。
【这样在这条线上的这些特殊向量就称为变换的特征向量,而每个特征向量都有一个所属的值,即特征值。特征值也是衡量特征向量在变换中拉伸或压缩比例的因子】
【这难道不就是特征值的定义式吗?一下子就直观了对不对?】 - 而对三维向量而言,通过线性变换,找到这个变换的特征向量就是这个变换的旋转轴。
- 计算过程中有一个行列式为0这一步,参考之前,当且仅当变换将空间进行了降维,才会存在一个非零向量,使得矩阵与它的乘积为零向量。因此,矩阵的行列式才为0。(空间压缩对应矩阵行列式为0,面积为0)
10、抽象向量空间
普适的代价是抽象!
这句话终于让我对数学的作用有了更进一步的理解。
其实,任何处理的对象如果具有合理的数乘和相加的概念,那么线代中关于向量、线性变换以及其他概念都是适用的。(只不过名称不同)
比如
线性代数 | 函数 |
---|---|
线性变换 | 线性算子 |
点积 | 数量积(内积) |
特征向量 | 特征函数 |
因此,数学家的任务就是发现的规律不能只对一个情况适用,而应对其他情况具有相当的普适性,而这,就必然无法具象。
【这也大概就是让我对课本内容产生疑惑的原因之一吧】
所以,用类似向量的实物,诸如箭头、数组或函数等,它们构成的集合被称为向量空间,如果还有其他形式,只要满足以下八条公理即可:
- 向量加法满足结合律
- 向量加法满足交换律
- 向量加法的单位元存在
- 每个向量的加法逆元均存在
- 标量乘法与标量的域乘法相容
- 标量乘法的单位元存在
- 标量乘法对向量加法满足分配律
- 标量乘法对域加法满足分配律
可见,表达方式是多种多样的,只是不同的地方用不同的语种会更顺手吧。
结尾
写到这里,我通过自己的语言和现有知识的总结也就结束了,当然还有很多知识点没有给出几何角度,但这至少让我眼前一亮。
总之,希望这些内容能对我今后的学习有所裨益,在面对一些问题时可以给我提供一个不一样的视角。