← 返回《人工智能数学基础》
📑 查看全课大纲(第 81 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

Cholesky分解

约 18 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

Cholesky 分解

小象实战讲义 · 人工智能数学基础

在求解线性方程组、矩阵求逆等核心线性代数运算中,算法的效率至关重要。当矩阵具有特殊的“正定性”时,我们可以利用其优良的数学性质,采用一种比通用LU分解快约一倍的分解方法—Cholesky分解。本节将深入讲解Cholesky分解的定义、唯一性、构造性证明、高效算法及其在检验矩阵正定性、求解线性方程组和矩阵求逆中的关键应用,帮助你掌握这一处理正定矩阵的利器。

💡 核心导读

本节你将了解到:

  1. 定义与唯一性:Cholesky分解是正定矩阵的“平方根”分解,形式为 A=LLTA = LL^T,其中 LL 是对角元为正的下三角矩阵,且分解唯一。
  2. 构造与算法:通过数学归纳法和对称的初等行列变换,可以构造性地证明分解的存在性,并推导出时间复杂度为 O(13n3)O(\frac{1}{3}n^3) 的实用算法。
  3. 核心应用一:检验正定性:尝试对矩阵进行Cholesky分解是检验其是否正定的最有效数值方法之一,算法失败即表明矩阵非正定。
  4. 核心应用二:高效解方程:对于正定线性方程组 Ax=bAx=b,利用Cholesky分解 A=LLTA=LL^T 并求解两个三角方程组,其复杂度优于通用LU分解。
  5. 核心应用三:稳定求逆:结合Cholesky分解和下三角矩阵求逆的平方复杂度算法,可以稳定、高效地计算正定矩阵的逆,但仍需注意求逆本身的高计算成本。

1. 定义、性质与直观理解

Cholesky分解(Cholesky decomposition)是专门针对正定矩阵的一种特殊矩阵分解。

定义(Cholesky分解):设 ARn×nA \in \mathbb{R}^{n \times n} 是一个对称正定矩阵。则存在一个唯一的对角元全为正实数的下三角矩阵 LRn×nL \in \mathbb{R}^{n \times n},使得 A=LLT.A = L L^T. 我们称 LL 为矩阵 AACholesky因子

直观理解

  • 矩阵的“平方根”:正如一个正数 aa 可以写成 a=(a)2a = (\sqrt{a})^2,正定矩阵 AA 可以写成 A=LLTA = L L^T。因此,LL 可以视为 AA 的某种“平方根”。
  • 唯一性:对于正定矩阵 AA,满足上述条件的下三角矩阵 LL唯一的。如果 AA 是半正定矩阵,则分解存在但不唯一。
  • 不考虑非正定情况:对于非正定(不定或负定)矩阵,我们不讨论其Cholesky分解。

Cholesky分解主要有两个实用出发点:

  1. 已知正定,进行计算:当我们已知矩阵 AA 是正定的,并需要对其进行某些操作(如解方程、求逆)时,先进行Cholesky分解往往是高效的第一步。
  2. 检验是否正定:当我们不确定一个对称矩阵是否正定时,可以尝试对其执行Cholesky分解算法。如果算法顺利完成,则 AA 是正定的;如果算法在中途因出现零或负数(如试图对非正数开平方)而失败,则 AA 不是正定矩阵。

2. 存在性证明与计算思想

Cholesky分解的存在性可以通过数学归纳法构造性地证明,这个证明过程也揭示了其核心计算思想。

证明思路(数学归纳法)

  1. 归纳基础:当 n=1n=1 时,A=[a11]A = [a_{11}] 是一个正数。取 L=[a11]L = [\sqrt{a_{11}}],显然有 A=LLTA = L L^T,结论成立。
  2. 归纳假设:假设对于所有 n1n-1 阶正定矩阵,Cholesky分解存在。
  3. 归纳步骤:考虑 nn 阶正定矩阵 AA。因其正定且对称,可进行如下分块: A=(a11wTwK)A = \begin{pmatrix} a_{11} & \mathbf{w}^T \ \mathbf{w} & K \end{pmatrix} 其中 a11>0a_{11} > 0w\mathbf{w}n1n-1 维列向量,KKn1n-1 阶矩阵。
  4. 消去变换:我们的目标是通过对称的初等行列变换,消去分块中的非对角块 w\mathbf{w}wT\mathbf{w}^T。构造下三角矩阵: L1=(10T1a11wIn1)L_1 = \begin{pmatrix} 1 & \mathbf{0}^T \ -\frac{1}{a_{11}}\mathbf{w} & I_{n-1} \end{pmatrix}AA 进行合同变换: L1AL1T=(10T1a11wIn1)(a11wTwK)(11a11wT0In1)=(a110T0K1a11wwT).L_1 A L_1^T = \begin{pmatrix} 1 & \mathbf{0}^T \ -\frac{1}{a_{11}}\mathbf{w} & I_{n-1} \end{pmatrix} \begin{pmatrix} a_{11} & \mathbf{w}^T \ \mathbf{w} & K \end{pmatrix} \begin{pmatrix} 1 & -\frac{1}{a_{11}}\mathbf{w}^T \ \mathbf{0} & I_{n-1} \end{pmatrix} = \begin{pmatrix} a_{11} & \mathbf{0}^T \ \mathbf{0} & K - \frac{1}{a_{11}}\mathbf{w}\mathbf{w}^T \end{pmatrix}.A2=K1a11wwTA_2 = K - \frac{1}{a_{11}}\mathbf{w}\mathbf{w}^T
  5. 子矩阵的正定性:可以证明,A2A_2 仍然是正定矩阵。因为合同变换不改变矩阵的正定性,且 L1AL1TL_1 A L_1^T 的左上角 a11>0a_{11}>0,根据正定矩阵的判定定理(各阶顺序主子式大于零),其右下角的 n1n-1 阶子矩阵 A2A_2 也必为正定。
  6. 递归分解:由归纳假设,n1n-1 阶正定矩阵 A2A_2 存在Cholesky分解:A2=L2L2TA_2 = L_2 L_2^T,其中 L2L_2 是下三角矩阵。
  7. 组合因子:至此我们已有 L1AL1T=(a110T0A2)=(a110T0L2)(a110T0L2)T.L_1 A L_1^T = \begin{pmatrix} a_{11} & \mathbf{0}^T \ \mathbf{0} & A_2 \end{pmatrix} = \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix} \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix}^T. 对等式两边左乘 L11L_1^{-1}、右乘 (L1T)1(L_1^T)^{-1},由 L11=(10T1a11wIn1)L_1^{-1} = \begin{pmatrix} 1 & \mathbf{0}^T \ \frac{1}{a_{11}}\mathbf{w} & I_{n-1} \end{pmatrix},可得 A=(L11(a110T0L2))(L11(a110T0L2))T.A = \left(L_1^{-1} \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix}\right) \left(L_1^{-1} \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix}\right)^T. 因此 L=L11(a110T0L2)=(10T1a11wIn1)(a110T0L2)=(a110T1a11wL2).L = L_1^{-1} \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix} = \begin{pmatrix} 1 & \mathbf{0}^T \ \frac{1}{a_{11}}\mathbf{w} & I_{n-1} \end{pmatrix} \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \mathbf{0} & L_2 \end{pmatrix} = \begin{pmatrix} \sqrt{a_{11}} & \mathbf{0}^T \ \frac{1}{\sqrt{a_{11}}}\mathbf{w} & L_2 \end{pmatrix}. 它是对角元为正的下三角矩阵(a11>0\sqrt{a_{11}} > 0L2L_2 的对角元由归纳假设为正),且满足 A=LLTA = L L^T,归纳完成。对于 nn 阶矩阵,上述“消元—分解”过程可递归执行,最终 LL 等于所有初等下三角矩阵逆的乘积,仍为下三角矩阵。

