漫步线性代数五——三角分解和行交换

我们继续消去法,看看它对矩阵意味着什么。我们从 Ax=b 开始:

Ax=242167102uvw=529=b(1)

然后有三个消去步骤,乘数分别为 211
Step 1. 第二个方程减去第一个方程的2倍;
Step 2. 第三个方程减去第一个方程的-1倍;
Step 3. 第三个方程减去第二个方程的-1倍;
这个结果等价于 Ux=c ,其中 U 是一个新系数矩阵:
Upper triangularUx=200180121uvw=5122=c(2)

矩阵 U 是上三角矩阵,主对角线下面的元素都为零。

对于原始向量b,用相同的方法(即将 A 变为U)推导出新值 c ,前向消元一共执行了三个行操作:

  • 开始是A b
  • 一次应用步骤1,2,3;
  • 最后是U c

然后用回代求解Ux=c。这里我们先集中考虑 A U的关系。

第一步的矩阵 E ,第二步的矩阵F,第三步的矩阵 G 之前已经介绍了。他们都叫做初等矩阵,很容易看出他们是如何得出的。方程i减去方程 j 倍,也就是将数 放到 (i,j) 的位置,其他地方跟单位矩阵保持一致,即对角线上为1其他地方为0,这样矩阵乘法就执行了行操作。

三次操作的结果是 GFEA=U ,注意 E 首先乘以A,然后是 F ,最后是G。我们可以将 GFE 乘在以前得到一个下三角矩阵(0省略掉了):

GFE=111111111211=121111(3)

但是最重要的问题是反过来的:我们怎样从 U 回到A?如何撤销高斯消元法的步骤?

撤销第一步不难,不用减法而是用第二行加上第一行的二倍。做一次加法和一次减法最后回到了单位矩阵:

120010001120010001=100010001(4)

一个操作取消了另一个操作。用矩阵的语言来描述就是:一个矩阵是另一个矩阵的逆。如果初等矩阵 E (i,j)处有值 ,那么它的逆在同样的位置处为 。所以 E1E=I ,也就是等式(4)。

我们可以用 E1,F1,G1 将消元的每步都取逆。最终的问题就是一次撤销整个操作,知道什么矩阵将 U 回到A

因为从 A U的过程中步骤三是最后一步,所以矩阵 G 肯定是第一个取逆的。和正向的顺序正好相反!第二个取逆步骤是F1,第三个是 E1

E1F1G1U=A is LU=A(5)

现在我们将 U 变为A的矩阵称为 L ,因为它是下三角矩阵。通过将他们按顺序乘起来就能看出这个性质:

E1F1G1=121111111111=121111=L(6)

对角线下面的元素分别是 =2,1,1 。当矩阵相乘时,通常无法直接给出答案。但这里比较特殊直接按从左到右的顺序立马写出来。如果计算机存储每个乘数 ij (也就是第 i 行减去第j行的倍数),并且在第 i,j 的位置得到零,那么这些乘数就记录了消元法。

8、没有行交换的三角分解 A=LU L 是下三角矩阵,其中对角线元素为1,下面的元素为ij U 是上三角矩阵,它的对角线元素是主元。

例1

A=111122123=111011001100110111=LU

A U执行行的减法操作,从 U A执行加法操作。

例2:当 U 是单位矩阵时,L A 相等

A=121310132001

A 上的消元步骤很容易:(i)第二行减去第一行的 21 倍, (ii) 第三行减去第一行的 31 倍, (iii) 第三行减去第二行的 32 倍。结果是单位矩阵 U=I 。将他们的逆相乘即可得到 A :
12111×13111×11321=121310132001

三角分解 A=LU 非常重要,所以我在多说一点。以前在线性代数中不讲这些知识,或许是因为它太难(但是相信大家已经掌握了)。如果例2中的 U 是任何一个矩阵而不是单位矩阵U=I,那么我们就是会看到一般的处理过程:

A=LU121310132001row 1 of Urow 2 of Urow 3 of U=A(7)

它的证明就是利用消元步骤,右边将 A 变为U,左边将 L 变为I,和例2一样。最终方程两边都等于 U ,这些步骤都是双效的,所有(7)是正确的即A=LU

A=LU 非常重要,形式也很美。我们目前用的是 3×3 矩阵,但是对于更大的矩阵它也适用。这里我们给出一个例子

例3

A=1112112112=11111111111111

A 有三条对角线,L,U有两条。

一个线性系统=两个三角系统

A=LU 有一个很实际的应用,它不仅记录了消元法的步骤; L,U 也是求解 Ax=b 的矩阵。事实上 A 可以被抛弃了!通过前向消元(利用L)可以将 b 变成c,然后利用回代(利用 U )可以将c变为 x

Lc=bthenUx=c(8)

L 乘以第二个方程得LUx=Lc,其中 Ax=b 。每一个三角系统可以很快的求解出来,这样我们的消元法就变为:

  • 分解(从 A 中求出因子L,U)
  • 求解(从 L,U,b 中求出解 x )

求解子过程满足方程(8):两个三角方程每个需要n2/2步,所以对于右边任何一个 b ,我们只需要n2步就能找出答案。这远小于 n3/3

例4:考虑上个例子中的矩阵,右边的 b=(1,1,1,1)

