跳至内容
数据科学

克拉默法则:求解线性方程组的直接方法

学习如何通过行列式使用克拉默法则求解线性方程组,并配以实用示例。
Arunn Thevapalan's photo
Arunn Thevapalan
已更新 · 7分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。

克拉默法则提供了一种利用行列式直接求解线性方程组的公式。虽然在求解大型系统时,现代计算方法通常优于克拉默法则,但理解这一技术有助于我们把握线性代数中线性系统、行列式与矩阵理论之间的关系。 

本文将介绍克拉默法则、其公式、数学基础及几何解释。我们还将通过多个示例展示其应用,讨论其局限性、替代方法,以及在数据科学中的最佳使用场景。

什么是克拉默法则?

克拉默法则指出,系统中每个变量都可以表示为两个行列式的比值:将系数矩阵替换后的行列式与原系数矩阵行列式之比。

该替换矩阵通过用方程右侧常数向量替换某一列系数得到。

为理解定理的条件,考虑矩阵形式的线性方程组 Ax = b,其中:

  • A 为系数矩阵
  • x 为未知量向量
  • b 为常数向量

只有当 A 为方阵(方程个数等于未知数个数)且其行列式不为零时,克拉默法则才适用,此时解唯一存在。

数学基础与公式

对一般的 n×n 系统,克拉默法则给出解向量第 i 个分量为:

Cramer’s rule formula.

克拉默法则公式。(图片及下文所有图片均由作者提供)

其中:

  • xi 为我们要求解的第 i 个变量
  • det(Ai) 为将矩阵 A 的第 i 列替换为向量 b 后所得矩阵的行列式
  • det(A) 为原系数矩阵的行列式

为更好地理解,让我们考察一个 2×2 系统:

系数矩阵 A 与常数向量 b 为:

根据克拉默法则:

其中 A₁ 为将 A 的第一列替换为 b:

A₂ 为将 A 的第二列替换为 b:

2×2 矩阵的行列式计算为:

理解上述解的模式后,我们可以将其直接应用于任意符合条件的系统,而无需联立求解。稍后我们还将把该法则扩展到 3x3 系统。

克拉默法则的几何解释

除了作为解线性系统的直接公式外,克拉默法则还具有丰富的几何意义。

二维中的平行四边形面积

将矩阵 A 的列视为平面中的向量。这些向量构成一个平行四边形,A 的行列式表示该平行四边形的有向面积。

当我们用向量 b 替换其中一列时,会得到一个新的平行四边形。该新矩阵的行列式 det(Ai) 表示在用 b 替代了某一原始方向向量后,所形成图形的面积。

因此:

每个变量 xi​ 告诉我们,b 在 A 第 i 列向量方向上的“成分”占比,并以 A 各列所张成的总体面积为尺度。

三维中的平行六面体体积

同样的逻辑可推广到三维。此时,A 的行列式代表由其三列向量构成的平行六面体的体积。

  • 用 b 替换某一列会得到一个新的平行六面体。
  • 比值 det(Ai)/det(A) 给出该列对整体形状体积贡献的相对大小。

无论在二维还是三维,克拉默法则都在衡量 b 在由 A 各列定义的“体积”中所占的份额。

应用克拉默法则的分步指南

我们通过两个示例展示克拉默法则在不同规模系统中的应用。

求解 2x2 系统

考虑如下两个线性方程:

步骤 1:确定系数矩阵与常数向量

我们可将该系统写为如下系数矩阵 A 与常数向量 b:

步骤 2:计算系数矩阵的行列式

A 的行列式为:

det(A) = (3)(-1) - (2)(2)
det(A) = -3 - 4
det(A) = -7

由于 det(A) = -7 ≠ 0,系统有唯一解,我们可以应用克拉默法则。

步骤 3:构造替换矩阵并计算其行列式

对 x,将 A 的第一列替换为 b:

现在计算 A₁ 的行列式:

det(A₁) = (13)(-1) - (2)(4)
det(A₁) = -13 - 8
det(A₁) = -21

对 y,将 A 的第二列替换为 b:

现在计算 A₂ 的行列式:

det(A₂) = (3)(4) - (13)(2)
det(A₂) = 12 - 26
det(A₂) = -14

步骤 4:应用克拉默法则公式

我们可按公式直接计算取值:

x = det(A₁) / det(A) = -21 / -7 = 3
y = det(A₂) / det(A) = -14 / -7 = 2

最后,通过将结果代回方程验证:

  • 第一式:3(3) + 2(2) = 9 + 4 = 13 
  • 第二式:2(3) — 1(2) = 6–2 = 4 

至此,我们已用克拉默法则求解了该 2x2 线性系统。

求解 3x3 系统

现在将其扩展至更复杂的 3x3 系统:

此示例将重复以上步骤。

步骤 1:确定系数矩阵与常数向量

由线性系统可写出系数矩阵 A 与常数向量 b:

步骤 2:计算系数矩阵的行列式

沿第一行展开:

det(A) =       2|2  1| - 1 |1  1| + 1 |1  2|
        		 |1  2|     |1  2|       |1  1|

计算各 2×2 行列式:

|2  1| = (2)(2) - (1)(1) = 4 - 1 = 3
|1  2|

|1  1| = (1)(2) - (1)(1) = 2 - 1 = 1
|1  2|

|1  2| = (1)(1) - (2)(1) = 1 - 2 = -1
|1  1|

因此,A 的行列式为:

det(A) = 2(3) - 1(1) + 1(-1)
det(A) = 6 - 1 - 1
det(A) = 4

