2.1.3 LU分解法

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

1 利用前向替换法对方程组Ly=b求解y

2 利用回代法对方程组Ux=y求解x

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

,

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

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

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

mr1=/;

=mr1;

for c=2:4+1

=-mr1×;

end

end

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

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

                       mr2=/;

                       =mr2;

                       for c=3:4+1

                         =-mr2×;end

end

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

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

得到的最终结果是:

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

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

                   for r=k+l:n

                         mrk=;

                         ark=mrk;

                         for c=k+1:n+l

                            =-mrk×;

                         end

                       end

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

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

若A=,,

则L1A=,

L2 L1A=,

L3 L2 L1A==U,则A=L1-1L2-1L3-1U

令L= L1-1L2-1L3-1=,则A=LU。

其中Lk(k=1,2,3)称为初等下三角矩阵,。

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

⑴

⑸

⑹

⑺

⑵    ⑶    ⑷    第一步

⑻   ⑼  ⑽   第二步

⑾

⑿

⒀  ⒁   第三步

⒂

⒃  第四步

 

 

 

 

 

 

 

 

 

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

第二步:行 ;列

第三步:行 ;

列

第四步:行

例:=

解:第一步:行  ⑴ ==1,⑵ ==2,

⑶ ==3,⑷ ==4

列  ⑸ ==,⑹ ==,⑺ ==

第二步:行  ⑻ ==

            ⑼ ==

            ⑽ ==

         列 ⑾ =

            ⑿ =

第三步:行  ⒀ =

=

            ⒁ =

=

         列 ⒂ =

第四步:⒃ =

              =

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

对于2到n行(或列)有:

例 用Doolittle法解方程组:

解(1):A=

解Ly=b得:y=()T

解Ux=y得:x=(1,2,3,4)T

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

(A,b)=

→

得y=()T,再解Ux=y,得x=(1,2,3,4)T。

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

解:→

得y=()T,再解Ux=y,得x=(1,2,3,4)T。

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

=×

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

,,

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

再进行分解:

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

交换3,4两行后分解:

得Y=(y1,y2),其中y1=(-20,8,14,-4/5)T,y2=(-40,16,28,-8/5)T,最后再解UX=Y,得(-7,3,2,2)T,(-14,6,4,4)T。

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

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

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

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

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

因为A为对称矩阵,所以,A=AT=U1TDTLT=U1T(DLT),由 A的 LU分解的惟一性即得:L=U1T,即U1=LT,故A=LDLT。