克莱姆法则

克莱姆法则或克拉玛公式（Cramer's rule / formula）是一个线性代数中的定理，用行列式来计算出线性等式组中的所有解。这个定理因加百列·克莱姆（1704年 - 1752年）的卓越使用而命名。在计算上，并非最有效率之法，因而在很多条等式的情况中没有广泛应用。不过，这一定理在理论性方面十分有效。

## 基本方程

一个线性方程组可以用矩阵与向量的方程来表示：

$Ax = c\, \qquad \qquad \qquad \qquad \qquad \qquad (1)$

其中的$A$是一个$n \times n$的方块矩阵，而向量 $x=( x_1, x_2, \cdots x_n )^T$ 是一个长度为n的行向量。$c=( c_1, c_2, \cdots c_n )^T$ 也一样。

克莱姆法则说明：如果$A$是一个可逆矩阵（$\det{A} \neq 0$），那么方程(1)有解 $x=( x_1, x_2, \cdots x_n )^T$，其中

$x_i = { \det(A_i) \over \det(A)}$ (1)

当中$x_i$是列向量$x$的第i行（行向量与列向量不一样，解释默认列向量）

当中$A_i$是列向量$c$取代了$A$的第i列后得到的矩阵。为了方便，我们通常使用$\Delta$来表示$\det(A)$，用$\Delta_i$来表示$\det(A_i)$。所以等式(1)可以写成为：

$x_i = { \Delta_i \over \Delta }\,$。

## 抽象方程

设$R$为一个环，$A$就是一个包含$R$的系数的$n\times n$矩阵。所以：

$$\mathrm{adj}(A)A = \mathrm{det}(A)I\,$$

当中$\det (A)$就是$A$的行列式，以及$I$就是单位矩阵。

## 证明概要

对于$n$元线性方程组$$A x = c$$

把系数矩阵 表示成行向量的形式

$$A = \left( u_1, u_2, \cdots, u_n\right)$$

由于系数矩阵可逆，故方程组一定有解$x^* = A^{-1} c$.

设$x^* = (x_1, x_2, \cdots, x_n)^T$，即

$$A x^* = \sum_{k=1}^n x_k u_k = c$$

考虑$\Delta_i$的值，利用行列式的线性和交替性质，有

$$\begin{align} \Delta_i &= det\left(\cdots, u_{i-1}, c, u_{i+1}, \cdots\right) \\ & = det\left(\cdots, u_{i-1}, \sum_{k=1}^n x_k u_k, u_{i+1}, \cdots\right) \\ & = \sum_{k=1}^n x_k \cdot det\left(\cdots, u_{i-1}, u_k, u_{i+1}, \cdots\right) \\ & = x_i \cdot det\left(\cdots, u_{i-1}, u_i, u_{i+1}, \cdots\right) \\ & = x_i \Delta \end{align}$$

于是

$$x_i = \frac{\Delta_i}{\Delta}$$

## 例子

运用克莱姆法则可以很有效地解决以下方程组。

已知：

$$ax + by = {\color{red}e}\,$$

$$cx + dy = {\color{red}f}\,$$

使用矩阵来表示时就是：

$$\begin{bmatrix} a & b \\ c & d \end{bmatrix}\begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} {\color{red}e} \\ {\color{red}f} \end{bmatrix}$$

当矩阵可逆时，x和y可以从克莱姆法则中得出：

$$x = \frac { \begin{vmatrix} \color{red}{e} & b \\ \color{red}{f} & d \end{vmatrix} } { \begin{vmatrix} a & b \\ c & d \end{vmatrix} } = { {\color{red}e}d - b{\color{red}f} \over ad - bc}$$

以及

$$y = \frac { \begin{vmatrix} a & \color{red}{e} \\ c & \color{red}{f} \end{vmatrix} } { \begin{vmatrix} a & b \\ c & d \end{vmatrix} } = { a{\color{red}f} - {\color{red}e}c \over ad - bc}$$

用3×3矩阵的情况亦差不多。

已知：

$$ax + by + cz = {\color{red}j}\,$$

$$dx + ey + fz = {\color{red}k}\,$$

$$gx + hy + iz = {\color{red}l}\,$$

当中的矩阵表示为：

$$\begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix}\begin{bmatrix} x \\ y \\ z \end{bmatrix}=\begin{bmatrix} {\color{red}j} \\ {\color{red}k} \\ {\color{red}l} \end{bmatrix}$$

当矩阵可逆时，可以求出x、y和z：