上述证明过程本质上是高斯消元法在正定矩阵情形下的一个变体,但利用了对称性,只需对矩阵的一半元素进行操作。

算例:以矩阵 A=(4225)A = \begin{pmatrix}4 & 2 \ 2 & 5\end{pmatrix} 为例。

  1. 第一步:消去 a21=2a_{21}=2。变换矩阵 L1=(10241)=(100.51)L_1 = \begin{pmatrix}1 & 0 \ -\frac{2}{4} & 1\end{pmatrix} = \begin{pmatrix}1 & 0 \ -0.5 & 1\end{pmatrix}L1AL1T=(100.51)(4225)(10.501)=(4004).L_1 A L_1^T = \begin{pmatrix}1 & 0 \ -0.5 & 1\end{pmatrix} \begin{pmatrix}4 & 2 \ 2 & 5\end{pmatrix} \begin{pmatrix}1 & -0.5 \ 0 & 1\end{pmatrix} = \begin{pmatrix}4 & 0 \ 0 & 4\end{pmatrix}. 这里 A2=[4]A_2 = [4]
  2. A2A_2 分解:4=2×24 = 2 \times 2
  3. 组合:根据构造,L=(40242)=(2012)L = \begin{pmatrix}\sqrt{4} & 0 \ \frac{2}{\sqrt{4}} & 2\end{pmatrix} = \begin{pmatrix}2 & 0 \ 1 & 2\end{pmatrix}。 验证:LLT=(2012)(2102)=(4225)=AL L^T = \begin{pmatrix}2 & 0 \ 1 & 2\end{pmatrix} \begin{pmatrix}2 & 1 \ 0 & 2\end{pmatrix} = \begin{pmatrix}4 & 2 \ 2 & 5\end{pmatrix} = A