由于 det(A) = 4 ≠ 0,系统有唯一解,可以应用克拉默法则。

步骤 3:构造替换矩阵并计算其行列式

对 x,将 A 的第一列替换为 b:

沿第一行展开:

det(A₁) = 7|2  1| - 1|8  1| + 1|8  2|
   	        |1  2|     |9  2|      |9  1|

计算 A₁ 的行列式:

det(A₁) = 7(3) - 1(16 - 9) + 1(8 - 18)
det(A₁) = 21 - 1(7) + 1(-10)
det(A₁) = 21 - 7 - 10
det(A₁) = 4

对 y,将 A 的第二列替换为 b:

A₂ 的行列式如下计算:

det(A₂) = 2|8  1| - 7|1  1| + 1|1  8|
                     |9  2|     |1  2|    |1  9|

det(A₂) = 2(16 - 9) - 7(2 - 1) + 1(9 - 8)
det(A₂) = 2(7) - 7(1) + 1(1)
det(A₂) = 14 - 7 + 1
det(A₂) = 8

对 z,将 A 的第三列替换为 b:

A₃ 的行列式如下计算:

det(A₃) = 2|2  8| - 1|1  8| + 7|1  2|
                     |1  9|      |1  9|       |1  1|

det(A₃) = 2(18 - 8) - 1(9 - 8) + 7(1 - 2)
det(A₃) = 2(10) - 1(1) + 7(-1)
det(A₃) = 20 - 1 - 7
det(A₃) = 12

步骤 4:应用克拉默法则公式

既然已得到所有必要值,可直接按公式计算 x、y、z:

x = det(A₁) / det(A) = 4 / 4 = 1
y = det(A₂) / det(A) = 8 / 4 = 2
z = det(A₃) / det(A) = 12 / 4 = 3

最后,通过将结果代回方程验证:

  • 第一式:2(1) + 1(2) + 1(3) = 2 + 2 + 3 = 7 
  • 第二式:1(1) + 2(2) + 1(3) = 1 + 4 + 3 = 8 
  • 第三式:1(1) + 1(2) + 2(3) = 1 + 2 + 6 = 9 

可以看到流程始终一致:用常数向量替换列并计算行列式。3×3 情况计算量更大,但其基本方法与 2×2 完全相同。

局限性、替代方法及何时使用克拉默法则

与所有算法一样,克拉默法则也有一些局限。如下所示:

计算复杂度

对于 n×n 系统,克拉默法则需要计算 (n+1) 个行列式。若采用代数余子式展开法计算行列式,其复杂度为 O(n!),整体复杂度在大系统上将难以接受。 

即便使用更高效的行列式算法,该方法在规模稍大时仍不实用。

数值稳定性问题

当行列式接近于零时,克拉默法则可能出现数值不稳定。 

在计算 det(A) 时的微小舍入误差,在用近零值作除法时会被放大,从而对病态系统(现实数据中很常见)变得不可靠。

克拉默法则的替代方法

由于主要在计算复杂度上的限制,我们通常采用以下替代方案之一:

  • 高斯消元法结合部分主元,将系统化为行阶梯形,复杂度为 O(n³),对 3×3 以上的系统远比克拉默法则高效。
  • LU 分解将系数矩阵分解为下三角与上三角矩阵,可高效求解具有相同系数矩阵的多个系统。
  • QR 分解通过将矩阵分解为正交矩阵与上三角矩阵,为病态系统提供更好的数值稳定性。

何时使用克拉默法则

尽管存在这些局限,克拉默法则在特定情境中仍具价值,例如:

  • 线性代数中的理论分析与证明
  • 需要精确代数解的符号计算
  • 小型系统(2×2 或 3×3),其显式公式可操作性强
  • 用于理解行列式与线性系统关系的教学场景
  • 在分析工作中推导闭式解

不过需要强调的是,在数据科学实践中,克拉默法则更多作为理解线性系统的概念与理论工具,而非计算方法。

结语

克拉默法则是一种通过行列式求解线性方程组的直接、基于公式的方法。我们探讨了该方法如何计算各变量取值,完成了 2×2 与 3×3 的示例,并理解了其几何含义。最后,我们也了解了其局限性、替代方案以及适用场景。

若要进一步加深对线性系统及其解法的理解,欢迎学习我们的 Linear Algebra for Data Science 课程,您将在其中学习包括克拉默法则在内的多种线性代数技术。


Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

作为一名高级数据科学家,我设计、开发并部署大规模机器学习解决方案,帮助企业做出更明智的数据驱动决策。作为数据科学写作者,我分享所学心得、职业建议以及深入的实践型教程。

常见问题

什么是克拉默法则?

克拉默法则是一种利用行列式求解线性方程组的数学方法。它将每个变量表示为两个行列式的比值。

克拉默法则能解任何方程组吗?

不可以。它仅在系数矩阵为方阵且行列式非零(系统有唯一解)时有效。

当 A 的行列式为零会怎样?

系统没有唯一解。可能无解或有无穷多解,此时无法应用克拉默法则。

克拉默法则的时间复杂度是多少?

采用朴素行列式计算的时间复杂度为 O(n!),在大系统上不切实际。即使使用优化的行列式算法,也仍不如 O(n³) 方法高效。

克拉默法则与高斯消元法有何不同?

克拉默法则利用行列式直接求解,而高斯消元法则是通过逐步变换矩阵来求解。

主题
数据科学

与 DataCamp 一起学习

课程

R 数据科学的线性代数

4 小时
21.9K
本课程介绍线性代数,这是支撑数据科学的最重要数学主题之一。
查看详情开始课程

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。
查看更多