[关闭]
@bintou 2019-08-05T10:02:05.000000Z 字数 3129 阅读 3069

《线性代数》重点--从CS的角度

线性代数研究有限维向量空间中的线性操作。--马克.吐温

前言

《线性代数》是计算机专业的基础课,具有重要的理论与实践意义,教学效果的好坏直接影响了学生的长期发展。无论如何强调其重要性都不为过。为此,非常有必要在学习的早期给予学生正确的学习指导。本文试图从计算机专业的角度,对大一新生学习《线性代数》课程给出若干指导与建议,其中包括重点知识的概括等。

推荐教材

Introduction to Linear Algebra, Gilbert Strang, Wellesley-Cambridge Press, ISBN:0980232775, 9780980232776, 2016.

GSLAv5

教学目标

《线性代数》研究有限维向量空间中的线性操作(线性变换)的一门学科,主要研究线性操作的表达、化简、分类等。学习线性代数的重要性体现在两个方面:
- 应用的基础方法
- 理论的研究工具

除了理论与实践上的意义,人们还通常把《线性代数》中的概念、知识作为一种通用语言,广泛地应用在各种问题的描述当中,比如,量子计算。因此,学习《线性代数》就同时要求学生熟练掌握相关概念与应用。

重要知识点概括

向量

向量(Vector):向量表示n维空间中的一个点。为了简化,回忆一下大家熟悉的二维空间中的(x, y)。然后,定义两种操作:加法、标量乘。有了点,当然可以组成线、面、体。进而考虑向量的长度、向量之间的夹角(正交性)、向量的平移、向量的投影、向量的翻转等。以上内容都有对应的数学表示。

向量的操作

向量空间

向量空间(Space):给定一个向量集合V,定义关于向量的加法和乘法,如果对V中元素不断运用加法和乘法得到的元素满足若干属性,则V为一个向量空间。空间的子集如果也形成空间,称为子空间(Subsapce)。对线性代数的研究动机源自于人类试图研究认识高维空间。人类在认识理解高维空间的过程中发现,直观和想象竟然失效,于是只能借助抽象和理论工具。

基(Base):如果V中子集B的向量两两线性独立并张成(Span)V,则称B为V的基。每个有限维向量空间都存在一个Base。就好比生物学家要研究组成生物的最小单元一样,我们要给出构造出空间的最小向量集合,并研究它们的属性。

四大基本子空间

四大基本子空间包括:行空间、列空间、零空间、左零空间。这个知识点可以说是重中之重,是一种理解线性操作的通用工具和语言。通过使用四大基本子空间,许多知识点的表达非常直观。比如:最小二乘法。例子很多,务必体会!

四大基本子空间

矩阵

矩阵(Matrix):矩阵是线性操作的一种抽象表达。一般而言,在许多《线性代数》课程中,矩阵操作也许是讲得最多的内容,但矩阵在线性代数中的内涵往往会被忽略。一般而言,这些课程往往先引入线性方程,从线性方程中抽象出矩阵,然后进行高斯消元,求方程的解,求矩阵的逆矩阵等,然而对矩阵的本质解释得非常非常少,或者说没有对矩阵的内涵进行必要的强调。

必须强调的是,把矩阵看为对线性映射的一种抽象表达更接近线性代数的本质。从函数的角度看,如果作用于向量v函数F具有线性性(即线性函数),则这个F函数就可表达为一个矩阵M,称为操作子(或算子,Operator)。线性代数中会重点研究某些具有特定含义的矩阵,比如,单位矩阵、对角矩阵等。到了具体的学科中,比如量子力学,不同的矩阵就表征为不同的操作子:泡利矩阵、哈达玛矩阵等。从更本源上看,研究矩阵的目的是为了研究线性操作的表达、化简、分类等。

矩阵如果用在其他学科,它就是研究工具;在工程中,就是一种实践工具。但是在线性代数中,我们研究的主体就是矩阵本身,需要考察不同操作子所必须具备的属性。因此,以下关于矩阵的概念就非常重要。

行列式

Determinant(行列式):行列式是一种让人崩溃的翻译。更遗憾的是,我没办法对Determinant给出一种直观,在任何一本课本都难以找到明确的直观。原因我只能归结为,Determinant所包含的信息实在是太多!矩阵的行列式是一个数值,通过它可以发现矩阵的特性,比如说,矩阵是否可逆。想象力在内容过于丰富的时候失去了效力,在此我们必须借助定义,了解行列式所必须遵循的若干性质。

特征值和特征向量

特征值(Eigenvalue)和特征向量(Eigenvector):如果对矩阵的理解不站在“线性变换”这个角度上看,理解特征值和特征向量是有难度的。但是,如果把矩阵T看成操作子:
T u = lambda * u
就可以解读为,给定一个向量u,进行T变换,得到一个“不变量”:仅仅是u在某一个方向上的延展,即标量lambda乘u。把上式右边移到左边,利用单位矩阵I,可得:
(T - lambda*I )u= 0
式子左边的(T - lambda*I )还是一个矩阵,使得不为零的向量u0,则该矩阵必须是奇异矩阵。满足条件的非0向量u就是特征向量。

矩阵分解(Factorization)

再次强调,线性代数研究线性操作的表达、化简、分类等。矩阵是线性操作的抽象表达,因此研究矩阵的分解就是研究线性操作的表达、化简、分类。请重点关注以下矩阵分解(Factorization)
a、LU分解、LDU分解
b、QR分解
c、矩阵的特征向量特征值分解
d、SVD分解

请看Gilbert Strang对矩阵分解的总结:15种分解。

SVD分解

SVD分解具有非常特殊的重要性,值得单独拿出来强调。有科学家赞誉SVD是线性代数皇冠上的宝石。首先,SVD这个知识点基本将以上知识点融会贯通,是理解线性操作乃至于理解线性代数的有力工具,就这一点就值得赞叹。再加上,在实际工程应用中,SVD的应用场景数不胜数,更凸显其意义非凡。

小结

以上概念组成了《线性代数》的重点,也基本覆盖了这门课的主要内容。学习线性代数的硬伤在于:没有对整个知识体系建立准确的概念、思路与直观。很多同学会问,线性代数有什么用?经典的回答是,很有用,到处都用,奠定基础,锻炼思维,bilibili。

也许提问本身有问题。我更愿意大家问:什么是这门课程的研究学习动机(motivation),研究的主体是什么,学习研究的思路应该如何,直观在哪里?回答也有问题,任何一门学科源自生活又超越生活,单纯从应用或者理论的角度去看都会非常狭隘。从本源出发指出动机、描述理论的整体框架、在此基础上指出学习的思路与重点等都有助于学生进一步学习。

若干建议

1. 注重编程和实践

a、用C语言编程实现相关矩阵操作:矩阵乘法、求逆、高斯消元......
b、用Sage(什么是Sage?)练习相关操作;GSLA等书要求普遍是MathLab,但是MathLab不是免费开源软件。
c、关注相关操作的算法描述(即使在开始做不到,也要在之后练习),算法的复杂性等内容。

2. 学习公开课视频

MIT公开课:线性代数 (全部带中文字幕)。授课老师就是MIT的Gilbert Strang,听他讲课是一种享受,强烈推荐。

3. 参考书及网络资源

2014年9月起草
2017年6月修订
2019年8月转移到此

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注