3. 算法、复杂度与算例

基于上述构造思想,可以得到Cholesky分解的数值算法(Cholesky–Banachiewicz算法)。

算法描述: 输入:nn 阶对称正定矩阵 AA。 输出:下三角矩阵 LL,使得 A=LLTA = L L^T

  1. 初始化 LL 为零矩阵。
  2. For j=1j = 1 to nn: a. 计算 Ljj=Ajjk=1j1Ljk2L_{jj} = \sqrt{A_{jj} - \sum_{k=1}^{j-1} L_{jk}^2}。 b. For i=j+1i = j+1 to nn: Lij=1Ljj(Aijk=1j1LikLjk)L_{ij} = \frac{1}{L_{jj}} (A_{ij} - \sum_{k=1}^{j-1} L_{ik} L_{jk})
  3. 返回 LL

算法复杂度分析:该算法的主要计算量集中在三重循环的内层求和上。总运算量约为 13n3\frac{1}{3}n^3 次浮点运算(FLOPs)。作为对比,通用的LU分解需要约 23n3\frac{2}{3}n^3 FLOPs。因此,Cholesky分解的计算量约为LU分解的一半

稳定性:由于正定矩阵的顺序主子式均大于零,算法中 LjjL_{jj} 的计算不会出现对零或负数开根号的情况,因此不需要选主元(pivoting)。这使得Cholesky分解在数值上非常稳定。

下面我们用NumPy来验证Cholesky分解及其应用。

import numpy as np

# 定义一个对称正定矩阵 A
A = np.array([[4.0, 2.0, 1.0],
              [2.0, 5.0, 3.0],
              [1.0, 3.0, 6.0]])

print("原矩阵 A:")
print(A)

# 应用1: 使用numpy的Cholesky分解,返回下三角矩阵 L,满足 A = L L^T
L = np.linalg.cholesky(A)  # 下三角Cholesky因子
L_T = L.T  # 上三角因子 L^T
print("\nCholesky因子 L (下三角):")
print(L)
print("\n验证 A = L L^T:")
print(L @ L_T)

# 应用2: 解线性方程组 Ax = b
b = np.array([1.0, 3.0, 2.0])
print(f"\n右端项 b: {b}")
# 方法:先解下三角方程组 Ly = b (前向代入)
# 注:此处用通用solve演示,生产环境可使用scipy.linalg.solve_triangular(L, b, lower=True)优化
y = np.linalg.solve(L, b)
# 再解上三角方程组 L^T x = y (后向代入)
x = np.linalg.solve(L_T, y)
print(f"解线性方程组 Ax=b 的解 x: {x}")
print(f"验证 Ax 是否等于 b: {np.allclose(A @ x, b)}")

