问题
用高斯消元法(Gauss Elimination)求拥有唯一解的线性方程组。
可逆矩阵
对于n阶方阵A,存在n阶方阵B使得
AB=BA=E 其中E是单位矩阵,称A是可逆矩阵或非奇异矩阵(反之不存在的矩阵为不可逆矩阵或奇异矩阵),B是A的逆矩阵,记作A−1=B。
初等变换
对于矩阵A
(1) 用非零常数k(k=0)乘A的某行/列的每个元素;
(2) 互换A的某两行/列;
(3) 将A的某行/列元素的k倍加到另一行/列;
上面三种操作是矩阵的三种初等变换,分别称为初等倍乘、初等互换、初等倍加行/列变换。
由单元矩阵经过一次初等变换得到的矩阵称为初等矩阵,分别是
(1) 倍乘初等矩阵,如
E2(k)=1000k0001 其中E2(k)表示单位矩阵E的第2行/列乘k(k=0)倍得到的矩阵。
(2) 互换初等矩阵,如
E12=010100001 其中E12表示单位矩阵E的第1行与第2行(或第1列与第2列)互换得到的矩阵。
(3) 倍加初等矩阵,如
E31(k)=010100001 其中E31(k)表示单位矩阵E的第1行/列的k倍加到第3行/列得到的矩阵。
若矩阵A经过有限次初等变化变成矩阵B,则称A和B等价,记作A≅B。若A≅[ErOOO],则称后者为A的等价标准形。
矩阵的秩
若n行m列的矩阵Anm中存在r阶子式不等于0,且所有r+1阶子式(存在的话)都等于0,则称矩阵A的秩为r,记作r(A)。特别的,零矩阵的秩规定为0。其中,在矩阵Anm中任取k行与k列(k≤m,k≤n)组成的k阶行列式为Anm的一个k阶子式。
线性方程组
线性方程组
⎩⎨⎧a11×x1+a12×x2+⋯+a1m×xm=b1a21×x1+a22×x2+⋯+a2m×xm=b2⋯an1×x1+an2×x2+⋯+anm×xm=bn 可以表示为n行m列的矩阵A,第i行第j列的元素为aij。设X=[x1,x2,…,xm]是线性方程组的解,B=[b1,b2,…,bn]是线性方程的右边一列系数向量。一般简写作A⋅X=B。
(A∣B)=a11a21a31an1a12a22a32an2a13a23a33…an3…………a1ma2ma3manmb1b2b3…bn 上面的线性方程组可以写成增广矩阵
A=a11a21a31an1a12a22a32an2a13a23a33…an3…………a1ma2ma3manmB=b1b2b3…bn 增广矩阵的左边部分是线性方程组中的矩阵A,右边部分是线性方程组中的系数向量B。增广矩阵是一个n×(m+1)的矩阵。
高斯消元法的数学含义在于通过初等变化,将线性方程组对应的增广矩阵变化为只有r行不全为0的矩阵(其中r为增广矩阵的秩),形如
c11021031…0r1…0n1c12c220320r20n2c13c23c330r30n3……………c1rc2rc3rcrr0nr……………c1mc2mc3mcrm0nmb1b2b3…br…0n 经过变换后,不全为0的行有r行,全为0的行有n−r行。当r=n时,线性方程组有唯一解,否则有通解。
本问题只考虑r=n时有唯一解的线性方程组的解法。
数学复习全书(2013年李永乐李正元考研数学 数学一) - 第二篇 线性代数
源码
GaussElimination.h
GaussElimination.cpp
测试
GaussEliminationTest.cpp