线性代数_几何直觉补剂_只会代数不懂线性的自救指南
前言
- 本篇内容来自3Blue1Brown,本文是在自学过程中我的笔记,他的教学视频质量极高,极度推荐
- 在大学的学习中,我对线性代数的学习可以说是一败涂地,对于线性代数的学习止步在套用公式,完全不懂这些公式究竟有什么意义,在看过3Blue1Brown的教学之后,我明白了——因为我只学了“代数”,却没有学到“线性”
- 如果你和我一样,需要用到线性代数,而没有建立起“线性”的几何直觉,刷题练出的“代数”部分也在考试之后丢掉了,那么这篇“几何直觉”补剂可能是你所需要的
- 本篇笔记不涉及具体计算(但对于考试与考研,也可以作为入门,在建立这些观念后再去学习比起死记硬背有事半功倍的效果)
向量
什么是向量
-
向量的表述
- 空间中的箭头
- 有序的数字列表
-
向量的几何意义
两种对向量描述可以相互转换,以在平面坐标系中为例:
以其原点作为向量的起点,数字列表中的第一个数表示从原点沿着x轴方向移动距离(正数沿着正方向移动,负数就沿负方向),第二个数表示沿着y轴方向移动距离
例如,向量
(1,2)就相当于从(0,0)点开始,向右一格,再向上两格,这个向量从原点指向(1,2)点根据如上过程,有序的数字列表就能唯一确定一个空间中从起点指向终点的箭头
向量的运算
-
续上文,可以得到向量加法与数乘这两种最基本运算的几何意义
-
向量加法
两个向量相加,得到一个和向量,这个过程在几何上为:从原点先按第一个向量的描述移动,抵达第一个向量终点后,再按第二个向量的描述移动,最终所抵达的位置就是和向量终点
简而言之,按两个向量的和向量移动的效果=按两个向量移动的总体效果
例如,向量
(1,2)加向量(3,-1)得到和向量(4,1),这在几何上代表了从原点开始,先向右1再向上2,然后向右3再向下1,去到的位置与先向右4再向上1是一样的

-
向量数乘
一个向量乘一个数,就相当于这个向量被拉伸或压缩多少倍(如果乘负数就会反向,乘0得长度为零的向量)

线性组合
基向量
-
前文将向量的空间箭头与数字列表两种描述关联起来,把向量的坐标数字视作向哪个方向“走了几步”;现在,我们改变思路,把坐标数字视作描述压缩或拉伸一个向量的标量
为基向量举一个最简单的例子:xy坐标系的单位向量
-
单位向量与xy坐标系
在一个xy平面坐标系中,有两个特别的向量:一个指向正右方(x轴正方向)长度为1,记为\(\vec i\),另一个指向正上方(y轴正方向)长度为1,记为\(\vec j\),称这两个向量为单位向量
回到压缩或拉伸向量的思路,例如说,xy坐标系的一个向量
(3,-2),其就是\(\vec i\)被拉伸3倍与\(\vec j\)被反向后拉伸2倍的这两个向量之和,即\(3\vec i + (-2)\vec j\)既然xy平面坐标系上的各个向量都可以通过对\(\vec i\)与\(\vec j\)缩放再相加进行描述,就把\(\vec i\)与\(\vec j\)这两个单位向量称为xy坐标系的基向量,可见基向量是数字列表与向量间的桥梁
-
基向量与坐标系
我们也可以选择完全不同的向量作为基向量,构建不同的坐标系:

使用数字描述一个向量时依赖于坐标系的基,显然,\(3\vec i + (-2)\vec j\)与\(3\vec w + (-2)\vec v\)描述的不是同一个向量
坐标系的本质,就是发生在向量与一组数之间的任意一种转化,基向量决定这是怎样的转化
张成空间
-
线性组合与张成空间
将前文\(a\vec i + b\vec j\)这种两个数乘向量的和称为两个向量的线性组合
给定向量的全部线性组合构成的向量集合(简单说就是\(\vec i\)与\(\vec j\)固定,\(a、b\)任意变化下所有可能得到的向量)被称为给定向量张成的空间
给定不同的向量,其线性组合所能得到的向量是不同的,有如下情况:
- 一般来说,两个向量能够线性组合得到一个平面上所有的向量
- 如果两个向量共线,就只能得到这条直线上的所有向量
- 如果两个向量都是零向量,就只能得到零向量
有多个向量的情况下,用向量的终点表示向量,可以通过点的分布直观看出上述三种情况的张成空间分别是一个平面,一条直线,一个点
在此基础上再加入一个向量,即可张成三维空间:一般来说能够线性组合出空间中所有向量,如果三个向量共面而不共线就只能得到一个空间中过原点平面上的所有向量,三个向量共线就只能得到一条过原点的直线
-
线性相关与线性无关
如果给定向量中可以移除其中一个而不减小张成空间(比如说,三个向量共面不共线,张成一个空间中的平面,这与两个不共面的向量张成空间是一样的),显然在这样的向量组中有向量是多余的,对张成空间没有做出任何贡献
这种情况,称这些向量为线性相关,换言之,这些向量中至少其中一个向量可以被表示为其他向量的线性组合,因为这个“多余”的向量已经落在其他向量张成的空间中
相反的,如果所有向量都给张成空间增添了新的维度,换言之,任一向量都不在其他向量张成的空间中,就称这些向量线性无关
回到基向量的定义,向量空间的一组基就是张成该空间的一个线性无关向量的集合
矩阵
- 前面的讲解初步建立了数字与几何之间的关系,到了矩阵,我们延续这种对应,抛弃那些死记硬背计算方式的矩阵学法,看看矩阵在几何上有什么用
线性变换
-
变换的本质
所谓变换,与函数有着相同的底层:输入一个自变量,经过函数的处理得到一个结果
之所以还要造一个新词“变换”,是为了说明其在几何上的作用:一个向量经过变换,得到另一个向量;如果对一个向量集进行线性变换,此时相应的整个向量空间都将产生变换,可想象出一个空间在变换下被扭曲变形
还有另一种说法是“算子”,事实上,函数、变换、算子都是映射:函数是最一般的叫法;变换强调空间中的映射;算子强调作用在函数空间或无穷维空间上的映射
-
线性的本质
前文提到对空间的扭曲变形可以是非常复杂的,因此对变换加入“线性”这一限制,满足以下两点的变换就是线性变换:
- 所有直线经过变换后仍是直线
- 原点必须保持不动
如果一个变换把空间扭曲了,或者让原点移动了位置,就不算线性变换(仍是直线但原点移动的变换叫作仿射变换)
更直白地说,线性变换就是能保证原本坐标系网格线在变换后保持平行且等距的变换
线性变换在数字上有着严格的定义,要求一种变换同时满足可加\(L(a+b)=L(a)+L(b)\)与成比例\(L(ka)=kL(a)\),这两条性质在二维空间几何上的表现就是“变换后保持平行且等距”
-
线性变换的数学描述
现在我们的脑子里已有了关于几何的直观图像,那么要如何找到其在数值上的对应,换言之,怎样的数学处理可以得到一个向量线性变换后的向量:
首先,根据前文对基向量与线性变换的定义,只要原本坐标系的基向量经线性变换,那么整个向量空间都将被变换,空间中其他的向量会随之作同样的变换
也就是说:一个向量改用线性变换后的基向量进行线性组合,表示的就是经变换的向量(这是坐标系网格线在线性变换后保持平行且等距所得的推论,如果不是线性变换这就不成立了)
例如说:xy坐标系有向量\(\vec v=-1\vec i + 2\vec j\),现在对坐标系进行线性变换,得到新的基向量\(\vec i_t=(1,-2)\),与\(\vec j_t=(3,0)\),那么线性变换后的\(\vec v_t=-1\vec i_t + 2\vec j_t=-1(1,-2)+2(3,0)=(-1+6,2+0)=(5,2)\)
这一变换过程在几何上看起来是这样的:

