WIP:《程序员的数学 3:线性代数》读书笔记(零)
2021-05-03
标签:math basic-math book-note
如果有兴趣建议先看下文末的「其他参考资料」。
第 0 章——动机
原书将综述一章安排在本章之前,对于喜欢深度遍历学习的同学十分不友好!虽然综述部分也有提及,常回来看看综述。建议更优先度读第 0 章,体验会更好点!另外:综述就是天坑,里面的内容需要往后读才能理解在说什么,如果不懂综述在说什么,请忽略或带着疑问向后阅读!
身处三维空间,为了处理现实世界的很多问题,需要一种合适的方式来描述「空间」。
比如:如何将三维空间的动画显示在二维的屏幕中?
因此最初的线性代数诞生了!
除了研究空间变为数据,线性代数还可以将这一过程逆转——将数据变为直观的图像,使得可以通过空间来理解数据。
随后,线性代数得到了很多发展,它不仅仅再是单独描述空间的工具。而变为了描述数据变换关系的一个更抽象的工具。甚至可以用来对任意的 n 维空间来进行计算。
此外,所谓的感应器以及人类的感官都是有敏感度的。比如 14ms 与 15ms 的延迟区别,普通人就很难感知到。联想到现代的计算机图形学,也可以发现,底层只有三角形。所谓的球体,只不过是用众多的微型三角形拼凑近似而来的。
这意味着:曲线如果在足够小的范围内研究,也可以将其这一小部分视为直线。谈论到直线,那可就是线性代数擅长的部分了!
很多情况下,这种“不完美”的解决方法反而能切实地满足需求,解决问题。再次论证了「完美主义害死人」!
前置(可选)
本书涵盖了一部分动画演示,但书中提到的工具很难用,强烈推荐使用笔者实现的网页版:
这个工具的源码托管在 GitHub
如果真的想了解一下书中的工具也可以试试:
macOS 用户可以直接使用自带的 Ruby。绘制程序可使用 Homebrew 安装 brew install gnuplot
。
TODO: Windows 用户安装。
代码资源:https://www.ituring.com.cn/book/1239
综述
目标:了解秩、行列式、特征值、对角化等概念
的矩阵 表示的是 维空间到 维空间的映射。
除特殊说明,所使用坐标系均为
↑
└ →
这可能与一些编程相关使用的坐标系不同,编程中常用的坐标系为
┌ →
↓
对角矩阵
左上到右下外的所有元素都为 0
普通的
ruby mat_anim.rb -s=0 | gnuplot
- 水平方向扩大到 1.5 倍,竖直方向缩小到 0.5 倍
- 整体面积扩大率为 倍,即
- 因此行列式 = 对角元素的乘积❓
存在零
- 水平方向变为原来的 0 倍 → 压缩扁平化
存在负数
- 水平方向扩大到 1.5 倍,竖直方向缩小到 -0.5 倍 → 上下颠倒
特征值、特征向量、对角化
非对角一般矩阵
- 倾斜,但不扭曲,直线依然是直线,平行的依然平行
- 的第 1 列 为 的像,其第 2 列 为 的像。也就是说 这个点会变换到 , 会变换到 。
- 借助两个像的变化,就可以大致想象出整个空间的变换了
特征向量
⚠️⚠️ todo ⚠️⚠️
有向线段变为 ,
- 矩阵和上次一样,但这次原图上有向线段方向发生了改变,使得变换前后有向线段方向没有变,仅长度发生了改变,这便是这个矩阵的特征向量。
- 伸缩率(长度变化的倍数)便是特征值,1.3 与 0.3。
对角化
⚠️⚠️ todo ⚠️⚠️
坐标系变为
- 矩阵依然不变,将坐标系的方向调整为特征向量的方向。此时,变化的倾斜效果“消失”了,看上去变换行为与对角矩阵时一样(只有沿着格子线的伸缩变换)。这便是对角化。
- ,即特征值的积()
秩、可逆性
空间被压缩为扁平
- 变换后的形状被称为 的像(Image)()
-
像的维度被称为秩(Rank)
- 本例中发生了扁平化,像是直线,所以秩是 1()。这时 被称作奇异矩阵
- 若没有扁平化,则有 。这时 被称作非奇异矩阵(可逆矩阵)
- 由于发生了扁平化,
奇异就是不一般,非奇异就是一般的(行列式不为0、可逆)。 因为广义上看可逆矩阵远远比不可逆的多,数学上经常说可逆矩阵是奇异的。 -- @lina
行列式
将前面提到的矩阵 第 1 列与第 2 列交换:
其他参考资料
最好准备其他参考书,比如高校教材《线性代数》。因为涉及到计算