回想我 们解方程组的过程
如果有方程组:
⎩⎨⎧2x1−x2+2x3x1+2x2+3x3x1+3x2=−8=−7=7
我们会想要通过一系列(消元,代入) 的操作化成是如下的样子:
⎩⎨⎧x1+2x2+3x3x2−3x3x3=−7,=14,=−4;
这样的话我们就可以通过回代求解出来该方程组。注意到变换后的式子是一个下三角矩阵。所以我们想能不能将一个矩阵分解为一个单位上三角矩阵 U 和一个单位下三角矩阵 L 呢
我们有两种实现:
Gauss 消除法
给定一个矩阵:
A=a11⋮an1⋯⋱⋯a1nann∈Rn×n
假定 a11=0,构造 初等矩阵 L1 (li1=a11ai1,i=2,…,n.)
L1=1l21⋮ln1010⋯⋯⋱⋯00⋮1,L1−1=1−l21⋮−ln101⋱0⋯⋯⋮⋯001.
用 L1−1 左乘 A,并将所得的矩阵记为 A(1),则
A(1)=L1−1A=a110⋮0a12a22(1)⋮an2(1)⋯⋯⋱⋯a1na2n(1)ann(1)
将上面的操 作作用在 A(1) 的子矩阵 A(1)(2:n,2:n) 上,将其除第一列第一个元素外都变成为 0:假定 a22(1)=0,构造矩阵
L2=100⋮001l32⋮ln20010⋯⋯⋯⋱⋯0001, 其中 li2=a22(1)ai2(1),i=3,4,…,n.
用 L2−1 左乘 A(1),并将所得到的矩阵记为 A(2),则
A(2)=L2−1A=L2−1L1−1A=a1100⋮0a12a22(1)0⋮0a13a23(1)a33(2)⋮an3(2)⋯⋯⋯⋱⋯a1na2n(1)a3n(2)ann(2)
依此类推,假定 akk(k−1)=0(k=3,4,…,n−1)
我们可以构造一系列的矩阵 L3,L4,…,Ln−1,使得
Ln−1−1⋯L2−1L1−1A=a1100⋮0a12a22(1)0⋮0a13a23(1)a33(2)⋮0⋯⋯⋯⋱⋯a1na2n(1)a3n(2)ann(n−1)≜U→上三角
于是可得 A=LU 其中
L=L1L2⋯Ln−1=1l21l31⋮ln101l32⋮ln2001ln3⋯⋯⋯⋱⋯0001
上面我们构造了矩阵 Lk,我们把这种矩阵也叫做 Gauss 变换,而其中的 lk 被称为 Gauss 向量
说了这么多,不如举个栗子吧
A=1234567810先计算第一个 Gauss 变换 L1,设
L1=1l21l31010001L1−1=1−l21−l31010001显然有