通过这样简单的数学计算,我们就不必观察变换本身,直接知道变换的结果了
矩阵
-
矩阵与线性变换
矩阵是一个数字列表,它有什么含义?
根据上文所述,我们知道描述特定的一次(xy平面坐标系的)线性变换,只需知道变换后的\(\vec i\)与变换后的\(\vec j\)
那么将这两个向量拼起来,就可以构成一个2×2的矩阵,第一列是\(\vec i_t\),第二列是\(\vec j_t\),以变换基坐标为列的矩阵就起到了描述线性变换的作用
利用这个矩阵,可以计算任意坐标为
(x,y)向量经过所描述变换后的坐标 -
矩阵乘法描述线性变换
现在,给任意的初始向量,希望知道线性变换对其的作用
将前文所述的线性变换过程(将原本描述向量的基向量改为经过线性变换的基向量)借助矩阵描述,具体而言即将向量坐标值与矩阵对应的列(也就是经过变换的基向量坐标)相乘再相加,得到的结果就是向量经线性变换后的坐标
这一过程就是矩阵的乘法,简单来说就是把线性变换的数学描述\(\vec v_t=x\vec i_t + y\vec j_t\)借助矩阵改写为如下形式:

总而言之,放在左边的矩阵乘一个向量,得到一个经过此矩阵所描述线性变换的新向量,对应的几何过程如下图:

矩阵乘法
-
矩阵乘向量
总结上文:
-
线性变换是将向量作为输入与输出的一种函数
-
矩阵描述了对空间的一种特定线性变换
-
矩阵与向量相乘,就是将特定的线性变换作用于该向量
我们知道了矩阵与向量相乘的意义,那么,矩阵乘另一个矩阵呢?
-
-
矩阵乘矩阵所得复合矩阵
既然一个矩阵能够表示一种线性变换,那么两个矩阵相乘自然意味着两种变换相继作用,相乘所得的复合矩阵就是将向量按顺序进行各种变换
矩阵乘法带来的变换从右边向左起作用,这和函数的读法是对应的,如
f(g(x)),是先对x进行“变换”成为y=g(x),然后再进行f(y)的“变换”

此外,从这样几何变换的视角很好理解矩阵乘法的一些定律:
-
矩阵乘法不满足交换律,例如将一个图形先旋转再斜切,与先斜切再旋转得到的图形不一致
-
矩阵乘法满足结合律,在变换顺序不变的前提下,先进行哪种变换都能得到一样的效果
-
矩阵乘法的计算
我们通过几何方式了解了一个矩阵乘向量的几何含义与计算过程,现在可以用同样的方式来理解矩阵之间相乘,这样我们就不必死记硬背计算方式了
-
首先,按前面对矩阵与线性变换的描述,将右侧的矩阵\(M_1\)视作对\(\vec i\)与\(\vec j\)线性变换的记录,即其第一列是\(\vec i_t\),第二列是\(\vec j_t\)
-
然后,其左侧的矩阵\(M_2\)也描述了一种变换,现在,取右侧矩阵\(M_1\)第一列的\(\vec i_t\)与\(M_2\)矩阵作矩阵乘法,得到经过\(M_2\)所描述变换的向量\(\vec i_{tt}\),这个新向量就是矩阵乘法所得新矩阵的第一列
-