$x = \frac { \begin{vmatrix} {\color{red}j} & b & c \\ {\color{red}k} & e & f \\ {\color{red}l} & h & i \end{vmatrix} } { \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} }$、 $y = \frac { \begin{vmatrix} a & {\color{red}j} & c \\ d & {\color{red}k} & f \\ g & {\color{red}l} & i \end{vmatrix} } { \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} }$ 以及 $z = \frac { \begin{vmatrix} a & b & {\color{red}j} \\ d & e & {\color{red}k} \\ g & h & {\color{red}l} \end{vmatrix} } { \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} }$

### 微分几何上的应用

克莱姆法则在解决微分几何的问题时十分有用。

先考虑两条等式$F(x, y, u, v) = 0\,$和$G(x, y, u, v) = 0\,$。其中的u和v是需要考虑的变量，并且它们互不相关。我们可定义$x = X(u, v)\,$和$y = Y(u, v)\,$。

找出一条等式适合$\partial x/\partial u$是克莱姆法则的简单应用。

首先，我们要计算$F$、$G$、$x$和$y$的导数：

$$dF = \frac{\partial F}{\partial x} dx + \frac{\partial F}{\partial y} dy +\frac{\partial F}{\partial u} du +\frac{\partial F}{\partial v} dv = 0$$

$$dG = \frac{\partial G}{\partial x} dx + \frac{\partial G}{\partial y} dy +\frac{\partial G}{\partial u} du +\frac{\partial G}{\partial v} dv = 0$$

$$dx = \frac{\partial X}{\partial u} du + \frac{\partial X}{\partial v} dv$$

$$dy = \frac{\partial Y}{\partial u} du + \frac{\partial Y}{\partial v} dv$$

将$dx$和$dy$代入$dF$和$dG$，可得出：

$$dF = \left(\frac{\partial F}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial u} +\frac{\partial F}{\partial u} \right) du + \left(\frac{\partial F}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial v} +\frac{\partial F}{\partial v} \right) dv = 0$$

$$dG = \left(\frac{\partial G}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial u} +\frac{\partial G}{\partial u} \right) du + \left(\frac{\partial G}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial v} +\frac{\partial G}{\partial v} \right) dv = 0$$

因为$u$和$v$互不相关，所以$du$和$dv$的系数都要等于0。所以等式中的系数可以被写成：

$$\frac{\partial F}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial u} = -\frac{\partial F}{\partial u}$$

$$\frac{\partial G}{\partial x} \frac{\partial x}{\partial u} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial u} = -\frac{\partial G}{\partial u}$$

$$\frac{\partial F}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial F}{\partial y} \frac{\partial y}{\partial v} = -\frac{\partial F}{\partial v}$$

$$\frac{\partial G}{\partial x} \frac{\partial x}{\partial v} +\frac{\partial G}{\partial y} \frac{\partial y}{\partial v} = -\frac{\partial G}{\partial v}$$

现在用克莱姆法则就可得到：

$$\cfrac{\partial x}{\partial u} = \cfrac{\begin{vmatrix} -\cfrac{\partial F}{\partial u} & \cfrac{\partial F}{\partial y} \\ -\cfrac{\partial G}{\partial u} & \cfrac{\partial G}{\partial y}\end{vmatrix}}{\begin{vmatrix}\cfrac{\partial F}{\partial x} & \cfrac{\partial F}{\partial y} \\ \cfrac{\partial G}{\partial x} & \cfrac{\partial G}{\partial y}\end{vmatrix}}$$

用两个雅可比矩阵来表示的方程：

$$\cfrac{\partial x}{\partial u} = - \cfrac{\left(\cfrac{\partial\left(F, G\right)}{\partial\left(u, y\right)}\right)}{\left(\cfrac{\partial\left(F, G\right)}{\partial\left(x, y\right)}\right)}$$

用类似的方法就可以找到$\frac{\partial x}{\partial v}$，$\frac{\partial y}{\partial u}$，$\frac{\partial y}{\partial v}$。

### 基本代数上的应用

克莱姆法则可以用来证明一些线性代数中的定理，当中的定理对环理论十分有用。

### 线性规划上的应用

克莱姆法则可以用来证明一个线性规划问题有一个基本整数的解。这样使得线性规划的问题更容易被解决。

## 缺点

克莱姆法则在电子计算机出现后，被认为是难以实际用于计算的。当使用克莱姆法则计算一个$n$阶线性方程组时，所需乘法次数为$(n+1)!$ 次。例如求解25阶线性方程组时，总计乘法次数需要$26!$（即4.03×1026）次，若计算机每秒能计算100亿次，所需时间约12.79亿年。相比之下，高斯消元法只需3060次乘法，对计算机而言易如反掌。

## 外部链接

- Online calculator to solve a system of ecuations using the Cramer's Rule
- Systems Solver