高斯约旦
高斯约旦
这玩意每次学了老是要忘,有可能没有理解透彻,所以写一下。
高斯约旦会将矩阵变为对角矩阵,步骤如下:
- 枚举第 i 行,接着枚举第 j 列,对于第 j 行的 Ai,j 变成 0,就需要用 j 行减去 Ai,iAi,j 倍的第 i 行,
但由于按照顺序的 Ai,i 可能为 0,所以我们应当先枚举第 j 列,接着枚举 i 行,找到一个非 Ai,j=0 的 i,将第 i 行与 j 行交换,然后再进行上面的步骤即可。
总的来说:
- 枚举第 j 列,然后枚举 i 行,找到一个不为 0 的位置 Ai,j,如果找不到则无解。
- 将第 j 行和第 i 行交换,把第 i 行全部除以 Ai,i,目的是使得 Ai,i=1。
- 最后用枚举第 k(k=i) 行,用 k 行减去 Ak,j 倍的 i 行,目的是使得 Ak,j=0。
矩阵求逆
矩阵求逆相当于是把矩阵和一个单位矩阵拼到一起,然后消元就能够得到逆了。
具体地,设 A 为当前矩阵,I 为单位矩阵,[AI] 为将二者以从左到右的顺序拼接到一起,是一个 n×2n 的矩阵,经过消元后得到 [IA−1]。
如果左侧不是单位矩阵,说明矩阵不可逆。
行列式
行列式是矩阵的一种运算,对于一个矩阵 A,detA 代表 A 的行列式。
那么如何理解一个行列式究竟是什么呢,我们知道 A 可以表示一个 N 维空间的一个几何体,如果
A=[1001],那么可以看作一个二维空间中 1×1 的正方形。
对于一个 N×N 的行列式,其代表的是空间的线性变换。
如对于一个行列式
3002
相当于是把二维空间中 1×1 的正方形变成了 3×2 的长方形。如果行列式为 1101 则相当于把一个正方形变成了一个平行四边形。
知道了这一点之后相信能够更好的理解行列式。
行列式满足以下性质:
- 矩阵转置行列式不变。(显然交换一个长方形的长宽面积不变)
- 矩阵行(列)交换,行列式取反(相当于将平面反向,参考行列式 3002)
- 矩阵行(列)相加或相减,行列式不变(参考行列式 A=1001 变为 1101 相当于是一个 1×1 的正方形,变成了一个高为 1 底为 1 的平行四边形,面积不变)
- 矩阵行(列)同时乘以 k 行列式等比例变大。(显然,将一个长方形的高扩大 k 倍,面积也扩大 k 倍)
由于行列式的定义为:
det(A)=∣A∣=p∑(−1)τ(p)i=1∏nAi,pi
后面的 ∏ 在只要有一项为 0 的时候整个就为 0,根据刚刚提到的性质,我们可以把 A 化成对角矩阵的形式,这样子当且仅当 p={1,2,⋯,n} 的时候有值。