当前位置:首页>python>我的Python100天打卡:66/100 Cholesky分解 | 特征值分解EVD | 奇异值分解SVD

我的Python100天打卡:66/100 Cholesky分解 | 特征值分解EVD | 奇异值分解SVD

  • 2026-10-11 08:40:42
我的Python100天打卡:66/100 Cholesky分解 | 特征值分解EVD | 奇异值分解SVD

#鸢尾花数学大系

挑战100天持续练习Python
今天是第66天
---

上次笔记,学完了第十七章的“矩阵乘法”“向量化运算”以及“格拉姆矩阵”,由于这三部分过于抽象,因此我用了三条笔记去反复理解,中途也停过几次,但最后还是结合了书本作者的视频,用自己的话去理解了格拉姆矩阵。即使如此,理解也是比较浅层的,还是停留在“调包侠”的层面。不管如何,有推进就是好事~

今天的事情比较多,但忙完就得继续,争取完成第十七章的剩余内容:

17.4 补完矩阵运算(从“切片”的角度,再次可视化理解格拉姆矩阵)

17.5 几个常见的矩阵分解

17.5.1 Cholesky分解

17.5.2 特征值分解(EVD)

17.5.3 奇异值分解(SVD)

--

17.4 补完矩阵运算(从“切片”的角度,再次可视化理解格拉姆矩阵)

这段主要是补完书本的可视化讲解:

1️⃣图17.7和17.8解释了为什么格拉姆矩阵是一个对阵的矩阵,也清晰地呈现了计算的过程(就是矩阵乘法哇):

2️⃣代码17.7虽然在昨天的笔记已经呈现了可一键复制的代码版本,但也附上书本的解释。为什么再次贴上图呢,一个是因为代码a、b两部分,已经把两个格拉姆矩阵的“切片方式”清晰呈现出来,至于为什么要切片?在d、f、g三部分,右侧都有很直观的计算步骤,之前的“切片”,就是为了后续的相乘,这跟我们之前在基础部分学习的“切片”类似于“做菜前用刀切好食材,便于处理”是一脉相承的。

--

17.5 几个常见的矩阵分解

-

17.5.1 Cholesky分解

1️⃣什么是“Cholesky分解”?

1. 先让AI帮忙用比喻的方式辅助理解:

2. 再整理下Cholesky分解的用处:

(1)可以让解方程的速度更快

(2)可以检查矩阵的健壮性

(3)可以生成相关的数据

(虽然如此,还是懵懵的,不过也算混个面熟了!)

3. Cholesky分解代码:

# 对格拉姆矩阵G进行Cholesky分解L = np.linalg.cholesky(G)L

3.1 运行结果:

3.2 Cholesky分解结果可视化:

--

17.5.2 特征值分解

1️⃣依然先来个看不懂的书本截图:

2️⃣再来一个通俗易懂的AI解释(我作为百岁老奶奶,很符合我脑袋空空的设定hhh):

1. 我的问题:

2. AI的回答:

3. 特征值分解的应用和其他解释:

4. 特征值分解代码:

# 对格拉姆矩阵G进行特征值分解Lambdas, V = np.linalg.eig(G)print(Lambdas)print(V)

4.1 运行结果和可视化:

--

17.5.3 奇异值分解(SVD)

1️⃣依然先来课本截图:

2️⃣再来个比喻:奇异值分解相当于“万能水果刀”,想怎么切就怎么切。

把“三把刀”的比喻,都整理到表格中:

3️⃣奇异值分解的代码:

# 鸢尾花数据矩阵X奇异值分解U,S,VT = np.linalg.svd(X, full_matrices = False)V_SVD = VT.T

4️⃣奇异值分解运行结果及可视化:

--

对于三个分解(Cholesky,特征值,奇异值分解)的可视化,我一开始看不出它和对应的分解风格和应用的联系。求助AI,整理如下:

1️⃣Cholesky(关键词:对称)

2️⃣特征值分解(关键词:核心)

3️⃣奇异值分解

--

附:三种分解方式的对比整理:

--

笔记写于:2026年4月20日20:09:19

结束于:2026年4月20日22:49:24

用时:约2.5小时

--

#鸢尾花数学大系

#编程随记

最新文章

随机文章