Letter of Week 2: 关于出第一次作业

这实在是一件责任很重大的事情,感觉自己手里把握了几百条生命。

碎碎念

我先回顾一下上一周和这一周的讲了什么东西。蛮有意思的事情是,像线性代数这种课,总是没觉得上了很多东西,大部分东西或多或少都会觉得是废话。事实上我不是一个喜欢说“这 TM 也要证的人”,但是线性代数总是给我这种感觉。或许是 somehow 线性代数这门课实在是太过于直觉了——或许是十多年锻炼下来的解方程能力融入了太多数学直觉。总之我觉得最初的几周,只是在不同的角度在解释同一件事情——代换、解方程组。

第一周

最初的 Linear Equation 和 System of linear equations 的 definition 还是简单的。Row picture 和 column picture 两种视角还是颇有意思的,一个长期的潜意识就是 column 是一个一个的 vector,row 的话是一个单独的 equation,equation 是一个高维的 subspace 了,简化以后就是平面或者是线。

值得注意的事情是,本周由于没有 matrix 的概念引出,始终都是在讨论 equations,虽然我们对这个 equations 的定义几乎和对 matrix 是互通的。

本周第一节课提到的 matrix 的 form 也没有必要解释成正式的 matrix,不如理解为把数字写成阵列的形式,作为 matrix 概念引出的先导比较好。

第二节课有了正式的 matrix 定义,这里有几个 notation 还是要记熟悉,一个是如何用 elements 的形式来表示 matrix,还有一个就是用大写字母。这两种要灵活的换用。

关于 elementary matrix 的概念也要有数,注意和后面会上的 permutation matrix 以及 row exchange matrix 相互比较,概念都不相同。

至于 matrix 的运算和相关运算律的证明,大家可以选择性的证明一下(或者都证明一下),总之这类证明普遍不是很 tricky,基本上按照定义证明,自然地算一算就出来了。

这周有两个算法方面的讨论,一个是 gaussian elimination 的 time complexity,另一个是 matrix product 的 time complexity。这两个 complexity 大概记住应该就差不多了。

我建议的推荐补充读物是算法导论的相关章节。

第二周

我其实一直在想所谓的 singular 是怎么来的。毕竟对于大一的我来说,我记得这个词让我联想到黑洞,想到奇点,想到宇宙大爆照。

现在回头看,我觉得这个概念其实和信息论里面的 typical 异曲同工——大致只是表达这个矩阵没那么“普通”。何谓普通?

  • 成绩中等谓之普通
  • 相貌和大家差不多谓之普通
  • 每天都见谓之普通

根本原因是,我们把“概率上的有更大几率出现”称之为普通。事实上在自然界中大多数的矩阵都是普通的,只有在离散的数学系统里(比如有限域),奇异矩阵才有一个不为零的出现概率。

最前面的 LU decomposition 是一个很重要的思想,decomposition/factorization 是贯穿于与 Linear Algebra 的,后面还会学习很多类似的 decomposition。

Unit vector 和 identity matrix 也要分清楚。

由于要折腾一道来自 UMN 的题目,仔细的看了一下 Julia 和 MATLAB 上对于 Sparse Matrix 的实现。我发现实际上这两个玩意实际上还是挺相似的,提供的接口相似,内部的实现相似,但是相互之间的转化却没有那么方便。某种意义上我愿意解释为,他们都没有像 python 那么灵活(也可能 matlab 和 julia 对我而言都没有 python 那么熟练。

题外话 :虽然我很不喜欢 Julia 用 Jupytor Notebook 跑在浏览器里的样子(显得很 low),但我也不得不承认这是目前用的最流畅和直观的做法。

Letter of Week 1: introduction and background of MAT2040

本周 cover 的内容是 LAIA 的 1.1 到 1.5 的内容。

传统意义上,Linear Algebra 是一门本科阶段的基础数学课,主要是教授一些基础的线性系统的知识。近年来,由于相关应用越来越多,门槛越来越低,低年级本科生也完全可以用所学到的知识做一些 Project。因此,在很多大学,这几年新开的 Linear Algebra 课程都增加了相当比重的应用内容,比较典型的是 Stephen Boyd 在 Stanford 开的 EE103 http://stanford.edu/class/ee103/ 这样的课程有以下好处:

  • 减少了许多 tedious 的线性代数的证明
  • 一些可以上手的 project 可以加深印象
  • 培养交叉学科的认识,更加广泛的知识背景

这门课的参考教材大概有三本:

  1. (课程主要是按照这个上的)MIT 的课程教材:Linear Algebra and Its Applications
  2. Stephen Boyd 的 EE103 课程用书 http://vmls-book.stanford.edu
  3. 某位学长整理的 Lecture Notes

Tom 一方面想搞一些编程 Project 的元素(这一部分借鉴自 EE103 里面的一些 julia 内容,还有就是 UMN 的一些相关课程资料),另一方面还想保留严谨的数学内容(这一部分就来自 MIT 的那本教材)。我个人觉得这两部分都很重要,对于工科生而言,我甚至认为动手实操的部分更为重要。

第一周讲得东西还是相对比较基础的,证明性的东西比较少,还是概念为主。

关于 Gaussian Elimination,我觉得有两件事情值得一提:

  1. Gaussian Elimination 的具体算法步骤
  2. (补充)Gaussian Elimination 会 terminate 并得到解的证明

关于本周作业,由于身份原因,我不能comment on作业题目是如何出的,但是我的确在想一件事,那就是大家(在TA眼中,统计意义上)是如何完成作业的。这包含两个层面:

  1. 同学A的submission和同学B的submission之间的mutual information。
  2. 同学A的submission和这个问题的mutual information,conditional on Google。