Gauss 消元法
三角形方程组的解法
设
Ux=b,
其中 U=(uij) 为上三角矩阵。由回代过程可得
xnxi=unnbn,=uiibi−j=i+1∑nuijxj,i=n−1,…,1.
该回代过程的计算量为
∑k=1nk=2n(n+1).
Gauss 消元法及其计算量
考虑线性方程组
Ax=b,A=(aij),b=(b1,…,bn)T∈Rn.
若 a11(1)=0,令
a1(1)=(0,a21(1),…,an1(1))T,e1=(1,0,…,0)T,
构造 Gauss 矩阵
G1=I−a11(1)1a1(1)e1T.
于是
(A(2) b(2))=G1(A(1) b(1))=a11(1)0⋮0a12(1)a22(2)⋮an2(2)⋯⋯⋯a1n(1)a2n(2)⋮ann(2)b1(1)b2(2)⋮bn(2),
其中
aij(2)bi(2)li1=aij(1)−li1a1j(1),=bi(1)−li1b1(1),=a11(1)ai1(1),i,j=2,…,n.
重复上述消元过程,直到
(A(n) b(n))=(U∣b),
其中 U=A(n) 为上三角矩阵,再由回代法求解。
Gauss 消元和回代的总计算量为
QG=k=1∑n−1(n−k)(n−k+2)+2n(n+1)=3n3+n2−3n.
Gauss 消元法的可行性
定理(不选主元的 Gauss 消元)
设 A∈Rn×n。不进行行交换的 Gauss 消元法可实施,当且仅当
A 的各阶顺序主子矩阵均非奇异。
列主元消元法
在第 k 步消元时,从第 k 列的第 k 至第 n 个元素中,选取绝对值最大的元素作为主元,并通过行交换将其置于第 k 行。
三角分解法
LU 分解
定理(LU 分解)
若 A 的前 n−1 个顺序主子矩阵均非奇异,则存在唯一的单位下三角矩阵 L 与上三角矩阵 U,使
A=LU.
该分解可用于求解线性方程组:
Ax=b⟺LUx=b⟺{Ly=b,Ux=y.
它也可用于计算行列式:
det(A)=det(L)det(U)=∏k=1nukk.
Doolittle 分解与 LDU 分解
在 Doolittle 分解中,L 的对角元规定为 1。也可写成
A=LDU,D=diag(d1,…,dn),
其中 L,U 为单位下、上三角矩阵。Crout 分解则规定 U 的对角元为 1。
Doolittle 分解示例
设
A=2141−11−221=1l21l3101l32001u1100u12u220u13u23u33.
逐项比较可得
u11=2,u12=1,u13=−2,l21=21,l31=2,u22=−23,u23=3,l32=32,u33=3.
带置换的 LU 分解
定理(带置换的 LU 分解)
设 A 非奇异,则存在置换矩阵 P、单位下三角矩阵 L 及上三角矩阵 U,使
PA=LU.
该分解可由列主元消元法得到。
利用该分解求解方程组时,
Ax=b⟺LUx=Pb⟺{Ly=Pb,Ux=y.
若 s 为行交换次数,则
det(P)det(A)=det(L)det(U)⟹det(A)=(−1)s∏k=1nukk.
对称正定方程组
对于对称正定矩阵 A,有
A=LDLT,D=diag(d1,…,dn),di>0.
令 L=LD1/2,则得到 Cholesky 分解
A=LLT.
此时 L 为下三角矩阵,且其元素满足
akkaik=lk12+⋯+lkk2,=li1lk1+⋯+liklkk,k<i.
按列依次确定 l11,l21,…,ln1;l22,…,ln2;…,即可得到该下三角因子;计算量约为 n3/6。
对于三对角方程组 Ax=b,若
A=e1d20f1e2⋱f2⋱dn−1⋱en−1dn0fn−1en=LU,
则可按 Doolittle 方法计算:
r1li=e1,=ri−1di,ri=ei−lifi−1,i=2,…,n.
之后依次解 Ly=b(前代)与 Ux=y(回代)。