-
同理计算\(\vec j_{tt}\),成为新矩阵的第二列,最终得到两个矩阵相乘的结果
-
矩阵乘法的几何意义
我们可以理清上面的计算对应在几何空间中发生了什么:
-
为了方便理解,在这个计算的最右边添上由\(\vec i\)与\(\vec j\)组成的单位矩阵(单位矩阵乘同阶矩阵都得原矩阵,发挥数字计算中1的作用,这里相当于把
a变成了a×1) -
首先\([i,j]\)左乘\(M_1\),几何上对\([i,j]\)进行\(M_1\)记录的线性变换,得到\([i_t,j_t]\)(实际上就是\(M_1\),前文就将矩阵定义为对变换后\(\vec i\)与变换后的\(\vec j\)的记录)
-
然后再让\([i_t,j_t]\)左乘\(M_2\),几何上进行\(M_2\)记录的线性变换,得到\([i_{tt},j_{tt}]\)
-
可见,对\([i,j]\)进行\(M_1\)与\(M_2\)两次线性变换得到的效果,与直接让\([i,j]\)进行\([i_{tt},j_{tt}]\)所记录的变换是一模一样的
简而言之,两个矩阵相乘,所得结果就是就是将两种矩阵所代表变换的复合
-
-
为了方便,这里只论证了二维平面的情况,但对于三维也都是适用的:一个3×3的矩阵,每一列都是这个三维坐标系中经过变换的基向量,其描述了一种空间中的线性变换;三维中的空间操作比起二维复杂,但使用线性代数的数学工具,就可轻松描述(比如空间中的旋转,可以借助三个向量分解为简单分立旋转的复合)
当然还可以有更高维度,虽然不再能这样直观地想象其几何含义,但有重要的实用价值,例如电脑中的图片,我们看去是二维的,但对计算机来说多个图片、多种颜色、多个通道(如RGB)就自然形成三维或四维甚至更高维的张量
-
基变换
前文详述了关于矩阵与对一个向量进行指定的线性变换,现在改变视角,从变换向量改为变换空间,重新认识线性变换这件事:
前文提到,坐标系的本质,就是发生在向量与一组数之间的一种转化,而不同的基向量张成不同的坐标系,也就对应了不同的变换,具体到计算上就是一个线性组合\(x\vec i + y\vec j\)在基向量不同的情况下对应不同的向量
例如说:一个坐标系,其基向量为\(\vec i\)与\(\vec j\),其中有一个向量是\([x,y]\),而在另一个坐标系,其基向量为\(\vec b_1\)与\(\vec b_2\),两个坐标系里的\([x,y]\)显然不是同一个向量,在第一个坐标系里这个向量是\(x\vec i + y\vec j\),而在第二个坐标系中,这个向量是\(x\vec b_1 + y\vec b_2\)
那么,要怎么将一个向量在两个坐标系之间“翻译”呢?我们用原来坐标系的基向量去描述另一个坐标系的基向量,再用这套“翻译”回原坐标系的另一个坐标系基向量作为线性组合所用的向量,最终就将另一个坐标系中的向量“翻译”回了原来的坐标系,例如下图,\(-1\vec b_1 + 2\vec b_2=-4\vec i + 1\vec j\)

这个计算实质上就是一个矩阵乘法:这个矩阵的列就是用原本的坐标描述的另一个坐标系的基向量,乘另一个坐标系中描述的向量,得到原来坐标下对这个向量的描述;在这个变换中,向量本身一直是同一个,只是描述方式(描述所用的坐标系对应的基向量)变化,这个矩阵描述的是对基向量的变换,由此区别于线性变换矩阵,称为基变换矩阵,如果我们想要反过来“翻译”,就需要这个基变换矩阵的逆矩阵(代表把原矩阵的变换再变回去的变换,在线性方程组章节详细介绍)
而我们提到矩阵的含义是描述一种线性变换,它是利用将变换后的基向量记录下来实现对变换描述的,那么,怎么将一个线性变换操作在两个坐标系(使用两套基坐标)之间“翻译”呢?这仍然可以通过矩阵乘法其施加多个矩阵所代表变换的作用来实现,另一坐标系下的一个向量受到本坐标系下某个矩阵所描述的线性变换得到的向量就是:\([基变换逆矩阵] 乘 [线性变换矩阵] 乘 [基变换矩阵] 乘 [用另一个坐标系描述的向量]\)
矩阵乘法从右往左解读:首先,另一个坐标系中的向量乘基变换矩阵,变换为了我们原本坐标系对同一个向量的描述,然后乘线性变换矩阵,就对这个向量进行了我们原本坐标系下记录的线性变换操作,最后乘基变换逆阵,将这些操作变回了另一个坐标系下的描述,这三个矩阵复合得到的矩阵就是用另一种坐标系描述的同一种线性变换
因此\(A^{-1}MA\)这种类型的计算其含义是一种转移:\(M\)代表一种变换,\(A^{-1}\)与\(A\)起到了“视角”上转移(从一个坐标系改换为另一个坐标系)的作用
行列式
- 一般的教材都是先算行列式,再教矩阵,然后让大家看两条竖线括起来的就是式子,方括号括起来的就是数字列表,但现在我们反过来,这能更好地理解行列式的意义
矩阵与行列式
-
行列式的本质
前面提到矩阵描述线性变换,我们可以发现,在经过不同种的线性变换后,有时空间被挤压,有时空间被拉伸,现在思考一个问题:如何测量一个矩阵所描述的线性变换对空间的拉伸或挤压程度?
这个问题可以转换为:线性变换导致一个给定区域面积增大或减小的比例
举一个简单的例子,\(\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix}\)这个矩阵,我们可以轻松看出它描述了x轴方向拉伸3倍,y轴方向拉伸2倍的变换,很显然,原来一个1×1的矩形(设想以\(\vec i\)与\(\vec j\)为边),经过这样的变换后,变成了3×2的矩形,面积是原来的6倍,而用行列式计算\(det(\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix})=\begin{vmatrix} 3 & 0 \\ 0 & 2 \end{vmatrix}=3 \times2-0\times0=6\),显然,\(\begin{vmatrix} 3 & 0 \\ 0 & 2 \end{vmatrix}\)计算给出了\(\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix}\)改变面积的比例
总而言之,一个线性变换对单位面积(三维下是体积)的缩放倍数,就是这个线性变换的行列式计算结果
-
行列式的几何意义
前面提到,行列式计算得出线性变换改变面积的比例
-
例如一个行列式计算结果为3,那么就说明这样的线性变换会将给定区域的面积变为原来的三倍;行列式得0.5,面积就是原来的一半
-
如果一个行列式计算结果为负数,就说明这样的变换改变了空间的定向,直观地说就是把空间翻转了,但这个结果的绝对值仍是面积变换的比例
注意,空间的定向如此确定:对于二维,\(\vec i\)与\(\vec j\)的左右顺序被颠倒即定向翻转,三维情况下则使用右手定则,伸出右手比个枪,食指为\(\vec i\)中指为\(\vec j\)拇指为\(\vec k\),如果变换后只能用左手这么做就是定向翻转了
-
有一个特殊的情况,就是行列式得0,面积变为0,对于二维行列式来说,就是将原本的平面压缩到了一条线或者一个点上;这意味着检查一个行列式是否得0,就能判断矩阵代表的变换有没有将空间压缩到更小的维度上
根据前文线性相关的定义(存在向量没有给张成空间增添新的维度),我们可知:线性变换的行列式得0 = 线性变换会将空间压缩到更小的维度上 = 存在一个非零向量在经过矩阵所描述变换后成为零向量 = 矩阵的列必然线性相关
-
行列式的计算
-
二阶行列式计算的本质
\(\begin{vmatrix} a & b \\ c & d \end{vmatrix}=a \times d-b \times c\),这是二阶行列式的计算公式,在了解了行列式的意义后,我们可以不必死记硬背,直接知道这个公式是怎么来的
-
记得前文的\(\begin{bmatrix} 3 & 0 \\ 0 & 2 \end{bmatrix}\)吗?我们令\(b\)与\(c\)为0,\(\begin{bmatrix} a & 0 \\ 0 & d \end{bmatrix}\)这个矩阵就表示在x轴方向上\(\vec i\)拉伸a倍,在y轴方向上\(\vec j\)拉伸d倍,\(ad\)就给出了原本单位正方向经过拉伸后的矩形面积
-
然后,如果\(b\)与\(c\)只有一项为0,那么原本的单位正方向经过变换得到一个底为\(a\),高为\(d\)的平行四边形,面积仍是\(ad\)(反映在数值上,\(b\)与\(c\)任一项为0,都会导致行列式\(a \times d-b \times c = a \times d\))
-
如果\(b\)与\(c\)都不为0,那么,与\(b\)、\(c\)只有一项为0的情况相比,这个平行四边形会在对角方向受到挤压,下面的图片展示了计算具体的几何含义:
-