Ax=bx1x1+x22x2x2+x32x3x3+x42x4====1111Lc=b,Ux=cLc=bc1c1+c2c2+c3c3+c4====1111c=1234Ux=cx1x2x2x3x3x4x4====1234x=10974

对于这些特殊的三角矩阵,操作步骤由 n2 变为 2n 。可以清楚的看到 Lc=b 通过前向步骤求解出来 c (c1 c2 之前),而 Ux=c 通过回代过程求解出来 x (x4 x3 之前)。

注解1 LU 关于在对角线上是不对称的: L 是1而U 是主元。我们可以让它变得一样,提出一个主元矩阵 D 即可:

U=d1d2dn1u12/d11u13/d1u23/d21(9)

上面的例子中主元为1,所以 D=I 。但是这只是个特例,一般情况下 LU LDU (也写成 LDV )是不相同的。

当看到 LDU,LDV 时,可以将 U,V 理解为每行是除以主元得到的。举例说明

A=[1324]=[131][122]=[131][12][121]=LDU

L,U 的对角线上都是1, D 的对角线上是主元1和-2。

注解2:我们已经给出了每个消元步骤的表达式,其中计算必须按顺序进行。对于这一点不全对,有一种克劳特算法计算方法跟他有点不同,在顺序上稍微自由一下。但是最终结果L,D,U不存在自由:

9、如果 A=L1D1U1,A=L2D2U2 ,其中 L 是下三角矩阵,U是上三角矩阵, D 是对角矩阵且对角线上没有零元素,那么L1=L2,D1=D2,U1=U2 LDU 分解和 LU 分解由 A 唯一确定。

这个证明需要用到逆矩阵,等学到时再给出详细证明。

行交换和置换矩阵

我们现在必须面对无法避免的问题:主元可能是零。这种情况可能发生在中间的计算过程中,如果a11=0那就是在开始就发生了。如简单的一个例子

[0324][uv]=[b1b2]

明显这种情况比较麻烦,我们无法利用第一个方程消去系数3。

但是修正也比较明显,交换两个方程,将元素3上移变为主元。对于这个例子矩阵将变成上三角矩阵:

3u+4v2v==b2b1

为了用矩阵形式表示,我们需要置换矩阵 P 来产生行交换,通过对单位矩阵I 进行交换即可得到:
P=[0110]PA=[0110][0324]=[3042]

对于 b P可以产生相同的效果,即交换 b1,b2 。新的系统就变为 PAx=Pb ,行交换中未知量 u,v 没有改变顺序。

置换矩阵 P 和单位矩阵有相同的行,每行每列都有1。最普通的置换矩阵是单位矩阵P=I(没有发生任何交换)。两个置换矩阵的乘积是另一个置换矩阵。

如果 P=I ,那么最简单的置换就是只交换两行,其他的置换交换更多。对于大小为 n 的矩阵存在n!=(n)(n1)(1)中置换结果,第一行有 n 种选择,那么第二行有n1种选择,最后一行只有1种选择。下面我们给出所有的 3×3 置换矩阵(有 3!=(3)(2)(1)=6 个矩阵):

I=111P31=111P21=111P32=111P32P21=111P21P32=111

如果 n=4 ,将会有24种置换矩阵,如果 n=2 那么只有两种置换矩阵,即
[1001][0110]

如果我们知道逆和转置(之后将他们定义为 A1 AT ),那么我们将发现一个重要的事实: P1 总是等于 PT

主元位置上是零会产生两种可能:这个问题可能很容易修改,或者比较麻烦。这完全取决于零元素,如果一列下方有非零元素,那么就能执行行交换,将非零元素变成主元然后就能继续消元过程:

A=00da0ebcfd=0a=0c=0

如果 d=0 ,那么这个问题将无法解决,矩阵就是奇异的,对 Ax=b 不存在唯一解。如果 d 不是零,那么通过交换1,3行可以将d变成主元。然而下一个主元是零,它下面是 a ,如果a不是零,那么用置换矩阵 P23 进行行交换:
P13=001010100P23=100001010P23P13A=d00ea0fbc

还有一点是:置换矩阵 P23P13 可以执行一次行交换:

P23P13A=100001010001010100=010001100=P

这样的话我们就直接用 P 乘以A,执行了正确的行交换后,那么就可以进行消元了。

消元法: PA=LU

主要的观点是这样的:如果在行交换的帮助下可以完成消元,那么我们可以首先用 P 来完成这个步骤。矩阵PA不需要行交换。换句话说, PA 可以分解成标准的 L,U 。高斯消元理论可以概括为下面几行:

10、对于奇异的情况,存在一个置换矩阵,它重排矩阵 A 的行来避免主元位置出现零,然后Ax=b就存在唯一解:

提前进行行排序, PA 可以分解成 LU

如果不存在 P 使得产生所有主元集合,那么消元法将失效。

实际中,当原始主元接近零时,我们也考虑行交换,选择一个更大的主元是为了减小舍入误差。

仔细留意一下L,如果消元过程是先从第二行减去第一行,也就是 21=1 ,然后2,3行进行交换。或者如果提前进行交换,那么乘因子就变为 31=1

例5

A=112115138100103136100130162=U(10)

然后利用行交换来恢复 LU ,但是此时 31=1,21=2
P=100001010121010001PA=LU(11)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值