
简介《线性代数的艺术》中文版是一份面向线性代数初学者与需要直观理解矩阵运算的读者的图形化学习读本依托 Gilbert Strang 的理论框架用可视化方式梳理向量、矩阵乘法及矩阵分解等核心内容。压缩包内仅含1个PDF文件大小约1.43MB便于在电脑或移动设备上随时查阅。全书围绕理解矩阵的四个视角、向量乘法、矩阵乘向量与矩阵乘法展开并重点图解CR、LU、QR、QΛQT与奇异值分解五种分解方法把抽象概念落到图形与结构上。目前已有577人学习适合课堂补充、考前复习或自学时建立矩阵分解的整体脉络也能帮助读者从“线性组合”和“秩1矩阵”的角度重新审视代数运算。1. 图形化线性代数笔记一份 PDF 把五种矩阵分解画成可复算的图很多人学完线性代数看到 (AU\Sigma V^T) 还是只会背公式翻到这份线性代数图形笔记 PDF第一页先逼你把矩阵看成四样东西一张数表、(n) 个列、(m) 个行、一个整体。The-Art-of-Linear-Algebra-zh-CN.pdf 对应的中文版把矩阵乘法、秩 1 矩阵和五种矩阵分解画成了可对照的图不是另一本习题册。它解决的是“公式会推、图像没有”的断层CR 看秩LU 看消元QR 看正交化QΛQᵀ 看对称矩阵UΣVᵀ 看任意长方阵。适合刚学完线性代数、准备做机器学习或数据分析的人也适合讲课时需要一张图把分解关系串起来的人。读法不能当漫画翻得按“视角—乘法—分解—复算”的顺序走否则图越漂亮越容易停在“看懂了”的错觉里。2. 矩阵的四个视角先读列空间再读 CR 骨架图形笔记的第一层价值不是告诉你“矩阵乘法有四种算法”而是把同一个矩阵拆成四个观察角度。角度不稳后面 CR、LU、QR 的图只会越看越乱。我的读法是先列后行、先向量后矩阵、先乘法后分解每读一张图都在纸上补一个小矩阵不让自己停在彩色箭头的层面。2.1 把矩阵看成列、行与数表一个 (m\times n) 矩阵可以同时被看成 1 个整体矩阵、(mn) 个数、(n) 个列向量、(m) 个行向量。图形笔记用四块图并排展示这件事真正要抓住的是列和行在后续分解里的角色不同CR 分解保留线性无关列LU 分解在主元行上做消元QR 分解把列变成正交基SVD 同时处理列空间和行空间。把矩阵当数表看只会看到元素位置把矩阵当列向量组看才会问“哪几列是独立的”。拿一个 (2\times 3) 矩阵练手[ A\begin{bmatrix}123\235\end{bmatrix} ]列向量是 (a_1[1,2]^T)、(a_2[2,3]^T)、(a_3[3,5]^T)行向量是 (a_1^[1,2,3])、(a_2^[2,3,5])。先不要算乘法先用眼睛扫列第三列是不是前两列之和(a_1a_2[3,5]^T)正好是 (a_3)。这一步就是 CR 分解的入口。列空间 (C(A)) 是这些列的所有线性组合行空间 (C(A^T)) 是行的所有线性组合零空间 (N(A)) 是满足 (Ax0) 的 (x) 集合左零空间 (N(A^T)) 是满足 (y^TA0) 的 (y) 集合。图形笔记的四个基本子空间图考的就是这四个集合的维度和正交关系。读图时我一般做三件事在矩阵上标列号把每一列画成箭头再问“这一列能不能由前几列线性表出”。这三步比盯着公式看有效因为它把“线性相关”从定义变成了可见的构造。下面这张表是我读第一组图时会填的检查表读者可以照抄到笔记里。视角图上标记复算动作容易误读的点整体矩阵大写 (A)写形状 (m\times n)把形状和秩混为一谈数表元素 (a_{ij})标出主元位置只看数值大小不看行列关系列向量竖线夹住的 (a_j)判断列相关性把列空间当成整个 (\mathbb{R}^m)行向量横线夹住的 (a_i^*)判断行相关性忘记行空间在 (\mathbb{R}^n)注意列秩和行秩相等是定理不是图形笔记的“画法约定”。图能帮你记住结论但不能替代证明每读完一张列秩图至少用手算一个 (3\times 3) 矩阵确认。2.2 向量乘向量与秩 1 矩阵向量乘向量在图形笔记里有两个视角v1 是点积(a^Tb\sum_i a_i b_i)结果是一个数v2 是列乘行(ab^T) 是一个矩阵第 (j) 列是 (b_j a)第 (i) 行是 (a_i b^T)。v2 的结果秩为 1这一点是后面五种分解的积木。很多人学线代时把 v1 练得很熟看到 v2 只觉得“也能乘”结果到了 SVD 的秩 1 展开、谱定理的投影矩阵、LU 的外积消元时全部卡住。拿 (a[1,2]^T)、(b[3,4]^T) 手算一遍[ a^Tb1\cdot32\cdot411 ][ ab^T\begin{bmatrix}1\2\end{bmatrix}\begin{bmatrix}34\end{bmatrix} \begin{bmatrix}34\68\end{bmatrix} ]这个 (2\times 2) 矩阵两行成比例秩为 1两列也成比例。反过来 (ba^T) 是另一个秩 1 矩阵和 (ab^T) 一般不相等。图形笔记把 (ab^T) 画成一块“列乘行”的彩色块读图时要问这块贡献了哪一列、哪一行它为什么能作为后续分解的最小单位答案在矩阵乘法里任意矩阵乘矩阵都可以写成若干个秩 1 矩阵之和CR 分解把矩阵压成“独立列 × 行阶梯形”SVD 把矩阵拆成“奇异值 × 左右奇异向量外积”谱定理把对称矩阵拆成“特征值 × 投影矩阵”。这里有个血泪经验不要只记 (ab^T) 是秩 1要会看它的列空间和行空间。(ab^T) 的列空间由 (a) 张成行空间由 (b^T) 张成零空间是 (b^T x0) 的解左零空间是 (y^T a0) 的解。把这四个空间和图形笔记的四个基本子空间图对上后面的分解图就不是孤立的知识点。2.3 矩阵乘向量、矩阵乘矩阵的四条读法矩阵乘向量有两个视角Mv1 是行点积(Ax) 的第 (i) 个分量是 (A) 的第 (i) 行与 (x) 的点积Mv2 是列线性组合(Ax) 是 (A) 的列以 (x) 的分量为系数的线性组合。图形笔记更强调 Mv2因为列组合视角能直接推出列空间 (C(A)) 和零空间 (N(A))。初学时先学 Mv1 很正常但只停在 Mv1看到“(Axb) 有解当且仅当 (b\in C(A))”就会觉得是另一套语言。矩阵乘矩阵在图形笔记里给了四条读法MM1 是 (AB) 的列等于 (A) 的列以 (B) 的列为系数的组合MM2 是 (AB) 的行等于 (B) 的行以 (A) 的行为系数的组合MM3 是 (AB\sum_k a_k b_k^*)列乘行再求和MM4 是分块乘法。四条读法不是四个公式而是四个观察位置。做数值计算时 MM1/MM2 帮你理解列的来源做分解时 MM3 帮你把矩阵拆成秩 1 块做大规模矩阵时 MM4 帮你把矩阵切成块处理。用一个小例子把 P1/P2 模式走一遍。设[ A\begin{bmatrix}12\34\end{bmatrix},\quad B\begin{bmatrix}10\02\end{bmatrix} ]右乘 (B)[ AB\begin{bmatrix}14\38\end{bmatrix} ]结果是 (A) 的第二列乘 2第一列不变。右乘一个矩阵做的是列运算图形笔记里的 P1 模式讲的就是这件事。左乘 (B)[ BA\begin{bmatrix}12\68\end{bmatrix} ]结果是 (A) 的第二行乘 2第一行不变。左乘做行运算对应 P2 模式。P1′ 和 P2′ 是对角矩阵乘列、乘行的变体读图时别把左右乘的方向弄反右乘改列左乘改行。读图顺序我建议固定成先 Mv2再 Mv1先 MM3再 MM1/MM2最后看 P1/P2 的列运算和行运算。这个顺序和图形笔记的编排一致也符合分解的需要。每读一张乘法图就在纸上写一个 (2\times 2) 或 (3\times 2) 的小例子确认“列组合”和“行组合”各对应哪个矩阵。下面这组步骤可以直接照做选一个 (3\times 2) 矩阵 (A)写出它的两列。选一个 (2) 维向量 (x)分别用行点积和列组合算 (Ax)对比结果。选一个 (2\times 2) 矩阵 (B)用 MM3 把 (AB) 写成两个秩 1 矩阵之和。用 P1/P2 解释 (AB) 的列和 (BA) 的行分别被谁改了。把第 3 步的秩 1 块和后面 CR、SVD 的图对照确认“分解就是秩 1 块叠加”这条主线。3. 五种分解对照CR、LU、QR、QΛQᵀ、UΣVᵀ 的适用边界五种分解不是并列背下来的五条公式而是回答五个不同问题矩阵的秩和独立列是什么线性方程怎么分两步解一组列怎么变成正交基对称矩阵怎么对角化任意长方阵怎么拆成奇异值和奇异向量。图形笔记把它们画成五组图读者要做的不是记住图的颜色而是把“什么问题该选哪种分解”建立起来。下面先把对照表立住再逐组拆。分解回答的问题存在条件图中关键量常见误用(ACR)秩是多少哪些列独立任意矩阵(C) 的独立列、(R) 的行阶梯形把 (C) 当成任意列拼起来的矩阵(ALU)方程怎么消元求解方阵主元非零或带置换(L) 单位下三角、(U) 上三角忽略置换矩阵 (P)(AQR)列怎么正交化任意矩阵(Q) 正交列、(R) 上三角把 (Q) 的符号当成唯一(SQ\Lambda Q^T)对称矩阵怎么对角化对称矩阵实特征值、正交特征向量拿非对称矩阵硬套(AU\Sigma V^T)任意矩阵怎么降维任意矩阵奇异值、左右奇异向量完整 SVD 与简化 SVD 混用3.1 CR 与 LU消元与秩的骨架CR 分解把矩阵写成 (ACR)(C) 由 (A) 的线性无关列组成(R) 是行阶梯形矩阵。图形笔记用“保留独立列、去掉可表出的列”来画这件事核心结论是列秩等于行秩。拿前面的 (A\begin{bmatrix}123\235\end{bmatrix}) 继续第三列等于第一列加第二列所以保留前两列[ C\begin{bmatrix}12\23\end{bmatrix} ]要重新构造出第三列需要右乘一个系数矩阵。前两列的系数是单位阵第三列的系数是 ([1,1]^T)于是[ R\begin{bmatrix}101\011\end{bmatrix} ]验证 (CR)[ \begin{bmatrix}12\23\end{bmatrix} \begin{bmatrix}101\011\end{bmatrix} \begin{bmatrix}123\235\end{bmatrix} ]这就是 (ACR)。读图时要盯住两件事(C) 的列必须线性无关(R) 必须是行阶梯形或行最简形。如果 (C) 里混进了相关列(R) 就不再是唯一的行阶梯形后面“列秩等于行秩”的图也会被误读。CR 的适用场景是理解秩、找独立列、做低秩近似的前置分析它不是数值计算里最稳定的分解但它是把“秩”讲清楚的最直观工具。LU 分解把方阵写成 (ALU)(L) 是单位下三角(U) 是上三角。图形笔记用高斯消元的外积视角画先分离第一行和第一列组成的外积剩下的块继续递归最后把每一步的秩 1 外积叠起来。手算一个 (2\times 2) 例子[ A\begin{bmatrix}21\43\end{bmatrix} ]第一行不变第二行减去第一行的 2 倍消去左下角的 4[ L\begin{bmatrix}10\21\end{bmatrix},\quad U\begin{bmatrix}21\01\end{bmatrix} ]验证 (LU\begin{bmatrix}21\43\end{bmatrix})。求解 (Axb) 时拆成两步先解 (Lcb)前代再解 (Uxc)回代。图形笔记里的 LU 图强调的是“消元过程可以记录成 (L)”不是让你手算所有主元。实际数值计算中遇到零主元或主元很小时要做行交换写成 (PALU)图形笔记为了画图清晰默认矩阵已经排好主元读图时要把这个前提补上。注意LU 分解不是对所有方阵都直接存在。顺序主子式为零时必须引入置换矩阵 (P)看到图形笔记里的 (L) 和 (U) 没有 (P)先检查例子矩阵是否满足主元非零。3.2 QR 与 QΛQᵀ正交化和对称矩阵QR 分解把矩阵写成 (AQR)(Q) 的列是标准正交基(R) 是上三角。图形笔记用 Gram-Schmidt 正交化画先把 (a_1) 单位化成 (q_1)再把 (a_2) 中落在 (q_1) 方向上的投影减掉得到与 (q_1) 正交的 (q_2)依此类推。二维例子最直观。设 (a_1[1,1]^T)、(a_2[1,0]^T)[ q_1\frac{a_1}{|a_1|}\begin{bmatrix}1/\sqrt2\1/\sqrt2\end{bmatrix} ][ q_2a_2-(q_1^Ta_2)q_1 \begin{bmatrix}1\0\end{bmatrix}-\frac{1}{\sqrt2}\begin{bmatrix}1/\sqrt2\1/\sqrt2\end{bmatrix} \begin{bmatrix}1/2\-1/2\end{bmatrix} ]单位化后 (q_2[1/\sqrt2,-1/\sqrt2]^T)。(R) 的元素是 (r_{ij}q_i^Ta_j)于是 (r_{11}\sqrt2)、(r_{12}1/\sqrt2)、(r_{22}1/\sqrt2)。QR 的用途是正交基、最小二乘、数值稳定的列空间计算。图形笔记画的是经典 Gram-Schmidt实际代码里常用 Householder 变换或修正 Gram-Schmidt数值稳定性更好但图上的几何关系不变。QΛQᵀ 分解针对对称矩阵 (S)(SQ\Lambda Q^T)(Q) 是正交矩阵(\Lambda) 是实对角矩阵。图形笔记用投影矩阵 (P_iq_iq_i^T) 来画[ S\lambda_1q_1q_1^T\lambda_2q_2q_2^T\lambda_3q_3q_3^T \lambda_1P_1\lambda_2P_2\lambda_3P_3 ]投影矩阵满足 (P_1P_2P_3I)、(P_iP_j0)(i\ne j)、(P_i^2P_i)。这就是谱定理的图释对称矩阵可以分解成一组正交投影的加权和。二维例子 (S\begin{bmatrix}21\12\end{bmatrix})特征值是 3 和 1特征向量是 ([1,1]^T/\sqrt2) 和 ([1,-1]^T/\sqrt2)。验证[ S3\begin{bmatrix}1/21/2\1/21/2\end{bmatrix} 1\begin{bmatrix}1/2-1/2\-1/21/2\end{bmatrix} \begin{bmatrix}21\12\end{bmatrix} ]适用范围要卡死(S) 必须对称更一般地正规矩阵也可以正交对角化但图形笔记聚焦对称矩阵。拿一个非对称矩阵硬套 (Q\Lambda Q^T)特征向量不一定正交甚至特征值可能是复数。PCA 里的协方差矩阵、二次型、弹簧系统矩阵都是这个分解的典型场景。3.3 SVD长方阵也能对角化SVD 把任意矩阵写成 (AU\Sigma V^T)。完整版里 (U) 是 (m\times m) 正交矩阵(\Sigma) 是 (m\times n) 对角矩阵(V) 是 (n\times n) 正交矩阵简化版只保留非零奇异值对应的部分(U) 是 (m\times r)(\Sigma) 是 (r\times r)(V) 是 (n\times r)。图形笔记画的是简化版因为长方阵的零空间和零奇异值在图上会被压缩掉读者要自己补上“只保留秩 (r)”这个前提。SVD 和对称矩阵特征分解的关系可以这样记(V) 是 (A^TA) 的特征向量(U) 是 (AA^T) 的特征向量奇异值是 (A^TA) 特征值的非负平方根。对称矩阵 (S) 的 SVD 里(UVQ)(\Sigma|\Lambda|)所以 SVD 是对称矩阵谱分解的推广。秩 1 展开是[ A\sum_{i1}^{r}\sigma_i u_i v_i^T ]每一项都是一个秩 1 矩阵奇异值按从大到小排列。图形笔记用“彩色块叠加”画这个展开读图时要数清楚有几项项数等于秩 (r)不是矩阵的行数或列数。SVD 的适用场景很广降维、图像压缩、推荐系统的隐因子、伪逆、最小二乘。它不要求矩阵方阵也不要求对称这是它比 QΛQᵀ 更通用的地方。用秩 1 矩阵 (A\begin{bmatrix}12\24\end{bmatrix}) 手算一遍 SVD 的骨架。这个矩阵的列成比例秩为 1。(A^TA\begin{bmatrix}510\1020\end{bmatrix})特征值是 25 和 0奇异值是 5 和 0。单位特征向量 (v_1[1,2]^T/\sqrt5)(u_1Av_1/\sigma_1[1,2]^T/\sqrt5)。于是[ A5\begin{bmatrix}1/\sqrt5\2/\sqrt5\end{bmatrix} \begin{bmatrix}1/\sqrt52/\sqrt5\end{bmatrix} \begin{bmatrix}12\24\end{bmatrix} ]这个例子把“奇异值非负、秩 1 展开、左右奇异向量”三件事一次串起来。读图形笔记的 SVD 图时先找 (\Sigma) 对角线上的非零项再找对应的 (u_i) 和 (v_i)最后检查 (U^TUI)、(V^TVI)。如果图上的 (U) 和 (V) 维度看起来对不上先确认你看的是完整版还是简化版别急着怀疑公式。4. 把图释落成练习NumPy 复算五种分解与误差观察看图最怕“眼睛会了手不会”。图形笔记的优势是直观短板是省略了数值细节和维度约定。把图释落成练习最省力的方式是选一个小矩阵用 NumPy/SciPy 把 CR、LU、QR、QΛQᵀ、SVD 各跑一遍再用重构误差和正交性检查图上的每个结论。下面这套代码不追求大矩阵性能只追求把符号和维度对齐。4.1 阅读路径与标注法第一遍读图只做一件事把每张图的名称和公式抄到一张纸上比如 v1、v2、Mv1、Mv2、MM1 到 MM4、P1 到 P4。第二遍读图时在白纸上重画列和行标出 (C(A))、(N(A))、秩 (r)、主元位置。第三遍再跑代码把图上的“显然”变成数值上的“误差接近零”。这个顺序不能反先跑代码容易变成调包先画图再跑代码才会知道每个参数在改什么。标注符号我建议统一成下面这套避免图和代码对不上符号含义代码里对应(a_j)第 (j) 列A[:, j](a_i^*)第 (i) 行A[i, :](C(A))列空间列向量的线性组合(N(A))零空间Ax0的解(r)秩np.linalg.matrix_rank(A)(P_i)投影矩阵q[:,None] q[None,:](\sigma_i)奇异值np.linalg.svd返回的s读图时还有一个容易忽略的点图形笔记里的图号是交叉引用的P1 会回指 MM2 和 Mv2P4 会同时出现在特征分解和 SVD 里。读的时候不要按页码线性翻按“乘法图 → 实用模式图 → 分解图”跳着看遇到交叉引用就回到对应的乘法图确认一次。4.2 用 NumPy 复算五种分解先装依赖。没有 SciPy 的机器用 pip 装一下NumPy 一般随环境已有python -m pip install numpy scipy下面这段代码选了一个 (3\times 3) 秩 2 矩阵做 CR、LU、QR、SVD又选了一个对称矩阵做 QΛQᵀ。矩阵不大输出可以直接对照图形笔记手算。import numpy as np from scipy.linalg import lu np.set_printoptions(precision4, suppressTrue) # 3x3 秩 2 矩阵第 3 列 第 1 列 第 2 列 A np.array([[1., 2., 3.], [2., 3., 5.], [3., 5., 8.]]) # 1) CR手动保留独立列 C行阶梯形 R 用系数矩阵验证 C A[:, [0, 1]] R np.array([[1., 0., 1.], [0., 1., 1.]]) print(A 的秩:, np.linalg.matrix_rank(A)) print(CR 重构误差:, np.linalg.norm(A - C R)) # 2) LU带置换的 PALU验证 P L U 是否还原 A P, L, U lu(A) print(LU 重构误差:, np.linalg.norm(P L U - A)) # 3) QR检查 Q 的正交性和 R 的上三角结构 Q, Rq np.linalg.qr(A) print(QR 重构误差:, np.linalg.norm(A - Q Rq)) print(Q^T Q 与单位阵的误差:, np.linalg.norm(Q.T Q - np.eye(Q.shape[1]))) # 4) 对称矩阵的 QΛQ^T S np.array([[2., 1., 0.], [1., 2., 1.], [0., 1., 2.]]) w, Qe np.linalg.eigh(S) # eigh 只适用于对称/厄米矩阵 print(对称矩阵特征值:, w) print(QΛQ^T 重构误差:, np.linalg.norm(S - Q p a hrefhttps://download.csdn.net/download/weixin_42764105/88701642 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p