-
三阶行列式的计算
二阶行列式可以联系到单位正方向经过变换形成的平行四边形面积,而三阶同理,可以联系到单位立方体经过变换形成的平行六面体体积
三阶以及更高阶的行列式可以按照公式逐步拆解为低阶的行列式,最后用公式计算,这一部分没什么可以讲解的,取决于你为什么学线性代数,要么多写练习册,要么别管怎么算让计算机处理
-
矩阵乘法与行列式
通过公式数值的方式,我们可以相当麻烦地证明:\(det(M_1M_2)=det(M_1)det(M_2)\),也就是两个矩阵相乘后进行行列式计算 = 两个矩阵的行列式计算的结果相乘
综合前文提到的几何意义,我们就能轻松地想到:
- 矩阵乘法 = 线性变换复合
- 行列式 = 线性变换缩放倍数
因此,两个矩阵相乘后进行行列式计算 = 两次线性变换复合效果的缩放倍数 = 两次线性变换缩放倍数的单独相乘
线性方程组
矩阵与线性方程组
-
矩阵与线性方程组
线性代数几乎被用在所有技术中,比较重要的原因就是矩阵可以用来求解线性方程组(所有未知量都是线性的方程组),借由矩阵乘法的形式可看出这样的方程组可以被写作一个向量方程,由系数矩阵\(A\),解向量\(\vec x\),常数向量\(\vec v\)组成

这不仅是为了把方程组写进一行,重要的是可以借助前面建立的几何观念处理这一过程(此处不介绍具体计算,只讲概念,如果需要解这个方程组,使用高斯消元法)
前面提到一个矩阵代表一种线性变换,矩阵乘一个向量就是对那个向量作线性变换,因此\(A\vec x =\vec v\)的本质就是系数矩阵\(A\)会将向量\(\vec x\)变换为\(\vec v\)
-
逆矩阵与方程组求解
借助线性变换了解线性方程组的几何含义后,我们就知道求解线性方程组意味着:找到一个合适的\(\vec x\),这个\(\vec x\)在经过\(A\)的变换后恰好得到\(\vec v\)
那么,怎么找这个\(\vec x\)呢?既然\(A\)意味着一种线性变换,那么理所应当有与\(A\)相反的变换,能够把\(A\)的变换给变回原样:例如一个矩阵将空间沿着x轴拉伸3倍,那么就有将空间沿着x轴压缩三分之一的矩阵将其复原,把这样的矩阵称为对应矩阵的逆矩阵,\(A\)的逆阵记为\(A^{-1}\)
从逆矩阵的定义,我们可知\(AA^{-1}=A^{-1}A=E\)(\(E\)是单位矩阵的记号,相当于数字中的1)简而言之就是先进行一次线性变换再进行对应的逆变换,得到的就是恒等变换(对应的矩阵是单位矩阵)
那么对于\(A\vec x =\vec v\),我们两边都乘上一个逆矩阵(对应在几何上,就是把\(A\)进行的变换“倒放”回变换之前),也就得到了\(A^{-1}A\vec x =A^{-1}\vec v\),即\(\vec x =A^{-1}\vec v\)
但是并不是所有矩阵都可以找到逆矩阵,接下来我们详细解释各种新概念
线性方程组的解
-
奇异矩阵
在解释行列式时提到了:行列式得0 = 线性变换会将空间压缩到更小的维度上,问题来了,如果一种变换把空间压缩到了更小的维度上,那么在变换前就有无数种可能的“原向量”,只不过被拍平到一起了,我们没可能分出来哪个才是原来的
例如说:一种变换把一个平面空间降为一条线,这时求它的逆变换,就需要把这一条线还原为一个平面,原本被变换到在那条线上的向量会被还原为一系列可能的向量,显然这违背了函数一一对应的原则

