矩阵、行列式
- 求解线性方程
- 一元一次方程
,其解为
- 二元一次方程组
,其解为
- 一元一次方程
- 我们需要定义什么是乘法
、什么是逆
- 因为右边的系数
为竖向排列的,所以我们令解
也为竖向排列的。从而,我们们可以得到乘法
- 我们也可以直接求解方程组
- (消元过程)将第一式乘以
加到第二式,可以消去
,
- (代回过程)我们可以解得
,
代回到第一式,我们可以解得
(由于下标1、2是对称的,故相当于1、2对换),
- (消元过程)将第一式乘以
- 从而,我们可以得到逆
- 因为右边的系数
、
、
称为矩阵。因此,矩阵的乘法、逆可以用于求解方程组
- 当
时,
存在,
可逆,方程组有唯一解
- 当
时,
不存在,
不可逆。不过,此时
的两行系数只相差常数倍,如果
的两行系数相差同样的倍数,那么方程组有多于一个解,否则方程组无解
- 在第一种情形中,独立的方程为2个(非退化);在第二种情形中,独立的方程为1个或0个(退化)。因此,可逆即非退化,不可逆即退化
- 当
- 因为
决定了
是否可逆,以及方程组解的个数,所以它称为决定式(Determinant),也叫做行列式,记为
。同时,
对应于伴随(Adjugate)矩阵,
对应于伴随(Adjoint)算子,这里存在词语冲突,Adjugate、Adjoint是不同的
- Adjugate更接近于Conjugate(共轭),比如在四元数中,四元数的共轭对应于伴随矩阵
- Adjoint更常见,比如范畴论中的伴随函子
- 由于矩阵的逆满足
为单位矩阵,故伴随矩阵满足
Cramer法则、Gauss消元法
- 现在,我们将二元一次方程组推广到
元一次方程组,即一般的线性方程。为了方便起见,我们考虑
为可逆矩阵
- Cramer法则
- 求解线性方程,等价于求矩阵的逆
- 求矩阵的逆,等价于求行列式、伴随矩阵
- 在一般情形下,伴随矩阵的系数全部为行列式。因此,线性方程的求解可以完全化归为行列式的计算,比如
- Gauss消元法
- (消元过程)交换两行,使得第一行第一列不为零。将第一行乘以常数倍加到其他行,可以消去第一列的元。从第二行开始继续消元,直到倒数第一行只剩一个元
- (代回过程)解得倒数第一行的元,将其代回到其他行。从倒数第二行开始继续求解,直到解得全部元
- Cramer法则
- 由Cramer法则、Gauss消元法,可得一般情形下的行列式、伴随矩阵
- (Cramer法则)对于三元一次方程组,如果令第二、三行的
系数为0,那么
、
的方程组化归为二元一次方程组,比如
,比如
- (Gauss消元法)考虑如下三种运算,它们对应于三种初等矩阵。注意,它们对应于行列式的反对称性、线性
- (反对称性)交换两行,比如
- (线性,系数)某一行乘以常数倍,比如
- (线性,加法)某一行加到另一行,比如
- 对于初等矩阵
,我们有
,这个等式也成立
- 当
可逆时,由于三种运算求解线性方程,等价于三种初等矩阵生成
,故等式成立
- 当
不可逆时,
也不可逆,相应的行列式为0,故等式成立
- 当
- (反对称性)交换两行,比如
- 高阶行列式可以展开为低阶行列式,并且行列式具有反对称性,故
阶行列式为
为第
列对换到第1列(
)后展开的系数,所以需要乘以
。
为
去掉第1行、第
列后的行列式
- 一般地,
可以表示为
,也可以表示为
- 高阶行列式每展开一次就下降一阶,并且行、列下标
、
被去掉。如果将其完全展开为
,那么行、列下标不能重复
- 当行下标固定为1~n时,列下标为1~n的置换,再加上反对称性,故
阶行列式为
为
元置换群。当置换
为偶数个对换时,
;当置换
为奇数个对换时,
- 我们既可以固定行下标,也可以固定列下标,所以行列式关于行、列是对称的。取
的第
行等于
的第
列,它称为
的转置,满足
- 当行下标固定为1~n时,列下标为1~n的置换,再加上反对称性,故
- (Cramer法则)对于三元一次方程组,如果令第二、三行的
- 上面,我们可以由行列式的性质,得到行列式的表达式。反过来,我们也可以由行列式的表达式,以及de Rham上同调群的定义中的外代数,直接导出行列式的所有性质
线性方程的求解,数值计算
- 尽管线性方程的求解可以完全化归为行列式的计算,并且行列式可以完全展开为
,然而
的阶为
,计算复杂度太高。因此,线性方程的求解通常基于Gauss消元法
- // 消元过程(Gaussian Elimination,GE)
- function
- for
- for
- for
- for
- return
- // 代回过程(Backward Substitution,BS)
- function
- for
- for
- return
- 在数值计算中,我们通常使用浮点数。因此,Gauss消元法的矩阵为浮点数矩阵
- 在一般情形下,浮点数等于0是不会成立的。为了方便起见,我们省略了交换两行的运算
- Gauss消元法的计算复杂度可以用浮点运算次数(Floating-Point Operations,flops)来表示,包括加法、减法、乘法、除法等。比如,消元过程为
- 消元过程完成后,矩阵
作为上三角矩阵
传入代回过程。如果将消元过程的所有
作为下三角矩阵
,并且
的对角线为1,那么我们可以得到LU分解