# 应用3: 利用分解求逆 A^{-1} = (L^{-1})^T (L^{-1})
# 首先求下三角矩阵L的逆。下三角矩阵的逆也是下三角矩阵,可以通过前向代入法高效求解。
# 这里我们使用一个简单实现(对于教学演示),实际中可使用scipy.linalg.solve_triangular。
def invert_lower_triangular(L):
    """求下三角矩阵L的逆。假设L非奇异且为下三角。"""
    n = L.shape[0]
    invL = np.zeros_like(L)
    for i in range(n):
        invL[i, i] = 1.0 / L[i, i]  # 对角线元素
        for j in range(i):
            s = 0.0
            for k in range(j, i+1): # 注意求和范围
                # 更精确的写法是:对于i>j, sum(L[i,k]*invL[k,j]) for k=j to i-1
                if k < i: # 当k=i时,是L[i,i]*invL[i,j],此项是待求的,移到等式左边
                    s += L[i, k] * invL[k, j]
            # L[i,i]*invL[i,j] + s = 0 => invL[i,j] = -s / L[i,i]
            invL[i, j] = -s / L[i, i]
    return invL

invL = invert_lower_triangular(L)
invA_via_cholesky = invL.T @ invL
print("\n通过Cholesky分解求得的逆矩阵 A_inv:")
print(invA_via_cholesky)

# 与numpy直接求逆的结果对比
invA_np = np.linalg.inv(A)
print("\nNumPy直接求逆的结果:")
print(invA_np)
print(f"\n两种方法结果是否接近: {np.allclose(invA_via_cholesky, invA_np)}")

4. 三大核心应用场景

4.1 检验矩阵的正定性

这是Cholesky分解一个非常独特且重要的应用。对于一个对称矩阵 AA,要判断其是否正定,最直接的数值方法就是尝试进行Cholesky分解。

  • 如果分解成功完成,则 AA 是正定矩阵,并且同时得到了其Cholesky因子 LL
  • 如果分解过程中失败(例如,在计算 LjjL_{jj} 时遇到 Ajjk=1j1Ljk20A_{jj} - \sum_{k=1}^{j-1} L_{jk}^2 \le 0),则 AA 不是正定矩阵(可能是半正定或不定)。 这种方法的时间复杂度为 O(13n3)O(\frac{1}{3}n^3),是检验正定性的高效数值手段。

4.2 求解正定线性方程组

对于线性方程组 Ax=bA\mathbf{x} = \mathbf{b},其中 AAn×nn \times n 正定矩阵。

  1. 首先计算Cholesky分解:A=LLTA = L L^T
  2. 原方程化为 LLTx=bL L^T \mathbf{x} = \mathbf{b}
  3. y=LTx\mathbf{y} = L^T \mathbf{x},则先解 下三角方程组 Ly=bL \mathbf{y} = \mathbf{b}前向代入,复杂度 O(n2)O(n^2))。
  4. 再解 上三角方程组 LTx=yL^T \mathbf{x} = \mathbf{y}后向代入,复杂度 O(n2)O(n^2))。

总复杂度主要由Cholesky分解的 O(13n3)O(\frac{1}{3}n^3) 主导,优于使用LU分解的 O(23n3)O(\frac{2}{3}n^3)。在科学计算中,对于大规模正定系统(如来自有限元法、优化问题),Cholesky分解是首选方法。

4.3 计算正定矩阵的逆

虽然直接求逆通常应避免,但在某些情况下不可避免。对于正定矩阵 AA,利用Cholesky分解可以稳定地求逆: A1=(LLT)1=(LT)1L1=(L1)T(L1).A^{-1} = (L L^T)^{-1} = (L^T)^{-1} L^{-1} = (L^{-1})^T (L^{-1}). 关键在于求下三角矩阵 LL 的逆 L1L^{-1}。由于 LL 是下三角矩阵,其逆也是下三角矩阵,并且可以通过简单的前向代入法O(n2)O(n^2) 的复杂度求得(如前面代码示例所示)。因此,总的求逆复杂度仍由Cholesky分解的 O(13n3)O(\frac{1}{3}n^3) 决定。

重要提醒:尽管这种方法比通用的高斯消元法求逆(O(n3)O(n^3))在常数因子上有优势,但矩阵求逆本身始终是 O(n3)O(n^3) 复杂度的操作,计算成本很高。在机器学习和优化中,许多涉及逆矩阵的公式(如正态方程 (XTX)1XTy(X^TX)^{-1}X^Ty)都可以通过Cholesky分解求解线性方程组来规避显式求逆,这是更优的实践。

