Gokix

一言(ヒトコト)

关注我

高斯消元法求矩阵的秩

现在假设一个 \(n\times n\) 矩阵 \(B=\)

\[\begin{bmatrix}a_{1,1}&\cdots&a_{1,n}\\\vdots&\ddots&\vdots\\a_{n,1}&\cdots&a_{n,n}\end{bmatrix} \]

目标是将其通过线性变换使得其成为一个上三角矩阵。操作如下:

  1. 对每一列从小到大枚举,假设现在枚举到第i列,则该矩阵的前i行i列的矩阵应该已经成为一个上三角矩阵,且前 \(i\) 列第 \(i+1\) 到第 \(n\) 列均为 \(0\).形如:(假设现在枚举到第2列);

\[\begin{bmatrix}a_{1,1}&a_{1,2}&a_{1,3}&\cdots&a_{1,n}\\0& a_{2,2} &a_{2,3} &\cdots&a_{2,n}\\0&0&a_{3,3}&\cdots&a_{3,n}\\\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&a_{3,n}&\cdots&a_{n,n}\end{bmatrix} \]

  1. 对于每个元,枚举每一列,找到该元系数绝对值最大的一列 \(i\),将第 \(i\) 列换到第 \(i\) 行;

  2. 通过加减消元使得 \(a_{i,i}=1\)

  3. 重复此操作n次,直到整个矩阵被化为一个上三角矩阵。此时,矩阵对角线上非0元素的个数即为矩阵的秩。

对于第2步的两点说明:

  • 枚举时,如果该元绝对值最大的系数是0,则该元可任取;

  • 寻找系数绝对值最大的一列可以保证精度相对误差较小,但是这样也会导致精度趋向最大误差的概率更大。任取系数非0的一列也可保证算法的正确性。在实际应用中可因不同需求而选用不同方法。

注意到高斯消元法的所有变换均为线性变换,所以不会影响解的变化。其正确性显然可用归纳法证得。

posted @ 2022-06-19 18:03  Gokix  阅读(278)  评论(0编辑  收藏  举报