a 上/下三角矩阵及其性质
略
b 高斯消元变换
M k v = [ 1 ⋱ 1 − v k + 1 v k 1 ⋮ ⋱ − v n v k 1 ] [ v 1 ⋮ v k v k + 1 ⋮ v n ] = [ v 1 ⋮ v k 0 ⋮ 0 ] M_k v = \begin{bmatrix} 1 & & & & & \\ & \ddots & & & & \\ & & 1 & & & \\ & & -\frac{v_{k+1}}{v_k} & 1 & & \\ & & \vdots & & \ddots & \\ & & -\frac{v_n}{v_k} & & & 1 \\ \end{bmatrix} \begin{bmatrix} v_1 \\ \vdots \\ v_k \\ v_{k+1} \\ \vdots \\ v_n \\ \end{bmatrix} = \begin{bmatrix} v_1 \\ \vdots \\ v_k \\ 0 \\ \vdots \\ 0 \\ \end{bmatrix} Mkv=⎣⎢⎢⎢⎢⎢⎢⎢⎡1⋱1−vkvk+1⋮−vkvn1⋱1⎦⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡v1⋮vkvk+1⋮vn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡v1⋮vk0⋮0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
c高斯消元变换算法的结果
1: A ( 1 ) = A A^{(1)}=A A(1)=A
2: FOR k = 1 , 2 , . . . , n − 1 k= 1,2,...,n- 1 k=1,2,...,n−1 DO
3: 令 v = A : k ( k ) v=A^{(k)}_{:k} v=A:k(k) (即 A ( k ) A^{(k)} A(k)的A(:,k)(MATLAB写法)),并基于 v v v计算高斯变换 M k M_k Mk
4: A ( k + 1 ) ← M k A ( k ) A^{(k+1)} ← M_k A^{(k)} A(k+1)←MkA(k)
5: END FOR
A ( n ) A^{(n)} A(n)第k列的后(n-k)个元素一定是0.
A ( n ) A^{(n)} A(n)是上三角矩阵.
注: 高斯变换消元 A k k ( k ) ≠ 0 A^{(k)}_{kk} \neq 0 Akk(k)=0当且仅当顺序主子式均不为零. (容易证明初等变换不改变顺序主子式之值)
实际计算过程中, 为了保持数值稳定性, 通常会选取A(k+1:n,k+1:n)或者A(k+1:n,k+1)绝对值最大元素(分布称作矩阵主元和列主元), 然后将其通过初等变换将其位置交换到(k+1,k+1). 由于列主元方法计算复杂度较低, 因此实际实现往往采用列主元法. 列主元法也能把 A k k ( k ) = 0 A^{(k)}_{kk} = 0 Akk(k)=0的元素移动到矩阵的末尾, 从而推导出PLU分解, 可以看作LU分解的推广. PLU分解比LU分解更加繁复, 这里就不深入讨论了,
中文 | 英文 | 数学 |
---|---|---|
主子式 | principal minor | D D D |
顺序主子式 | sequential principal minor | D k D_k Dk |
余子式 | i j minor | M i j M_{ij} Mij |
代数余子式 | i j cofactor | C i j = ( − 1 ) i + j M i j C_{ij} = (-1)^{i+j} M_{ij} Cij=(−1)i+jMij |
d.1 高斯消元变换矩阵的行列式
易见 M k M_k Mk是下三角矩阵, 因此 det ( M k ) = ∏ i = 1 n ( M k ) i i = ∏ i = 1 n 1 = 1 \det(M_k) = \prod\limits_{i=1}^{n} {\left(M_k\right)}_{ii} = \prod\limits_{i=1}^{n} 1 = 1 det(Mk)=i=1∏n(Mk)ii=i=1∏n1=1.
d.2 高斯消元变换矩阵的积
引理d.2.1 两个下三角矩阵之积仍是下三角矩阵.
只需证明, i < j i<j i<j时, ( L 1 L 2 ) i j = 0 (L^1L^2)_{ij}=0 (L1L2)ij=0.
如果 i < j i<j i<j,
- ( L 1 L 2 ) i j = ∑ k = 1 n L i k 1 L k j 2 = ∑ k = 1 i L i k 1 L k j 2 + ∑ k = i + 1 n L i k 1 L k j 2 (L^1L^2)_{ij} = \sum\limits_{k=1}^{n} L^1_{ik} L^2_{kj} = \sum\limits_{k=1}^{i} L^1_{ik} L^2_{kj} + \sum\limits_{k=i+1}^{n} L^1_{ik} L^2_{kj} (L1L2)ij=k=1∑nLik1Lkj2=k=1∑iLik1Lkj2+k=i+1∑nLik1Lkj2
- 由于 L 2 L^2 L2是下三角矩阵, 所以 ∑ k = 1 i L i k 1 L k j 2 = 0 \sum\limits_{k=1}^{i} L^1_{ik} L^2_{kj} = 0 k=1∑iLik1Lkj2=0.
- 由于 L 1 L^1 L1是下三角矩阵, 所以 ∑ k = i + 1 i L i k 1 L k j 2 = 0 \sum\limits_{k=i+1}^{i} L^1_{ik} L^2_{kj} = 0 k=i+1∑iLik1Lkj2=0.
- ( L 1 L 2 ) i j = ∑ k = 1 i L i k 1 L k j 2 + ∑ k = i + 1 n L i k 1 L k j 2 = 0 + 0 = 0 (L^1L^2)_{ij} = \sum\limits_{k=1}^{i} L^1_{ik} L^2_{kj} + \sum\limits_{k=i+1}^{n} L^1_{ik} L^2_{kj} = 0+0 = 0 (L1L2)ij=k=1∑iLik1Lkj2+k=i+1∑nLik1Lkj2=0+0=0
引理d.2.2 det ( X Y ) = det ( X ) det ( Y ) \det(XY) = \det(X) \det(Y) det(XY)=det(X)det(Y)
由于 M 1 , … , M n − 1 M_1,\dots,M_{n-1} M1,…,Mn−1都是下三角矩阵, 迭用 引理d.2.1, L = M n − 1 ⋯ M 1 L = M_{n-1} \cdots M_1 L=Mn−1⋯M1是下三角矩阵.
根据 d.1, det ( M 1 ) = ⋯ = det ( M n − 1 ) = 1 \det(M_1)=\dots=\det(M_{n-1})=1 det(M1)=⋯=det(Mn−1)=1, 迭用 引理d.2.1, det ( L ) = det ( M n − 1 ) ⋯ det ( M 1 ) = 1 ⋯ 1 = 1 \det(L) = \det(M_{n-1}) \cdots \det(M_1) = 1 \cdots 1 = 1 det(L)=det(Mn−1)⋯det(M1)=1⋯1=1.
e LU分解 的 存在性 和 唯一性
引理e.1 两个下三角矩阵之积的对角线元素 等于 两个下三角矩阵的对角线元素之积.
- ( L 1 L 2 ) i i = ∑ k = 1 n L i k 1 L k i 2 = ∑ k = 1 i − 1 L i k 1 L k i 2 + L i i 1 L i i 2 + ∑ k = i + 1 n L i k 1 L k i 2 (L^1L^2)_{ii} = \sum\limits_{k=1}^{n} L^1_{ik} L^2_{ki} = \sum\limits_{k=1}^{i-1} L^1_{ik} L^2_{ki} + L^1_{ii} L^2_{ii} + \sum\limits_{k=i+1}^{n} L^1_{ik} L^2_{ki} (L1L2)ii=k=1∑nLik1Lki2=k=1∑i−1Lik1Lki2+Lii1Lii