我们继续消去法,看看它对矩阵意味着什么。我们从
Ax=b
开始:
然后有三个消去步骤,乘数分别为 2,−1,−1 :
Step 1. 第二个方程减去第一个方程的2倍;
Step 2. 第三个方程减去第一个方程的-1倍;
Step 3. 第三个方程减去第二个方程的-1倍;
这个结果等价于 Ux=c ,其中 U 是一个新系数矩阵:
矩阵 U 是上三角矩阵,主对角线下面的元素都为零。
对于原始向量
- 开始是
A 和 b ; - 一次应用步骤1,2,3;
- 最后是
U 和 c 。
然后用回代求解
第一步的矩阵
E
,第二步的矩阵
三次操作的结果是
GFEA=U
,注意
E
首先乘以
但是最重要的问题是反过来的:我们怎样从 U 回到
撤销第一步不难,不用减法而是用第二行加上第一行的二倍。做一次加法和一次减法最后回到了单位矩阵:
一个操作取消了另一个操作。用矩阵的语言来描述就是:一个矩阵是另一个矩阵的逆。如果初等矩阵 E 在
我们可以用
E−1,F−1,G−1
将消元的每步都取逆。最终的问题就是一次撤销整个操作,知道什么矩阵将
U
回到
因为从
A
到
现在我们将
U
变为
对角线下面的元素分别是 ℓ=2,−1,−1 。当矩阵相乘时,通常无法直接给出答案。但这里比较特殊直接按从左到右的顺序立马写出来。如果计算机存储每个乘数 ℓij (也就是第 i 行减去第
8、没有行交换的三角分解
A=LU
。
L
是下三角矩阵,其中对角线元素为1,下面的元素为
例1:
从 A 到
例2:当
U
是单位矩阵时,
在 A 上的消元步骤很容易:
三角分解 A=LU 非常重要,所以我在多说一点。以前在线性代数中不讲这些知识,或许是因为它太难(但是相信大家已经掌握了)。如果例2中的 U 是任何一个矩阵而不是单位矩阵
它的证明就是利用消元步骤,右边将 A 变为
A=LU 非常重要,形式也很美。我们目前用的是 3×3 矩阵,但是对于更大的矩阵它也适用。这里我们给出一个例子
例3:
A 有三条对角线,
一个线性系统=两个三角系统
A=LU
有一个很实际的应用,它不仅记录了消元法的步骤;
L,U
也是求解
Ax=b
的矩阵。事实上
A
可以被抛弃了!通过前向消元(利用
用 L 乘以第二个方程得
- 分解(从
A
中求出因子
L,U ) - 求解(从 L,U,b 中求出解 x )
求解子过程满足方程(8):两个三角方程每个需要
例4:考虑上个例子中的矩阵,右边的
b=(1,1,1,1)
对于这些特殊的三角矩阵,操作步骤由 n2 变为 2n 。可以清楚的看到 Lc=b 通过前向步骤求解出来 c (
注解1:
LU
关于在对角线上是不对称的:
L
是1而
上面的例子中主元为1,所以 D=I 。但是这只是个特例,一般情况下 LU 和 LDU (也写成 LDV )是不相同的。
当看到
LDU,LDV
时,可以将
U,V
理解为每行是除以主元得到的。举例说明
L,U 的对角线上都是1, D 的对角线上是主元1和-2。
注解2:我们已经给出了每个消元步骤的表达式,其中计算必须按顺序进行。对于这一点不全对,有一种克劳特算法计算方法跟他有点不同,在顺序上稍微自由一下。但是最终结果
9、如果
A=L1D1U1,A=L2D2U2
,其中
L
是下三角矩阵,
这个证明需要用到逆矩阵,等学到时再给出详细证明。
行交换和置换矩阵
我们现在必须面对无法避免的问题:主元可能是零。这种情况可能发生在中间的计算过程中,如果
明显这种情况比较麻烦,我们无法利用第一个方程消去系数3。
但是修正也比较明显,交换两个方程,将元素3上移变为主元。对于这个例子矩阵将变成上三角矩阵:
为了用矩阵形式表示,我们需要置换矩阵 P 来产生行交换,通过对单位矩阵
对于 b ,
置换矩阵
P
和单位矩阵有相同的行,每行每列都有1。最普通的置换矩阵是单位矩阵
如果
P=I
,那么最简单的置换就是只交换两行,其他的置换交换更多。对于大小为
n
的矩阵存在
如果 n=4 ,将会有24种置换矩阵,如果 n=2 那么只有两种置换矩阵,即
如果我们知道逆和转置(之后将他们定义为 A−1 和 AT ),那么我们将发现一个重要的事实: P−1 总是等于 PT 。
主元位置上是零会产生两种可能:这个问题可能很容易修改,或者比较麻烦。这完全取决于零元素,如果一列下方有非零元素,那么就能执行行交换,将非零元素变成主元然后就能继续消元过程:
如果 d=0 ,那么这个问题将无法解决,矩阵就是奇异的,对 Ax=b 不存在唯一解。如果 d 不是零,那么通过交换1,3行可以将
还有一点是:置换矩阵
P23P13
可以执行一次行交换:
这样的话我们就直接用 P 乘以
消元法: PA=LU
主要的观点是这样的:如果在行交换的帮助下可以完成消元,那么我们可以首先用
P
来完成这个步骤。矩阵
10、对于奇异的情况,存在一个置换矩阵,它重排矩阵
A
的行来避免主元位置出现零,然后
提前进行行排序, PA 可以分解成 LU 。
如果不存在 P 使得产生所有主元集合,那么消元法将失效。
实际中,当原始主元接近零时,我们也考虑行交换,选择一个更大的主元是为了减小舍入误差。
仔细留意一下
例5:
然后利用行交换来恢复 LU ,但是此时 ℓ31=1,ℓ21=2 :