2.1.3 LU分解法

定理(ALU的直接分解,无行交换变换)设无行交换变换的高斯消去法可求解一般线性方程组Axb,则矩阵A可分解为一个下三角矩阵L和一个上三角矩阵U的乘积:ALU。而且L的对角线元素为1U的对角线元素非零。得到LU后,可通过如下步骤得到x

1 利用前向替换法对方程组Lyb求解y

2 利用回代法对方程组Uxy求解x

证明:当执行高斯消去过程,并将B存入增广矩阵中(增广矩阵有Nl列)时,上三角分解处理后的结果是等价的上三角线性方程组UXY。矩阵LUBY有如下形式:

注:如果只寻找LU,可不需要增广矩阵的最后一列。

1步:将系数存入增广矩阵。的上标表示位于矩阵(rc)处的值是第一次存放的:

2步:消去第2行到第4行中的x1,并将用于消去行r中的x1的倍数mr1存入矩阵(rl)处:for r24

mr1/

mr1

for c241

mr1×

end

end

新的元素写成,表示在矩阵中的位置(rc)处第2次存放的值。执行步骤2后的结果为:

3步:消去第3行到第4行中的x2,并将用于消去行rx2的倍数mr2存入矩阵的(r2)处:for r34

                       mr2/

                       mr2

                       for c341

                         mr2×end

end

新的元素写成,表示在矩阵中的位置(rc)处第三次存放的值。执行步骤3后的结果为:

最后一步:消去第4行的x43,并将用于消去x3的倍数存入矩阵(43)处,

得到的最终结果是:

上三角处理过程执行完毕。要注意只使用了一个数组保存LU中的元素。L中的对角线元素1没有保存,而且L中位于对角线上的元素0U中位于对角线下的元素0也没有保存。只有用来重构LU的系数元素才被保存。

对于一般线性方程组Axb,一般步骤是第k1步:消去k1行到n行中的xk,并将用于消去k行中的xk的倍数存入矩阵(rk)处:

                   for rkln

                         mrk=;

                         arkmrk

                         for ck1nl

                            mrk×

                         end

                       end

n行中的xk消去后得到的最终结果是:

矩阵ALU分解的紧凑格式,还是以4阶矩阵来说明:

A

L1A

L2 L1A

L3 L2 L1AU,则AL11L21L31U

L= L11L21L31,则ALU

其中Lk(k123)称为初等下三角矩阵,

以上过程可用下面的框图来表示:

           第一步

        第二步

     第三步

  第四步

 

 

 

 

 

 

 

 

 

具体公式如下:第一步:行 ;列

第二步:行 ;列

第三步:行

第四步:行

例:

解:第一步:行  12

34

 

第二步:行 

           

           

        

           

第三步:行 

           

        

第四步:

             

对于n阶矩阵ALU分解元素,可由下面公式得出:

对于2n(或列)有:

例 用Doolittle法解方程组:

(1)A

Lyb得:y()T

Uxy得:x(1234)T

(2):用紧凑格式的Doolittle法求解,首先分解(Ab)

(Ab)

y()T,再解Uxy,得x(1234)T

例 观察方程组与上例的区别。

解:

y()T,再解Uxy,得x(1234)T

两个系数矩阵是经过交换13两行后得出的。产生的结果是LU分解式不同,y的解也不同,但x的解一定相同。

×

例 用部分选主元Doolittle法紧凑格式求解方程组AXB,其中:

解: ,因为第一列的主元在第二行,因此,首先交换12两行:

再进行分解:

如果直接计算第二步,则,所以必须再次换行,然后继续分解。

交换34两行后分解:

Y(y1y2),其中y1(20814,-4/5)Ty2(401628,-8/5)T,最后再解UXY,得(7322)T(14644)T

如果An阶对称矩阵,由定理2还可得如下分解定理:

定理 若An阶对称矩阵,且A的各阶顺序主子式都不为零,则A可惟一分解为:ALDLT,其中L为单位下三角阵,D为对角阵。

证明 因为A的各阶顺序主子式都不为零,所以A可惟一分解为:ALU

因为,所以可将 U分解为:

其中 D为对角矩阵,U1为单位上三角阵.于是:ALDU1L(DU1)

因为A为对称矩阵,所以,AATU1TDTLTU1T(DLT),由 A LU分解的惟一性即得:LU1T,即U1LT,故ALDLT