本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这是本文档旧的修订版!
LAFF Week 2 Notes
本章的核心概念是理解线性变换,线性组合,以及矩阵与线性变换的关系。需要清楚的是,矩阵就是线性变换的 “具象化”,其本质也是 “Function”,即完成 “mapping” 的工作。
线性变换(Linear Transformations)可谓是线性代数的基础。什么是线性变换?从数学定义上来说,线性变换需要满足如下两个条件:
For all x,y∈Rn and a∈R,A vector function L:Rn→Rm is said to be a Linear Transformation If:
L(ax)=aL(x)(I)
L(x+y)=L(x)+L(y)(II)
为什么如此强调线性变换?因为如果一个函数是线性变换,那么解这个函数就会比某些非线性变换的函数容易很多。很多情况下即便函数不是线性变换,我们也会将其近似为线性变换进行处理。一个例子就是我们使用定积分计算不规则图形的面积;我们用无穷个长方形拼凑在一起来近似这个图形的面积,这就是一种将函数转换为线性变换函数,从而方便解决实际问题的手法。
线性变换还有如下一个非常重要的充要条件性质:
L(αu+βv)=αL(u)+βL(v)
证明非常简单,直接利用线性变换定义中的性质就可以了。而得到的等式右边的结果,我们称为 x,y 的线性组合(Linear Combinations)。从代数上来说,线性组合是线性变换的性质得到的结果,象征了不同向量通过不同线性变换得到的结果的集合。从几何上来理解,线性组合很可能是在表现某种特定的空间(本章未提及)。
我们来看看矩阵和向量的乘法,是如何描述线性变换的:
第一步:先来看看向量。假设我们需要对向量 x 进行线性变换,根据向量的定义我们可以把向量 x 写成:
x=x0x1⋮xn−1
如果我们用单元向量来表示以上的向量,那么有:
x0x1⋮xn−1=x0e010⋮0+x1e101⋮0+⋯+xn−1en−100⋮1=j=0∑n−1xjej
第二步:假设我们有线性变换 L:Rn→Rm 。那么对于 L(x) 来说,我们就可以将其写成:
L(x)=L(x0e0+x1e1+⋯+xn−1en−1)=L(j=0∑n−1xjej)(2.1)
根据性质:
L(αu+βv)=αL(u)+βL(v)
那么上面的式子可以写成:
L(x)=x0L(e0)+x1L(e1)+⋯+xn−1L(en−1)=j=0∑n−1xjL(ej)
第三步:现在我们将变换过的单元向量记做 aj,即L(ej)=aj。综合公式 2.1,可以得到如下式子:
L(x)=x0a0+a1a1+⋯+xn−1an−1
换句话说,L(x)就被描述成了向量 x 与另外一个向量组 (a0,a1,⋯,an−1) 的点积。
那岂不是在说,L 所代表的线性变换,其实就可以用向量组 (a0,a1,⋯,an−1) 来表示吗?
这是一个超级重要的发现!不过还没有完,我们接着看矩阵是如何与这个向量组产生关联的。
第四步:我们将向量组 (a0,a1,⋯,an−1) 中每一个分量都写出来,结果能得到一个二维的数组:
<html>
<img src=“/_media/math/math_note/laff/matrix_vec.svg” width=“300”>
</html>
根据之前的信息,我们知道,这个二维数组就是用于描述线性变换 L 的。我们把这个二维数组称为矩阵,这是一种用于存储线性变换的,非常方便的手段。我们将矩阵记做 A,因此之前提到的对于向量 x 的线性变换,则可记做:
L(x)=Ax
这在运算形式上,就是我们之前提到的矩阵与向量的乘法了。那这个需要怎么算呢?很简单。我们知道矩阵 A 实际上是向量组 (a0,a1,⋯,an−1) 中的向量展开所有分量的样子。因此矩阵 A 与 向量 x 的乘法,则是一个两步的复合计算:
矩阵中的每一列,都代表着对原向量指定分量的变换规则。
完整的过程可以参考如下步骤:
Ax======L(x)(a0a1⋯an−1)χ0χ1⋮χn−1χ0a0+χ1a1+⋯+χn−1an−1χ0α0,0α1,0⋮αm−1,0+χ1α0,1α1,1⋮αm−1,1+⋯+χn−1α0,n−1α1,n−1⋮αm−1,n−1χ0α0,0+χ1α0,1+⋯+χn−1α0,n−1χ0α1,0+χ1α1,1+⋯+χn−1α1,n−1⋮χ0αm−1,0+χ1αm−1,1+⋯+χn−1αm−1,n−1α0,0α1,0⋮αm−1,0α0,1α1,1⋮αm−1,1⋯⋯⋯α0,n−1α1,n−1⋮αm−1,n−1χ0χ1⋮χn−1.
通过之前的知识我们了解到,矩阵描述了线性变换。因为有 L(ej)=aj,因此代表矩阵的向量组中每一个子向量,实际上是可以通过单元向量来求得的。也就是说,只要知道了单元向量 ej 在变换后的结果是多少,我们就能立马知道 ej 对应的 aj 是什么,也就是矩阵在原向量的这个分量上进行了什么样的变换;之后将所有的变换组成一个二维数组,就是我们希望求得的矩阵。而方便的是,我们甚至不需要知道具体的线性变换是什么,就能求的矩阵。
求矩阵就是求单元向量被变换了多少。
To find the matrix, you evaluate how the different unit basis vectors are transformed.