📝 动手练一练

  1. 手动计算:对以下正定矩阵 A=(9335)A = \begin{pmatrix} 9 & 3 \ 3 & 5 \end{pmatrix} 进行Cholesky分解,即求下三角矩阵 LL 使得 A=LLTA = L L^T
  2. 编程验证:使用NumPy的 np.linalg.cholesky 函数验证你手算的 LL 是否正确,并利用该分解求解方程组 Ax=(1211)A\mathbf{x} = \begin{pmatrix} 12 \ 11 \end{pmatrix}

参考答案:

  1. 手算过程: 设 L=(l110l21l22)L = \begin{pmatrix} l_{11} & 0 \ l_{21} & l_{22} \end{pmatrix}。 由 A=LLTA = L L^T(9335)=(l110l21l22)(l11l210l22)=(l112l11l21l11l21l212+l222)\begin{pmatrix} 9 & 3 \ 3 & 5 \end{pmatrix} = \begin{pmatrix} l_{11} & 0 \ l_{21} & l_{22} \end{pmatrix} \begin{pmatrix} l_{11} & l_{21} \ 0 & l_{22} \end{pmatrix} = \begin{pmatrix} l_{11}^2 & l_{11}l_{21} \ l_{11}l_{21} & l_{21}^2 + l_{22}^2 \end{pmatrix}。 比较元素:

    • l112=9l11=3l_{11}^2 = 9 \Rightarrow l_{11} = 3(取正)。
    • l11l21=33l21=3l21=1l_{11}l_{21} = 3 \Rightarrow 3 \cdot l_{21} = 3 \Rightarrow l_{21} = 1
    • l212+l222=51+l222=5l222=4l22=2l_{21}^2 + l_{22}^2 = 5 \Rightarrow 1 + l_{22}^2 = 5 \Rightarrow l_{22}^2 = 4 \Rightarrow l_{22} = 2(取正)。 因此,L=(3012)L = \begin{pmatrix} 3 & 0 \ 1 & 2 \end{pmatrix}
  2. 编程验证

    import numpy as np
    A = np.array([[9.0, 3.0], [3.0, 5.0]])
    b = np.array([12.0, 11.0])
    
    # 使用numpy的Cholesky分解,返回下三角因子 L
    L_np = np.linalg.cholesky(A)
    L_T_np = L_np.T  # 上三角因子 L^T
    print("NumPy计算的 L:")
    print(L_np)
    
    # 验证分解
    print("\n验证 A = L L^T:")
    print(L_np @ L_T_np)
    
    # 解方程 Ly = b
    y = np.linalg.solve(L_np, b)
    # 解方程 L^T x = y
    x = np.linalg.solve(L_T_np, y)
    print(f"\n方程的解 x: {x}")
    print(f"验证 Ax = b: {np.allclose(A @ x, b)}")

本章小结

本节深入探讨了针对对称正定矩阵的Cholesky分解。

要点回顾

  • 定义:正定矩阵 AA 可唯一分解为 A=LLTA = LL^TLL 是对角元为正的下三角矩阵。
  • 算法与复杂度:基于高斯消元思想的Cholesky算法复杂度约为 13n3\frac{1}{3}n^3,且因正定性保证而无需选主元,数值稳定。
  • 核心应用
    1. 高效检验正定性:尝试分解是最实用的数值判定方法。
    2. 快速求解线性方程组:对于 Ax=bAx=b,分解后求解两个三角方程组,速度快于通用LU分解。
    3. 稳定求逆:结合下三角矩阵求逆,可稳定计算 A1A^{-1},但应优先考虑避免显式求逆的方案。

行动清单

  1. 掌握手算:对于2维或3维简单正定矩阵,能够手动完成Cholesky分解。
  2. 熟练调用:在Python中,学会使用 np.linalg.cholesky 进行分解,并利用其结果解方程。
  3. 建立条件反射:在后续学习机器学习模型(如高斯过程、优化中的牛顿法)时,遇到对称正定矩阵,优先考虑使用Cholesky分解来提升计算效率和数值稳定性。

— 小象教研组

配套学习资源与课件
  • 第10章讲义(含板书):线性代数(PDF · 15.5MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问