Part -1
感谢3b1b的视频提供了部分思路与图片。
感谢ComeIntoPower对本文的修改建议。
感谢CSDN提供了一张图片。
感谢luogu图床。
Part 0
应@ComeIntoPower的宝贵建议,针对oier的需求对文章内容进行了修改。感兴趣的可以见原版。
Part 1 线性空间的概念
1.1 向量的实质
首先搬出一般的定义:同时具有大小与方向的量。但对于oiers来说,事实上m维向量就是具有m个元素的列表,例如stl中就把动态数组作为vector(向量)。线性代数中,常常把向量的起点认为是原点,而终点就可以唯一地表示一个向量。
在第一种意义上,向量指导了在空间中的运动。向量\alpha=(a_1,...,a_n)表示分别向第i个坐标轴上移动a_i的长度。两个向量的相加运算就是先后执行两个运动,显然有(\alpha+\beta)_i=\alpha_i+\beta_i。以此为基础理解数乘,即得(k\alpha)_i=k\alpha_i。
在第二种意义上,n维向量是用n个独立元素来确定一件事物。例如我们只关心一本书的页码和价格,就可以向量用(pages,prices)来表示这本书。向量的加法和数乘就是多个书的叠加。
数学上,我们会折合两种说法。鉴于线性变换的意义,规定一切满足普通向量的相加和数乘性质的量都是向量。例如函数也是向量(详见后文)。
这些性质有严谨的八条法则,这里仅加以概括:加法交换律、结合律与数乘分配律。
1.2 线性组合、张成的空间与基向量
线性组合:若干个向量\alpha_i,对于任何一组数a_i,称a_1\alpha_1+a_2\alpha_2+...+a_m\alpha_m为它们的线性组合。通过几个以原点为起点的向量的线性组合,能够到达的所有区域称为它们张成的空间。
线性无关:若干个向量不能用彼此的线性组合表示出,则称它们线性无关。
在n维空间中,有一组特别的向量,它们是每个坐标轴上的单位向量。即i=(1,0,0,0,...),j=(0,1,0,0,...),k=(0,0,1,0,...)等等。通过向量加法的定义,我们可以知道它们可以张成整个n维空间,也就是说,能够通过线性组合表示出任意n维线性空间的向量。这一组特别的向量称为标准正交基,它们是长度为1、互相垂直的向量。
但是可以发现,事实上任意n个线性无关的向量都能够张成全空间。如果以它们作为单位向量,显然也可以构建出一个向量空间。但如果线性相关,则有一个“单位向量”显然会和剩余n-1个向量属于同一个n-1维平面(这一点很显然,请自行思考)。这样就只能张成小于n维的空间了。
n维空间这组线性无关的向量称为它的一组基或基向量。
Part 2 矩阵的本质与线性变换
“变换”一词其实就是“函数”的花哨写法。它接受一个输入向量,并给出一个输出向量。在变换中,有一类是比较容易理解且用处较多的,它们被叫做线性变换。何谓“线性”?即满足任何一条直线变换后仍是直线、原点位置不变的变换。换句话说,满足坐标网格变换后平行且等距。
那么我们究竟如何用数值来表示这一变换呢?事实上,由于线性变换的性质,我们只需要考虑基向量是如何变换的。以二维空间为例,在输入空间里,基是(1,0)和(0,1),但输出空间中,基可能变成了(0,1)和(-1,0)(注:这是逆时针旋转90°的操作)。由于网格线平行等距,变换前的线性组合仍然成立。也就是说向量(a,b)=a(1,0)+b(0,1),在新的空间中便是a(0,1)+b(-1,0)=(-b,a)。我们记录变换后的基向量的位置,把他们从左到右写一遍,凑成一个方阵\begin{pmatrix}0&-1\\1&0\end{pmatrix},则这个线性变换可以唯一地用这个方阵表示,称为“矩阵”,并且定义\begin{pmatrix}0&-1\\1&0\end{pmatrix}\begin{pmatrix}a\\b\end{pmatrix}是变换后的向量,即\begin{pmatrix}0a-1b\\1a+0b\end{pmatrix}。
类似地,推广到n维空间,可以得到:
A=\begin{pmatrix}a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\...&...&...&...\\a_{n1}&a_{n2}&...&a_{nn}\end{pmatrix}\begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix}=\begin{pmatrix}\sum\limits_{1\le i\le n}a_{1i}x_i\\\sum\limits_{1\le i\le n}a_{2i}x_i\\...\\\sum\limits_{1\le i\le n}a_{ni}x_i\end{pmatrix}
但是,我们目前所述的所有矩阵,都是n\times n的方阵。那么非方阵的n\times m矩阵又是怎么回事?
事实上,线性变换并非n维到n维,一个从n维到m维的变换是完全合理的。例如以下的变换:
这是一个二维到三维的变换,可以看出,输出空间是一个三维空间中的斜面。我们同样把变换后的基向量坐标拼接在一起,成为一个3\times2的矩阵:
\begin{pmatrix}Trans(e1_x)&Trans(e2_x)\\Trans(e1_y)&Trans(e2_y)\\Trans(e1_z)&Trans(e2_z)\end{pmatrix}
第一列和第二列分别是两个基e1和e2变换后的坐标。这个矩阵与二维向量相乘,并输出一个三维向量。这就是非方阵的意义。
总结一下重点
矩阵与线性变换一一对应。由于在线性变换前后同一线性组合的系数不变,则变换前后任意一个向量都可以写作基向量的同一线性组合,故我们可以用变换后的基唯一表示一个线性变换。我们将变换后的基向量从左到右写成一张数表,将其称为矩阵。线性变换作用于向量上,定义为矩阵左乘一个向量。
这里是时候讲矩阵乘法了。
考虑对X先作一个线性变换B,再作一个线性变换A,显然结果是A(BX)=ABX(说明:矩阵乘法从左往右算,但是对应的线性变换是从右往左分别执行)。考虑到B是变换后的基,再作变换A,最终基落在AB_i,其中i表示第i个基。因此我们用A对B中每个矩阵分别相乘,得到:
(AB)_{ij}=\sum\limits^m_{k=1}A_{ik}B_{kj}
事实上,由于线性变换并不一定与执行顺序无关,矩阵乘法没有交换律。
补充说明:“变换F执行后,网格线平行且等距”一性质,与下面的两条法则完全等价:
F(f+p)=Ff+Fp,F(kf)=kFf
为了保证oier对这方面知识的充分理解,我们再举个形象的例子:
有一个向量,在标准正交基下
\begin{pmatrix}x\\y\end{pmatrix}=x\begin{pmatrix}1\\0\end{pmatrix}+y\begin{pmatrix}0\\1\end{pmatrix}
现在将空间作顺时针旋转45°变换,如图,基向量变为:
\hat{i}=\begin{pmatrix}1\\-1\end{pmatrix},\hat{j}=\begin{pmatrix}1\\1\end{pmatrix}
则这个向量变换后为
\begin{pmatrix}1&1\\-1&1\end{pmatrix}\begin{pmatrix}x\\y\end{pmatrix}=\begin{pmatrix}x+y\\y-x\end{pmatrix}
Part3 行列式
在一个矩阵A对应的线性变换下,一个区域广义体积的放大率,称为A的行列式,记作|A|或\det(A)。行列式的符号有严格的规定,后文将详述。但如果认为体积非负,那么放大率为行列式的绝对值||A||,在可能有歧义时,本文将行列式记作\det A,绝对值记作|x|。
由“网格平行且等距分布”一性质,可得到一推论:任何区域在相同的线性变换下有相同的放大率。因此,只需要考虑标准正交基所形成的n维立方体的放大率。我们说过矩阵代表基的坐标,因此可以用n阶单位阵来表示标准正交基。则:\det A=vol(AI)/vol(I)=vol(A),其中vol表示矩阵每个列向量所构成的n维平行多面体有向体积(即叉积)。
利用行列式几何意义显然可以得到如下性质(A_i表示第i行或列向量):
性质1
\det(A_1,...,a\alpha+b\beta,...,A_m)=a\det(A_1,...,\alpha,...,A_m)+b\det(A_1,...\beta,...,A_m)
性质2(体积有向的体现)
\det(A_1,...,A_i,...,A_j,...,A_m)=-\det(A_1,...,A_j,...,A_i,...,A_m)
性质3
\det(A_1,...,\alpha,...,\alpha,...,A_m)=0
利用这几个性质,有如下推导(E表示单位阵):
(LaTeX太长懒得打了)。
这便是同济《线性代数》书中的定义。其中\tau_\sigma=(-1)^{\text{排列}\sigma\text{的逆序数}},\sigma为1,2,3,...,n的一个排列。
注意第6、7个等号后面的式子,有\det(e_{\sigma(1)},...,e_{\sigma(n)})=\tau_\sigma,这就是所谓“有向”体积。读者不妨从逆序数的定义出发,思考一下这个等式的实际意义。
前面的概念比较抽象,举一个二维的例子:
注:ab是向量。
行列式\det(a,b)就是图中黄色部分面积。这是因为矩阵(a,b)对应的线性变换把原来(1,1)的基组成的矩形变换成了图中的平行四边形。故放大率为vol(a,b)/vol(I)=S_{yellow}/1=S_{yellow}
行列式的计算:
基础概念
- 主对角线以下(上)的元素都为0的行列式叫做上(下)三角行列式。
- 既是上,又是下三角行列式的行列式叫做对角行列式。
- 去除矩阵A的第i行,第j列后的行列式称为a_{ij}的余子式,(在不引起歧义时)记作M_{ij}。(-1)^{i+j}M_{ij}称为a_{ij}的代数余子式,(在不引起歧义时)记作A_{ij}。
法一:转上(下)三角行列式,即高斯消元
行列式计算首推此法。
对于下三角行列式,有:
\begin{vmatrix}a_{11}\\a_{21}&a_{22}\\a_{31}&a_{32}&a_{33}\\...\\a_{m1}&a_{m2}&a_{m3}&...&a_{mm}\end{vmatrix}=\prod\limits_{k=1}^ma_{kk}
证:对于行列式展开式的乘积中不为0的元素\tau_\sigma\prod a_{iJ_i},必有J_i<=i,又因为是1-n的一个排列,有\sum J_i=1+2+...+n,可以迭代求出J_i=i。显然\tau_\sigma=(-1)^0=1,所以得证。
应用性质1、2,可以把任何行列式转为这种形式。
例题:求
D=\begin{vmatrix}2&0&1\\1&-4&-1\\-1&8&3\end{vmatrix}
解:第一行加到第二行:
D=\begin{vmatrix}2&0&1\\3&-4&0\\-1&8&3\end{vmatrix}
第三行乘-1/3加到第一行:
D=\begin{vmatrix}\dfrac73&-\dfrac83&0\\3&-4&0\\-1&8&3\end{vmatrix}=\dfrac13\begin{vmatrix}7&-8&0\\3&-4&0\\-1&8&3\end{vmatrix}
第二行乘-2加到第一行:
D=\dfrac13\begin{vmatrix}1&0&0\\3&-4&0\\-1&8&3\end{vmatrix}=-4
为了方便编程实现,一般转成上三角行列式。上三角行列式的值仍然等于对角线元素之积。读者不妨模仿下三角行列式证明之。
法二:按行(列)展开
定理:D=\sum\limits_{1\le j\le m}a_{ij}A_{ij}
求范德蒙德行列式是一个很好的例题。
证明:[here](https://baike.baidu.com/item/%E8%8C%83%E5%BE%B7%E8%92%99%E8%A1%8C%E5%88%97%E5%BC%8F/6081288?fromtitle=%E8%8C%83%E5%BE%B7%E8%92%99%E5%BE%B7%E8%A1%8C%E5%88%97%E5%BC%8F&fromid=15995336&fr=aladdin)
**法三:公理化定义法**
此方法一般用于求一些特殊东西的行列式,例如:
$$\det F=kp,Ff(x)=kf(px)$$
为啥?横纵坐标各放大k倍、p倍,总放大率当然是kp啦。至于函数变换为啥能求行列式?Part1有详细解释。
$Ff$为线性变换的充要条件:$f$为向量,且$F(f+g)=Ff+Fg$且$F(kf)=kFf$。
再来一个比较复杂的例子:
$$Ff(x)=\int_{-\infty}^{+\infty}f(t)e^{ixt}dt$$
前面说了函数符合向量的定义,因此这显然是一个线性变换,因为$F(f+g)=Ff+Fg$且$F(kf)=kFf$。
它的逆变换呢?学过**傅里叶变换**的同学可以知道:
$$F^{-1}f(x)=\frac1{2\pi}\int_{-\infty}^{+\infty}f(t)e^{-ixt}dt$$
x多了一个负号?这意味着将空间的手性取反。而这并不影响放大率,只影响符号。而由于$\det(kA)=k\det A$,故综上得到:$\det(F^{-1})=-\dfrac1{2\pi}\det(F)$。
又因为$FF^{-1}=I$,所以$\det F*\det F^{-1}=\det(FF^{-1})=\det I=1
代入后得到\det F=\pm\sqrt{2\pi}。
几何实质的重要性在这里得到了充分的体现:如果没有树立矩阵与行列式的正确观念,而是使用同济教材中行列式的定义,则此处行列式只能说是“不可计算”。
Part4 逆矩阵、列空间与零空间
逆矩阵
满足AB=BA=I时,称AB互为逆矩阵,记作A=B^{-1}或B=A^{-1}。
逆矩阵的几何直观是:在线性变换A下,向量X变为了向量Y,现在给出了A和Y,求倒退回X。显然因为AX=Y,故X=A^{-1}AX=A^{-1}Y。因为在一般情况下,执行变换A,再变回来(A^{-1})等于什么都没做(恒等变换)。
然而事实上,当\det A=0时,由于放大率成了0,说明变换后的图形不再具有n维体积,必然降到了一个更低的维度。这就导致了许多个一个向量坐标变换后重叠。非单射函数没有反函数,因此A没有逆矩阵。
逆矩阵的求法如下:
前置概念:
定理:A^{-1}=\dfrac1{|A|}A^{*}
显然A有逆的充要条件是|A|\not=0。利用|AB|=|A||B|可以非常轻松地证明此条件,此处不再赘述。我们把|A|=0的矩阵称为奇异矩阵,否则称为非奇异矩阵。
另一种方法:高斯消元
构造增广矩阵[A|I](把A写在左边,I写在右边拼接成的矩阵),用初等变换变换把左边变换为与之等价的对角矩阵。每行提出一个系数,把增广矩阵变换成[I|B]的形式。则B=A^{-1}。
证明:因为只有初等变换,所以相当于P[A|I]=[I|B],即PA=I,P=B。因此得证。
一些性质:
(A^{-1})^{-1}=A
(kA)^{-1}=\dfrac1k A^{-1}
(AB)^{-1}=B^{-1}A^{-1}
例题:
1.求X使AXB=C
解:A^{-1}CB^{-1}=A^{-1}AXBB^{-1}=X
列空间、零空间与秩
三句话概括书中也许十分冗长的定义:
列空间:矩阵的所有列向量张成的空间。
秩:矩阵列空间的维数。记作rank(A)。
零空间:使关于向量X的方程AX=O的解空间。
当秩等于矩阵的行数和列数的最小值时,称为满秩。只有秩不满时,空间被变换成一个维度更低的空间,则显然有无数组向量被压缩到原点,只有满秩时,零空间有且仅有一个向量构成。很明显地,一个矩阵为满秩当且仅当行列式非零。
Part5 基变换
现在有一个线性空间,有两组基向量。那么在每一组基下,向量(a,b,...)会被看做这一组基e_1,e_2,...的线性组合ae_1+be_2+...。
可以看出,同一个向量在不同的基下有不同的坐标。那么如何把一个向量在两组不同的基中转换?现在的基是一组标准正交基,前面说过那么矩阵的每一列就代表每一个基变换后的坐标。我们把新的基从左到右凑成一个矩阵,称为变换矩阵。用这个矩阵左乘新基下的向量,就能得到这个向量在原有基的意义下的坐标。而现有基下的向量左乘变换矩阵的逆矩阵,即可得到新基下的表示。
例如,向量(a,b)在新的基(1,1),(0,1)下表示为\begin{pmatrix}1&0\\1&1\end{pmatrix}^{-1}\begin{pmatrix}a\\b\end{pmatrix}。
在进一步,用新基意义下的一个矩阵A作用在现有基下的向量X,结果用现有基来表示。这个问题如何解决?
可以先对向量做基变换(左乘P^{-1}),再变换回来。设变换矩阵为P,则结果:PAP^{-1}X。
这样的变换有什么用武之地呢?下一部分揭晓。
Part6 特征向量与特征值
可以发现,在某些变换后,有一系列向量仍然位于原来的直线上,它们只被进行了缩放,而没有改变方向。求出这些特殊向量使很有价值的,因此有如下定义:
若AX=kX,其中k为数,则称X为A的特征向量,k为A的特征值。
则(A-kI)X=0,由\det(AB)=\det A\det B得:若X不是零向量,则\det(A-kI)=0。
它的一个应用是对角化矩阵:定理:若P^{-1}AP为对角矩阵,则p_i为A的特征向量。
证:设P^{-1}AP=diag(k_1,k_2,...,k_n)=K(注:表示对角线分别为k_1,...,k_n的对角矩阵),则:AP=PK,则显然有Ap_i=k_ip_i,得(A-k_i)p_i=0,即P的第i列向量p_i是A的特征向量,k_i是对应的特征值。
我们结合Part5基变换的知识,可以得到:
A=PKP^{-1}
因此
A^n=PKP^{-1}P...P^{-1}PKP^{-1}=PK^nP^{-1}
这就给出了一个计算矩阵n次幂的有效方法。
例如:斐波那契数列满足:
\begin{pmatrix}F_n\\F_{n-1}\end{pmatrix}=\begin{pmatrix}1&1\\1&0\end{pmatrix}^{n}\begin{pmatrix}0\\-1\end{pmatrix}
那么特征值有\begin{vmatrix}1-k&1\\1&-k\end{vmatrix}=0
解得:k=\dfrac{1\pm\sqrt5}2则K=\begin{pmatrix}\dfrac{1+\sqrt5}2&0\\0&\dfrac{1-\sqrt5}2\end{pmatrix}
特征向量:\begin{pmatrix}1&1\\1&0\end{pmatrix}\begin{pmatrix}x\\y\end{pmatrix}=k\begin{pmatrix}x\\y\end{pmatrix}
求解后发现:x=\dfrac{1\pm\sqrt5}2y
取一组简单一点的解:\begin{pmatrix}1+\sqrt5&1-\sqrt5\\2&2\end{pmatrix}
这就得到了P。
剩余内容请自行完成。推荐使用Geogebra软件帮助计算。
这里po出结果:F_n=\dfrac{\sqrt5}5((\dfrac{1+\sqrt5}5)^n-(\dfrac{1-\sqrt5}5)^n)
Part7 克拉默法则
这亦是几何重要性的体现:几何中的线代使冗余的证明大大简化。
方程组
\begin{cases}a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2\\......\\a_{m1}x_1+a_{m2}x_2+...+a_{mn}x_n=b_m\end{cases}
当其系数矩阵A的行列式非零时,有唯一解:
x_i=\dfrac{|A_i|}{|A|}
其中
|A_i|=\det(A_1,...,A_{i-1},B,...,A_m)
普通的证明可以百度,但这里我们用几何角度来解释。
对于二维变换,我们可以这样理解:
即用平行四边形面积表示x和y。
例如变换AX=\begin{pmatrix}2&-1\\0&1\end{pmatrix}\begin{pmatrix}x\\y\end{pmatrix}=B
我们就可以用这个平行四边形变换后的面积/行列式=x或y。
那么如何求变换后的面积?
显然变换后的基由矩阵给出,则变换后x轴基=(2,0),y轴基=(-1,1)。那么途中粉色的部分变换后显然由方程中的B向量给出。因此,变换后面积=基向量与B构成的平行四边形面积。由于前文讲过的行列式几何意义,有:
x=\dfrac{\begin{vmatrix}b_1&-1\\b_2&1\end{vmatrix}}{\det A},y=\dfrac{\begin{vmatrix}2&b_1\\0&b_2\end{vmatrix}}{\det A}
推广到n维变换,亦是如此。
Part8 一些彩蛋
1.如果认为函数f(x)=\sum\limits_{k=0}^na_kx^k的向量表示如下:
f(x)=\begin{pmatrix}a_0\\a_1x\\a_2x^2\\...\end{pmatrix}
则微分算符D=\dfrac{d}{dx}满足:
D=\begin{pmatrix}0&1&0&0&...\\0&0&2&0&...\\0&0&0&3&...\\...&...&...&...\end{pmatrix}
显然有\det D=0,因为第一列为0。这有一个很好的解释:微分算符D是没有逆运算的。
2.傅里叶变换是可以求特征向量的。它的特征向量为
本文完结
点赞是一种美德