于是称这样的矩阵不可逆,或者叫奇异矩阵
注意,矩阵不可逆在特定情况依然可能有解,只是这个解无法通过逆变换找回来
-
求解线性方程组
求解需要区分变换后维度减少(\(det=0\))与变换后保持原维度(\(det\ne 0\))两种情况:
-
\(det\ne 0\):这意味着这一线性变换不把非零向量变为零向量 = 线性变换后保持张成空间不降维 = 系数矩阵列向量线性无关都对张成空间作了贡献 = 未知数个数等于方程数(注意这里提到的矩阵必须是方阵)
此时有且仅有一个向量在变换后与\(\vec v\)重合,而且不降维保证了变换可逆,这个向量也就可以用\(\vec x =A^{-1}\vec v\)求出
-
\(det=0\):这时不能使用\(\vec x =A^{-1}\vec v\),因为\(A^{-1}\)不存在,但如果我们变换的目标\(\vec v\)恰好处在被降维后的空间上,那就会存在无穷多解
例如平面被压缩为一条直线,如果向量\(\vec v\)正好就在这条线上,那\(A\vec x =\vec v\)就对无穷个\(\vec x\)(这些\(\vec x\)终点构成原平面中一条与“被压缩的方向”平行的直线)都能成立,称为无穷多解;但\(\vec v\)不在这条线上就是无解
被压缩回原点同理,如果\(\vec v\)恰好就是零向量,那全平面上的向量都是\(A\vec x =\vec v\)的解(这时\(A\)就是零矩阵,将任何向量变换为零向量)
-
矩阵的相关特性
-
秩
我们可以发现,虽然行列式都为零,但降维的程度不同,方程依旧有解的“难度”是不同的,例如前文提到的,二维被压缩成一维,只需要向量\(\vec v\)正好就在这条线上,但压缩成一定点,就只在\(\vec v\)恰好在那个点上时有解,现在我们需要一个新东西来衡量这种不同
我们用秩来称呼一个矩阵所包含的独立维度数(也就是rank,我觉得还不如不翻译,直接叫独立维数更直观),或者说,经过这个矩阵所描述的线性变换后会将空间变为几维
比如一个三阶方阵,只有两个线性无关的列向量(有一个对张成空间不作贡献、与其他两个列向量线性相关的向量),就说它的秩为2,这个矩阵所描述的线性变换会把三维空间压扁成二维
而当经过变换后的空间维度数不变,就说这个矩阵是满秩的,例如一个三阶满秩方阵,不会把空间压扁,只会将空间扭曲成另一种三维形式
-
列空间
一个矩阵变换后所能输出的所有向量合集被称为这个矩阵的列空间
矩阵的列向量描述基向量变换后的位置,而这些变换后的基向量张成空间就是所有可能的变换结果,所以列空间就是矩阵的列张成的空间
因此,一个矩阵的秩,即这个矩阵列空间的维数(例如:秩为1 = 矩阵张成空间为1维 = 经过该矩阵变换后空间被压缩为一维)
-
零空间
秩与矩阵列数相等时,秩达到最大值,这种情况称为满秩,满秩变换后唯一能落在原点的就是零向量本身,但对非满秩的矩阵,因为空间被压缩了,就会有一系列向量在变换后被压缩到原点成为零向量
这些变换后成为零向量的向量集合称为该矩阵的零空间
对\(A\vec x =\vec v\),当\(\vec v\)恰好是零向量时,零空间给出的就是向量方程所有可能的解
-
非方阵
前面提到矩阵默认为方阵(行数与列数相同),但其实那些并非方阵的矩阵,也能够表示线性变换,只是有特殊的含义:将原来的向量变换输出到不同维度数的空间中
-
例如,三行两列的矩阵秩最大为2,此时这个非方阵满秩(虽然有三行,但行秩不可能为3大于列数,非方阵的满秩指的是秩=行数与列数中较小的那一个)
对于三行两列矩阵来说:两列 = 输入的基向量有两个,三行 = 变换后的基向量由三个坐标描述,也就是它的列空间是三维空间(因为每个列向量有三维坐标)中过原点的一个平面(只有两个列向量只能张成平面)
简而言之,三行两列满秩矩阵代表列将平面上的两个基向量变换到三维空间的一个平面中,维数一直是二维,符合满秩表示的变换后空间维度数不变
-
另一种是列比行多的情况,例如二行三列的矩阵,可得有三个基向量经过变换后用两个坐标表示,也就代表将空间中的三个基向量变换到一个二维空间中;同理可以有一行二列矩阵将二维空间变换到一维数轴等等……
-
积
点积
-
点积的计算
-
数值上:两个向量之间的点积 = 两个向量对应坐标相乘再相加
-
几何上:两个向量之间的点积 = 将一个向量投影到另一个向量所在直线上所得投影长度与这另一个向量的长度相乘(方向相反时得到负数,得0说明互垂)
-
矩阵上:两个向量之间的点积 = 一个向量转置而成的矩阵(或者说将其中一个向量转化为线性变换)与另一个向量的矩阵乘法
-
\(\begin{bmatrix} u_x \\ u_y \end{bmatrix} \cdot \begin{bmatrix} x \\ y \end{bmatrix} = u_x \cdot x + u_y \cdot y\)
-
\(\begin{bmatrix} u_x & u_y \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix} = u_x \cdot x + u_y \cdot y\)
-
为什么两个向量的点积在几何上意味着向量投影后长度再相乘?结果又为什么等于一个向量转置而成的矩阵与另一个向量相乘?
事实上,这不是巧合,而是二维向量与1×2的矩阵之间相联系,让上述观点可以借由线性变换的视角统一起来
-
-
点积与线性变换
把向量放倒变成矩阵,或者把矩阵立起来变成向量,究竟表示了什么,有什么影响?
我们首先回忆非方阵的内容,一个一行二列的矩阵,也就是有一个坐标值的两个基向量,代表了一个会把二维空间压缩到一维数轴的线性变换
先假设一个从平面变换到数轴\(\vec u\)上的线性变换,那么需要通过一个变换到一维空间的\(\vec i\)与\(\vec j\)(也就是1×2的矩阵)来描述,得到这一矩阵过程如下:

