https://github.com/liuyubobobo/play-with-linear-algebra
Codes of my MOOC Course <Play with Linear Algebra>. Updated contents and practices are also included. 我在慕课网上的课程《玩转线性代数》示例代码,使用Python语言。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。
https://github.com/liuyubobobo/play-with-linear-algebra
Last synced: 4 months ago
JSON representation
Codes of my MOOC Course <Play with Linear Algebra>. Updated contents and practices are also included. 我在慕课网上的课程《玩转线性代数》示例代码,使用Python语言。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。
- Host: GitHub
- URL: https://github.com/liuyubobobo/play-with-linear-algebra
- Owner: liuyubobobo
- Created: 2018-03-21T08:18:01.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-09T03:40:07.000Z (over 2 years ago)
- Last Synced: 2025-05-31T13:06:05.968Z (5 months ago)
- Language: Python
- Size: 170 KB
- Stars: 370
- Watchers: 18
- Forks: 148
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 玩转线性代数 - 课程官方代码仓
大家好, 欢迎大家来到我在[慕课网](http://www.imooc.com/)上的实战课程[《专为程序员设计的线性代数课》](https://coding.imooc.com/class/260.html)的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,更多练习,等等等等。大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)
**个人网站**:[liuyubobobo.com](http://liuyubobobo.com) [废弃重整中...]
**电子邮件**:[liuyubobobo@gmail.com](mailto:liuyubobobo@gmail.com)
**微博**: [刘宇波bobo http://weibo.com/liuyubobobo](http://weibo.com/liuyubobobo)
**知乎**: [刘宇波 http://www.zhihu.com/people/liuyubobobo](http://www.zhihu.com/people/liuyubobobo)
**知乎专栏:**[是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo](https://zhuanlan.zhihu.com/liuyubobobo)
**个人公众号:是不是很酷**:)

## 课程源码目录
| **第一章 欢迎大家学习《专为程序员设计的线性代数课》** | 类别 | [章节文件夹](01-Introduction/) |
| :--- | :---: | :---: |
| 1-1 欢迎大家学习《专为程序员设计的线性代数课》 | 原理 | - |
| 1-2 课程学习的更多补充说明 | 原理 | - |
| 1-3 线性代数与机器学习 | 原理 | - |
| 1-4 课程使用环境的搭建 | 实现 | [Python](01-Introduction/04-Development-Enviroment-Setup/) |
| **第二章 一切从向量开始** | - | [章节文件夹](02-Vectors/) |
| 2-1 什么是向量 | 原理 | - |
| 2-2 向量的更多术语和表示法 | 原理 | - |
| 2-3 实现属于我们自己的向量 | 实现 | [Python](02-Vectors/03-Implement-Our-Own-Vector/) |
| 2-4 向量的两个基本运算 | 原理 | - |
| 2-5 实现向量的基本运算 | 实现 |[Python](02-Vectors/05-Implement-Vector-Operations/) |
| 2-6 向量基本运算的性质与数学大厦的建立 | 原理 | - |
| 2-7 零向量 | 原理 | - |
| 2-8 实现零向量 | 实现 | [Python](02-Vectors/08-Implementation-of-Zero-Vector/) |
| 2-9 小结:一切从向量出发 | 原理 | - |
| **第三章 向量的高级话题与应用** | - | [章节文件夹](03-More-about-Vectors/) |
| 3-1 规范化和单位向量 | 原理 | - |
| 3-2 实现向量的规范化 | 实现 | [Python](03-More-about-Vectors/02-Normalization-Implementation/) |
| 3-3 向量的点乘与几何意义 | 原理 | - |
| 3-4 向量点乘的直观理解和实现 | 原理 | - |
| 3-5 实现向量的点乘操作 | 实现 | [Python](03-More-about-Vectors/05-Implementations-of-Dot-Product/) |
| 3-6 向量点乘的应用 | 原理 | - |
| 3-7 Numpy中向量的基本使用 | 实现 | [Python](03-More-about-Vectors/07-Vectors-in-Numpy/) |
| 补充内容1:向量点乘表示相似程度的应用举例 | [整理中] | [敬请期待] |
| **第四章 矩阵不只是m\*n个数字** | - | [章节文件夹](04-The-Matrix/) |
| 4-1 什么是矩阵 | 原理 | - |
| 4-2 实现属于我们自己的矩阵类 | 实现 | [Python](04-The-Matrix/02-Implement-Our-Own-Matrix/) |
| 4-3 矩阵的基本运算和基本性质 | 原理 | - |
| 4-4 实现矩阵的基本运算 | 实现 | [Python](04-The-Matrix/04-Implement-Basic-Operations-of-Matrix/) |
| 4-5 看待矩阵的另一个视角:系统 | 原理 | - |
| 4-6 矩阵和向量的乘法 | 原理 | - |
| 4-7 矩阵和矩阵的乘法 | 原理 | - |
| 4-8 实现矩阵的乘法 | 实现 | [Python](04-The-Matrix/08-Implement-Matrix-Multiplication/) |
| 4-9 矩阵乘法的性质和矩阵的幂 | 原理 | - |
| 4-10 矩阵的转置 | 原理 | - |
| 4-11 实现矩阵的转置和Numpy中的矩阵 | 实现 | [Python](04-The-Matrix/11-Implement-Matrix-Transpose-and-Numpy-Matrix/) |
| **第五章 矩阵的应用和关于矩阵的更多高级话题** | - | [章节文件夹](05-More-about-Matrix/) |
| 5-1 更多变换矩阵 | 原理 | - |
| 5-2 矩阵旋转变换与矩阵在图形学中的应用 | 原理 | - |
| 5-3 实现矩阵变换在图形学中的应用 | 实现 | [Python](05-More-about-Matrix/02-Implement-Matrix-Transformations/) |
| 5-4 从缩放变换到单位矩阵 | 原理 | - |
| 5-5 矩阵的逆 | 原理 | - |
| 5-6 实现单位矩阵和numpy中矩阵的逆 | 实现 | [Python](05-More-about-Matrix/06-Implement-Identity-Matrix-and-Inverse-of-a-Matrix-in-Numpy/) |
| 5-7 矩阵的逆的性质 | 原理 | - |
| 5-8 看待矩阵的关键视角:用矩阵表示空间 | 原理 | [Python](05-More-about-Matrix/08-Matrix-and-Space) |
| 5-9 总结:看待矩阵的四个重要视角 | 原理 | - |
| 补充内容1:矩阵幂的应用 | [整理中] | [敬请期待] |
| 补充内容2:矩阵幂的实现 | [整理中] | [敬请期待] |
| **第六章 线性系统** | - | [章节文件夹](06-Linear-System/) |
| 6-1 线性系统与消元法 | 原理 | - |
| 6-2 高斯消元法 | 原理 | - |
| 6-3 高斯-约旦消元法 | 原理 | - |
| 6-4 实现高斯-约旦消元法 | 实现 | [Python](06-Linear-System/04-Implement-Gauss-Jordan-Elimination/) |
| 6-5 行最简形式和线性方程组解的结构 | 原理 | - |
| 6-6 直观理解线性方程组解的结构 | 原理 | - |
| 6-7 更一般化的高斯-约旦消元法 | 原理 | - |
| 6-8 实现更一般化的高斯-约旦消元法 | 实现 | [Python](06-Linear-System/08-Implement-General-Gauss-Jordan-Elimination/) |
| 6-9 齐次线性方程组 | 原理 | - |
| **第七章 初等矩阵和可逆性** | - | [章节文件夹](07-Elemental-Matrices-and-The-Properties-of-Inversion/) |
| 7-1 线性系统与矩阵的逆 | 原理 | - |
| 7-2 实现矩阵的逆的求解 | 实现 | [Python](07-Elemental-Matrices-and-The-Properties-of-Inversion/02-Implement-Inverse-of-Matrix/) |
| 7-3 初等矩阵 | 原理 | - |
| 7-4 从初等矩阵到矩阵的可逆性 | 原理 | - |
| 7-5 为什么矩阵可逆这么重要 | 原理 | - |
| 7-6 矩阵的LU分解 | 原理 | - |
| 7-7 实现矩阵的LU分解 | 实现 | [Python](07-Elemental-Matrices-and-The-Properties-of-Inversion/07-Implement-LU-Factorization/) |
| 7-8 非方阵的LU分解,矩阵的LDU分解和PLU分解 | 原理 | - |
| 7-9 矩阵的PLUP'分解和再看矩阵的乘法 | 原理 | - |
| 补充内容1: 内积,外积,张量积 | [整理中] | [敬请期待] |
| 补充内容2: Scipy中矩阵的LU分解(PLU分解) | [整理中] | [敬请期待] |
| **第八章 线性相关,线性无关和生成空间** | - | - |
| 8-1 线性组合 | 原理 | - |
| 8-2 线性相关和线性无关 | 原理 | - |
| 8-3 线性相关的重要性质 | 原理 | - |
| 8-4 形象理解线性相关和空间的基 | 原理 | - |
| 8-5 生成空间 | 原理 | - |
| 8-6 空间的基 | 原理 | - |
| 8-7 空间的基的更多性质 | 原理 | - |
| 8-8 本整小结:形成自己的知识图谱 | 原理 | - |
| **第九章 向量空间,维度,四大子空间** | - | [章节文件夹](09-Vector-Space-Dimension-and-Four-Subspaces/) |
| 9-1 空间,向量空间与欧几里得空间 | 原理 | - |
| 9-2 广义向量空间 | 原理 | - |
| 9-3 子空间 | 原理 | - |
| 9-4 欧几里得空间的子空间 | 原理 | - |
| 9-5 维度 | 原理 | - |
| 9-6 行空间和矩阵的行秩 | 原理 | - |
| 9-7 列空间 | 原理 | - |
| 9-8 矩阵的秩 | 原理 | - |
| 9-9 实现矩阵的秩 | 实现 | [Python](09-Vector-Space-Dimension-and-Four-Subspaces/08-Implement-Rank-of-Matrix/) |
| 9-10 零空间与看待零空间的三个视角 | 原理 | - |
| 9-11 零空间 与 秩-零化度定理 | 原理 | - |
| 9-12 左零空间,四大子空间和研究子空间的原因 | 原理 | - |
| **第十章 正交性,标准正交矩阵和投影** | - | [章节文件夹](10-Orthonormal-Basis/) |
| 10-1 正交基与标准正交基 | 原理 | - |
| 10-2 一维投影 | 原理 | - |
| 10-3 高维投影和Gram-Schmidt过程 | 原理 | - |
| 10-4 实现Gram-Schmidt过程 | 实现 | [Python](10-Orthonormal-Basis/04-Implement-Gram–Schmidt-Process/) |
| 10-5 标准正交基的性质 | 原理 | - |
| 10-6 矩阵的QR分解 | 原理 | - |
| 10-7 实现矩阵的QR分解 | 实现 | [Python](10-Orthonormal-Basis/07-Implement-QR-Factorization/) |
| 10-8 本章小结和更多和投影相关的话题 | 原理 | - |
| 补充内容1: 更多标准正交基的性质 | [整理中] | [敬请期待] |
| 补充内容2: 非方阵的QR分解 | [整理中] | [敬请期待] |
| 补充内容3: scipy中的矩阵的QR分解 | [整理中] | [敬请期待] |
| 补充内容4: 最小二乘法 | [整理中] | [敬请期待] |
| **第十一章 坐标转换与线性变换** | - | - |
| 11-1 空间的基和坐标系 | 原理 | - |
| 11-2 其他坐标系与标准坐标系的转换 | 原理 | - |
| 11-3 任意坐标系的转换 | 原理 | - |
| 11-4 线性变换 | 原理 | - |
| 11-5 更多和线性变换和坐标系转换相关话题 | 原理 | - |
| 补充内容1: 更多线性变换的性质 | [整理中] | [敬请期待] |
| 补充内容2: 高维空间向低维空间的转换 | [整理中] | [敬请期待] |
| 补充内容3: 傅里叶变换 | [整理中] | [敬请期待] |
| 补充内容4: 小波变换 | [整理中] | [敬请期待] |
| **第十二章 行列式** | - | - |
| 12-1 什么是行列式 | 原理 | - |
| 12-2 行列式的四大基本性质 | 原理 | - |
| 12-3 行列式与矩阵的逆 | 原理 | - |
| 12-4 计算行列式的值 | 原理 | - |
| 12-5 初等矩阵与行列式 | 原理 | - |
| 12-6 行式就是列式 | 原理 | - |
| 12-7 更多和行列式相关的内容 | 原理 | - |
| 补充内容1: 应用行列式的代数表达式的经典证明 | [整理中] | [敬请期待] |
| 补充内容2: 向量的叉乘 | [整理中] | [敬请期待] |
| **第十三章 特征值,特征向量,矩阵相似型与矩阵对角化** | - | [章节文件夹](13-Eigenvalues-and-Eigenvectors/) |
| 13-1 什么是特征值和特征向量 | 原理 | - |
| 13-2 特征值与特征向量相关的概念 | 原理 | - |
| 13-3 特征值与特征向量的性质 | 原理 | - |
| 13-4 直观理解特征值与特征向量 | 原理 | - |
| 13-5 “不简单”的特征值 | 原理 | - |
| 13-6 实践numpy中求解特征值和特征向量 | 实现 | [Python](13-Eigenvalues-and-Eigenvectors/06-Eigenvalues-and-Eigenvectors-in-Numpy/) |
| 13-7 矩阵相似和背后的重要含义 | 原理 | - |
| 13-8 矩阵对角化 | 原理 | - |
| 13-9 实现属于自己的矩阵的对角化 | 实现 | [Python](13-Eigenvalues-and-Eigenvectors/09-Implement-Our-Own-Diagonalization/) |
| 13-10 矩阵对角化的应用 - 求解矩阵的幂和动态系统 | 原理 | -|
| **第十四章 对称矩阵与矩阵的SVD分解** | - | [章节文件夹](14-Symmetric-Matrix-and-SVD/) |
| 14-1 完美的对称矩阵 | 原理 | - |
| 14-2 正交对角化 | 原理 | - |
| 14-3 什么是奇异值 | 原理 | - |
| 14-4 奇异值的几何意义 | 原理 | - |
| 14-5 矩阵的SVD分解 | 原理 | - |
| 14-6 scipy中的SVD分解 | 实现 | [Python](14-Symmetric-Matrix-and-SVD/06-SVD-in-Scipy/) |
| 14-7 SVD分解的应用 | 原理 | - |
| **第十五章 更广阔的线性代数世界,大家加油!** | - | - |
| 15-1 更广阔的线性代数世界,大家加油! | 原理 | - |---
**课程讲义的PDF版本不在github上提供**,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。