把\(\vec i\)投影到\(\vec u\)上,利用对称性可知得到的值与\(\vec u\)投影到\(\vec i\)上是一样的,因此从二维变换到一维数轴上的\(\vec i\)应该是\(u_x\),同理可以处理\(\vec j\),如此我们就得到了描述这种从二维到一维的投影矩阵\(\begin{bmatrix} u_x & u_y \end{bmatrix}\)
根据矩阵乘法的定义,空间中任意向量经过此变换投影到\(\vec u\)上的结果就是投影矩阵与向量相乘:\(\begin{bmatrix} u_x & u_y \end{bmatrix} \cdot \begin{bmatrix} x\\y \end{bmatrix}=u_x \cdot x + u_y \cdot y\),可见投影矩阵与这个向量相乘的计算等同于这个向量与\(\vec u\)的点积,所以与单位向量的点积可以解读为将此向量投影到这一单位向量所在直线上的投影长度
-
而对于非单位向量同理,只需要在几何上缩放这一单位向量,对应在计算上就是乘这个向量的长度,也就是将一个向量投影到另一个向量所在直线上得投影长度后,还要与这另一个向量的长度相乘
而且从这一过程也可见点积满足交换律,因为不论选谁投影到谁,从一个向量投影到另一个向量得到的投影长度乘上被投影的向量长度得到的数值不会变
总而言之:
- 一个二维到一维(空间投影到给定数轴)的线性变换,可以用某个1×2的矩阵来描述
- 1×2的矩阵与二维向量相乘的计算过程和转置矩阵与二维向量求点积的计算过程相同,因此这个矩阵代表的投影变换必然与其转置后得到的二维向量相关
- 所以,对一个输出空间是一维的线性变换,空间中会存在唯一的向量与之相关,(可以把这种相关称为对偶)应用这一变换和与这个向量做点积是一样的
- 综上:向量不局限为空间中的箭头,也是线性变换的载体
叉积
-
叉积的计算
在二维空间中:两个向量之间的叉积的绝对值 = 两个向量为两条邻边构成的平行四边形面积
结果的正负由定向决定:对于\(\vec v \times \vec w\),当从\(\vec v\)旋转到\(\vec w\)的最小角度方向若是逆时针,结果为正,反之为负,也因此叉积不能像点积一样交换顺序
根据行列式的定义(线性变换导致一个给定区域面积缩放的比例),由此可以得到平面上叉积的计算方法:
-
将\(\vec v\)和\(\vec w\)两个向量为列写为矩阵,这个矩阵对应了将\(\vec i\)和\(\vec j\)移动为\(\vec v\)和\(\vec w\)的线性变换:对其取行列式就得变换前后的面积比例
\(\vec i\)和\(\vec j\)构成的单位正方形面积为1,所以行列式的数值(变换后的面积比例)就直接等于变换张成平行四边形的面积,并且行列式的正负也反映定向的改变,因此\(det\{\begin{bmatrix} \vec v & \vec w \end{bmatrix} \}= \vec v \times \vec w\)
需要注意的是,二维叉积的结果会退化为标量,成为一个带正负的面积,真正的叉积其实是:两个三维向量生成一个新的三维向量
在三维情况下,叉积运算的结果是一个新的向量:这个新向量的长度是两个向量为邻边组成的平行四边形的面积,向量的方向与平行四边形所在面垂直,具体所指方向由右手定律决定
-
叉积最直接的计算方法是:\(\begin{bmatrix} v_1 \\ v_2 \\ v_3 \end{bmatrix} \times \begin{bmatrix} w_1 \\ w_2 \\ w_3 \end{bmatrix} =\begin{vmatrix} \vec{i} & v_1 & w_1 \\ \vec{j} & v_2 & w_2 \\ \vec{k} & v_3 & w_3 \end{vmatrix}\),将基向量视作数参与运算,最终得到结果向量的三个坐标(注意,一般的写法是将向量按行写,但因为前文介绍矩阵的意义时是按列的,而且行列式转置不影响值,所以这里按列写)
但是,这个计算方式又意味着什么?我们可以借助线性变换,证明这样的计算得到的是长度是两个向量张成平行四边形的面积,方向遵循右手法则(垂直于\(\vec v\)和\(\vec w\))的向量
-
-
叉积与线性变换
前文在介绍点积时,引入了如下思想:一个从空间到数轴的线性变换,总是有与之对应的对偶向量,使得应用这一线性变换等价于和这个对偶向量点乘(例如前文所述用1×2的矩阵表示的线性变换,等同于点乘这个矩阵转置而来的2×1向量)
所以,我们可以沿用这个思路,设法根据\(\vec v\)和\(\vec w\)构造一个从三维到一维的线性变换,找到这个变换的对偶向量,并证明这个对偶向量就是叉积的结果\(\vec v × \vec w\),这样就能够将叉积的计算过程联系到其几何含义上
- 对于二维向量的叉积,我们直接将两个向量拼成矩阵再取它的行列式,在几何上得到两个向量张成平行四边形的面积(根据定向带正负)
- 而对于三维向量的叉积,如果沿用这一思路,那就是三个向量拼成矩阵再取行列式,得到一个平行六面体的体积,这不是我们所要的从两个向量得到一个向量的计算,但我们可以从此出发:
既然叉积的运算只接收两个向量,那就将这个三维矩阵的第一个向量看作可变向量\(\begin{bmatrix} x \\ y \\ z \end{bmatrix}\),\(\vec v\)和\(\vec w\)保持不变,这就构造了\(f(\begin{bmatrix} x \\ y \\ z \end{bmatrix} ) =\begin{vmatrix} x & v_1 & w_1 \\ y & v_2 & w_2 \\ z & v_3 & w_3 \end{vmatrix}\),这是一个函数:根据行列式为线性变换缩放倍数的定义,这个函数输入一个向量,结果为一个数(三个向量为棱的平行六面体的体积,带正负),利用这个函数,我们能够论证叉积凭什么是一个长度是两个向量为邻边组成的平行四边形的面积,方向与平行四边形所在面垂直的向量
-
这个函数描述了一个从空间到数轴的线性变换,所以可以通过矩阵乘法来描述这个函数:因为是从三维到一维的变换,所以可以用一个1×3矩阵描述,即\(\begin{bmatrix} p_1 & p_2 & p_3 \end{bmatrix} \begin{bmatrix} x\\y\\z \end{bmatrix}=\begin{vmatrix} x & v_1 & w_1 \\ y & v_2 & w_2 \\ z & v_3 & w_3 \end{vmatrix}\),然后再根据已经论证过的点积的对偶性,应该能找到一个对偶向量\(\vec p\),实现\(\begin{bmatrix} p_1 \\ p_2 \\ p_3 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} =\begin{vmatrix} x & v_1 & w_1 \\ y & v_2 & w_2 \\ z & v_3 & w_3 \end{vmatrix}\),\(\vec p\)应该是什么?将这个等式视作方程计算,对比等号两边系数可得:\(\begin{matrix} p_1=v_2w_3-v_3w_2 \\ p_2=v_3w_1-v_1w_3 \\ p_3=v_1w_2-v_2w_1 \end{matrix}\)
-
现在我们切换到几何视角:我们通过对偶性已经得到\(\vec p \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} =\begin{vmatrix} x & v_1 & w_1 \\ y & v_2 & w_2 \\ z & v_3 & w_3 \end{vmatrix}\),等式前半部分点积的几何意义是其他向量投影到\(\vec p\)上再将投影长度乘\(\vec p\)的长度;等式右半部分行列式的几何意义是这三个向量张成平行六面体的体积,这个平行六面体的底是\(\vec v\)和\(\vec w\)张成的平行四边形,高是把\(\begin{bmatrix} x \\ y \\ z \end{bmatrix}\)这个向量投影到垂直于\(\vec v\)和\(\vec w\)的直线上的投影长度,也就是\(\vec p \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} =S\cdot \hat n \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix}\)(S是底面积、\(\hat n\)是垂直于底面的法向量)
-
现在,最重要的一步:\(\vec p \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} =S( \hat n \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix})=(S \hat n) \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix}\)
也就是这个右半部分(体积)等同一个长度为\(\vec v\)和\(\vec w\)张成平行四边形面积、方向垂直于\(\vec v\)和\(\vec w\)的向量\((S\cdot \hat n)\)与\(\begin{bmatrix} x \\ y \\ z \end{bmatrix}\)点乘,再联系等式的左半部分,可知这个向量\((S\cdot \hat n)\)就是之前运算所得的\(\vec p\)
综上,\(\vec v \times \vec w=\begin{vmatrix} i & v_1 & w_1 \\ j & v_2 & w_2 \\ k & v_3 & w_3 \end{vmatrix}=\vec p \cdot \begin{bmatrix} i \\ j \\ k \end{bmatrix} =p_1\vec i+p_2\vec j+p_3\vec k=\vec p\),这个\(\vec p\)几何上是一个长度为\(\vec v\)和\(\vec w\)张成平行四边形面积、方向垂直于\(\vec v\)和\(\vec w\)(遵循右手定则)的向量
特征向量与特征值
线性变换与特征向量
-
特征向量与特征值的几何意义
一个矩阵的特征值和特征向量到底反映了矩阵什么特征?结合之前线性变换的几何含义,所谓特征的意义就呼之欲出:
一个矩阵描述了一种线性变换,而在经过线性变换后,空间中的大多数向量都会发生拉伸与旋转,离开向量原本所张成的直线
但是,会有一些特别的向量,在线性变换的前后都处在同一直线上,仅有长度发生变换,那么就把这个变换对其只有拉伸或压缩作用的向量称为这一变换的特征向量,而这个变换后向量长度拉伸的倍数就是这一特征向量的特征值( 当这个特征值为负数时,意味着向量被反向 )
-
特征向量与特征值的作用
所以,这些特征有什么用?现在假设在三维空间中有一个代表了进行旋转变换的三阶矩阵,那么这个矩阵的特征向量(即在变换中不发生旋转的向量)所在的直线显然就是这一变换的旋转轴(这个旋转矩阵必然有一个特征值为1,这样才不会缩放旋转轴上的向量)
这样就把一个三维旋转表示为了绕某个轴旋转一定角度,而非一个相应的三阶矩阵
如上所述:在之前对矩阵的描述中,我们把矩阵的列向量视作变换后的基向量来理解其几何含义,但是这种做法比较依赖于原先的那个特定坐标系,因此了解一个矩阵代表了什么线性变换更好的办法是:求出它的特征向量与特征值
特征向量与特征值的计算
-
特征向量与特征值的方程
综上,变换矩阵\(A\)对特征向量\(\vec v\)作用效果等同于直接将特征向量\(\vec v\)乘以特征值\(λ\)
根据这一几何意义,我们能够轻易得到计算特征向量\(\vec v\)与特征值\(λ\)的方程是:\(A \vec v =λ \vec v\)
-
求解特征向量与特征值
但是等号的左边是矩阵向量乘积,右边是向量数乘,难以像一般方程那样直接求解,由此解这个方程的方法应该是:
-
首先把等号的右边转写为矩阵乘法,\(λ \vec v\)的计算效果等同于\(λ I \vec v\)(\(I\)为单位矩阵,也记作\(E\),对角为1其他为0)
-
然后就能够把原本的方程变形为:\((A-λI)\vec v = \vec 0\),显然\(\vec v\)为零向量时恒成立,但我们想找的是非零的特征向量
-
而在之前讲解零空间时,我们知道:
对非满秩的矩阵,因为空间被压缩了,就会有一系列向量在变换后被压缩到原点成为零向量
也即必须是一个非满秩的矩阵,才能存在非零向量,在经过这个矩阵的变换后变成零向量,也即使得这个矩阵和它的乘积为零,而非满秩矩阵的行列式必然为0(行列式计算得到变换的缩放倍数,而压缩到低维空间必然意味着变换后是原来的0倍)
所以,\(|A-λI|=0\),从这个式子就可解出可能的特征值
- 在得到可能的特征值后,代回\((A-λI)\vec v = \vec 0\),如求解其他线性方程组那样,去求各个特征值所对应的特征向量\(\vec v\)
-
-
特征向量的各种情况
-
二维的线性变换不一定有特征向量,特征值没有实数解表明没有特征向量
对于一个旋转变换,特征值为复数(没有特征向量,因为所有向量都离开了它原本张成的那条直线,能够计算得到其“特征值”是虚数)
-
对于一个剪切变换,特征值为1(二重根,因为沿着剪切的轴必然没有发生变化)
-
可能出现只有一个特征值,但是特征向量不止在一条直线上的情况
对于一个缩放变换,特征值显然是缩放倍数,但每一个向量都是属于这个特征值的特征向量
-
矩阵对角化
-
特征基
-
如果基向量恰好是特征向量,会发生什么?例如一个\(\vec i\)方向拉伸-1倍,\(\vec j\)方向变换2倍的矩阵,得到的是\(\begin{bmatrix} -1 & 0 \\ 0 & 2 \end{bmatrix}\)
很明显,这个矩阵的有两个特征向量:一个为\(\vec i\),对应特征值-1,一个为\(\vec j\),对应特征值2,由此可以总结出规律:
对角矩阵(和单位矩阵一样只有对角线上有值,其他都为零,不同之处是值不必为1),所有的基向量都是特征向量,而对角元就是他们所属的特征值
-
对角化
特征向量恰好是基向量的情况当然少见,讨论这种情况的主要作用是提供一种思路:为什么不利用基变换强行让特征向量恰好是基向量?
既然特征基的情况非常简洁直观好计算,那对于那些有许多特征向量的变换,如果可以选出能够作为基向量的特征向量(要求n维空间的变换,能选出n个线性无关向量),然后可以由此进行基变换(取出想作为新基的特征向量坐标,作为矩阵的列构成基变换矩阵\(A\),然后使用\(A^{-1}MA\)得到同一个变换在新基坐标系下的表示)
这样一来,得到的新矩阵\(A^{-1}MA\)必然是对角的,而且对角元就是对应的特征值,因为在这个特征向量变成基向量的坐标系中,这个矩阵所代表的变换只进行了缩放,把这个操作称为对角化
(对角矩阵好计算的特性也有一些妙用,比如计算一个矩阵的100次幂,可以先对角化,计算完再转换回来)
抽象向量空间
深入问题
-
再问一遍:什么是向量
前文讲解的行列式(变换对面积的缩放比例)和特征向量(变换中留在它所张成空间中的向量),它们与所选坐标系无关,自由选取坐标系并不能改变它们,这说明了,是一种“暗含”在空间中的属性
问题来了:如果向量的本质有着暗含在空间中的部分,那之前所提到的“向量是一个数字列表”错了吗,所谓空间又为什么能“暗含”性质
-
表象到本质
前面的章节都很形象好理解,但这种“形象”是有代价的,那就是让狭隘的表象不完整地呈现了普适的本质,例如之前介绍线性时,其反映在二维空间上的“表象”是变换后网格线保持平行且等距,我们可以很轻松地想象出来,而线性的本质是变换同时满足可加性\(L(a+b)=L(a)+L(b)\)与齐次性\(L(ka)=kL(a)\),对于一般维数、一般向量空间中的线性性,就无法靠二维图像直接看出,需要回到这个普适而抽象的定义去验证
回到刚刚的问题,“向量是一个数字列表”错了吗?没有,但其将向量的表示与定义弄混了,向量在一个固定了基的向量空间中,可以表示为一个有序的数字列表,而向量实际上是某个向量空间中的元素(普适的本质),这个有序数字列表是它在某组基下(狭隘的)的坐标(表象)
而所谓“暗含的本质”,也就是被“狭隘的表象”部分呈现出的东西:空间并非神秘地“暗含”行列式或特征向量,而是因为这些性质描述的是线性变换本身,也就不依赖如何用坐标这个表象对变换的记录,比如说同一段路线,在不同的地图上呈现不同的样子,但路线作为空间中的曲线是不会变的
注意:其实这段叙述本身也让“狭隘的表象不完整地呈现了普适的本质”,所谓“狭隘”、“表象”、“本质”这些哲学的词还有结尾的比喻,都是为了方便表达这种思想而用的,容易让人误会,真正在数学上严谨的说法是“由线性结构定义的不变量,不随基变换而改变”
线性代数与函数
-
变换与算子
之前提到过:
事实上,函数、变换、算子都是映射:函数是最一般的叫法;变换强调空间中的映射;算子强调作用在函数空间或无穷维空间上的映射
综合刚刚的论述,我们可以想到,既然它们是同一种本质的不同表象,那在一个领域中学到的东西,在另一边也应该能找到直接的类比
例如:在线性代数领域的“线性变换”,可以与函数领域的“线性算子”等同,不仅仅是概念上的等同,而是可以直接转化
-
求导矩阵
以函数的求导为例,求导具有线性性与齐次性,属于一种线性算子,那么肯定能找到一个矩阵,这个矩阵所代表的线性变换即求导
要求导的是多项式\(ax^n+bx^{n-1}+\dots +m\),首先需要给空间一个坐标的含义,自然,我们可以想到选x的不同次幂作为基函数:
-
得到\(\begin{bmatrix} 1 \\ x\\ x^2\\ x^3\\ \vdots\\ \end{bmatrix}\),所谓基函数发挥类似几何空间中\(\vec i\)、\(\vec j\)的作用,而对应的求导矩阵是这样的:\(\begin{bmatrix} 0 & 1 & 0 & 0 & \cdots & 0 \\ 0 & 0 & 2 & 0 & \cdots & 0\\ 0 & 0 & 0 & 3 & \cdots & 0\\ \vdots & \vdots & \vdots & \ddots & \ddots & \vdots\\ 0 & 0 & 0 & 0 & \cdots & n\\ 0 & 0 & 0 & 0 & \cdots & 0 \end{bmatrix}\)
直接演示一下更好理解:求导\(5+3x+x^2\),根据基函数写出其坐标为\(\begin{bmatrix} 5\\ 3\\ 1\\ 0\\ \vdots\\ \end{bmatrix}\),然后左乘求导矩阵,得\(\begin{bmatrix} 1·3\\ 2·1\\ 0\\ \vdots\\ \end{bmatrix}\),得\(3+2x\)
-
最后问一遍:什么是向量
但是,讲了这么多,所以什么是向量?综上所述,最终的答案就是:不重要,因为“向量”不是一个具体东西的名字,而是一个角色,只要某个集合配上加法和数乘满足向量空间公理,这个集合就是“向量空间”,它的元素就扮演“向量”这个角色,求导算子、矩阵、函数、箭头、数字列表都可以是向量
换言之,只要处理的对象具有合理的(数学家整理了一系列公理作为约定)数乘和相加概念,无论是空间中的箭头、数字列表还是函数的集合等等,那么线性代数中所有关于向量、线性变换和其他只依赖线性结构的结论就都适用,上文求导算子与矩阵的转化就是一个例子
那么,与其纠缠于“哪些东西才算向量”,不如直接触及“本质”,建立一系列向量加法和数乘必须遵守的规则(也就是公理),从而能把这些结论应用到新的向量空间,无论这个向量空间是箭头的集合、数字列表的集合甚至其他什么东西的集合
本文来自博客园,作者:无术师,转载请注明原文链接:https://www.cnblogs.com/artlessist/p/23060299
本文使用知识共享4.0协议许可 CC BY-NC-SA 4.0
特别说明版权归属的文章以及不归属于本人的转载内容(如引用的文章与图片)除外

浙公网安备 33010602011771号