矩阵三角分解的探讨
2014-07-25文/王亚梅
文/王亚梅
摘 要:矩阵是数学中最重要的基本概念之一,是代数的一个主要研究对象,也是数学研究及应用的一个重要工具。对矩阵三角分解的相关内容进行系统的介绍,给出分解的思想、分解方法、分解的存在性及分解的条件等相关内容,然后就矩阵三角分解思想研究它在解决具体问题中的应用。
关键词:矩阵;三角分解;LU分解
在近代数学、工程技术、经济理论管理科学中,大量涉及矩阵理论的知识,很多问题都可以归结为矩阵并最终通过矩阵来解决。经查阅发现,目前关于矩阵三角分解的应用研究不少,但对三角分解缺乏系统的研究。
矩阵三角分解法是指高斯消去法解线性方程组的变形解法。其实质就是将系数矩阵A分解为两个三角形矩阵L和U相乘,即A=LU。
一、矩阵的直接三角分解
矩阵的直角三角分解即可以不经过消元步骤,直接将矩阵进行分解。
定义1 设A∈Rn×n,若A能分解为一个下三角矩阵L与一个上三角矩阵U的乘积,即A=LU,则称这种分解为矩阵A的三角分解。
(1)如果A可分解为A=LDU,其中L是单位下三角矩阵,D是对角矩阵,U是单位上三角矩阵,则称A可作LDU分解;
(2)如果在A=LU中,L是单位下三角矩阵,U为上三角矩阵,则称此三角分解为杜利特(Doolittle)分解;
(3)如果在A=LU中,L是下三角矩阵,U是单位上三角矩阵,则称此三角矩阵为克劳特(Crout)分解。
定理1 n阶方阵A非奇异的充要条件为(或A经行、列变换后)存在LDU分解。其中L为n阶单位下三角矩阵,D为n阶非奇异对角阵,U为n阶单位上三角矩阵。
推论1 奇异矩阵不能进行LDU分解。
推论2 若矩阵A有奇异主子矩阵,则A不能直接进行LDU分解。
定理2 方阵A的LDU分解唯一的充要条件为A的各主子矩阵非奇异。
推论1 设n阶矩阵A的各阶顺序主子式皆不为零,则A存在唯一Crout的分解。
推论2 设n阶矩阵A的各顺序主子式皆不为零,则A存在唯一的分解A=LDU
其中L为单位下三角矩阵,D为对角矩阵,U为单位上三角矩阵。
二、常用的三角分解公式及其应用
1.杜利特(Doolittle)分解
下面直接用矩阵乘法求L及U的元素,由
A=a11 a12…a1na21 a22…a2n■ ■ ■an1 an2…ann=1a21 1■ ■■1an1 an2…lnn-1 1u11 u12…u1nu22…u2n■■unn
步骤如下:步骤1 u1i=a1i,i=2,3,…n l1i=a1i/u11,i=2,3,…n
计算U第r行,L的第r列元素,r=2,3,…n
步骤2 uri=ari-■lrkuki(i=r,r+1,…n)
步骤3 lir=(ari-■likukr)/urr(i=r,r+1,…n,r≠n)
求解Ly=b,Ux=y计算公式。
步骤4 y1=b1y1=b1-■likyk(i=2,3,…n)
步骤5 xn=yn=unnxi=(yi-■uikxk)/uii(i=n-1,n-2,…,1)
【例】 用直接三角分解法解2 1 11 3 21 2 2x1x2x3=465
解:由计算公式,得A=11/2 11/2 3/5 12 1 1 5/2 3/2 3/5=LU.
求解Ly=(4,6,5)T,得y=(4,4,3/5)T,
求解Ux=(4,4,3/5)T,得x=(1,1,1)T.
2.克劳特(Crout)分解
直接三角分解法Ax=b(要求A所有顺序主子式都不为零)克劳特分解的计算公式如下:
步骤1 u1i=a1i(i=1,2,…n),lil=ail/u11(i=2,3,…n)
计算U第r行,L的第r列元素,i=2,3,…n
步骤2 lli=aij-■likukj,i=1,2,…n,j=1,2,…i,
步骤3 uij=aij-■likuiii=1,2…n-1,j=i+1,…,n
【例】试将下列矩阵进行克劳特分解:A=4 8 42 7 21 2 3
解 首先我们约定,当上限小于下限时,和号“■”取0,根据上式有l11=a11=4,
u12=a12/l11=2,u13=a13/l11=1,
l21=a21=2,
l22=a22-l21u12=3,u23=(a23-l21u13)/l22=0,
l31=a31=1,
l32=a32-l31u12=0,
l33=a33-l31u13-l32u23=2,
则有A=LU=4 2 32 3 01 0 21 2 1 1 0 1
3.三对角方程组的追赶法
在许多科学计算问题中,常常所要求解的方程组为三对角方
程组,即Ax=f
其中A=b1 c1a2 b2 c2 ■■■ cn-1an bn,f=f1f2■fn
并满足条件b1>c1>0bi≥ai+ci,aibn>an>0ci≠0,i=2,3,…,n-1
称A为对角占优的三对角矩阵,将A分解为下三角矩阵L及单位上三角矩阵U的乘积,即A=LU,即
b1 c1a2 b2 c2 ■ ■ ■■ an-1bn-1 cn-1 anbn=l1a2 l2 ■ ■ anln1u1 ■ ■ ■ un-1 1
直接由矩阵充分公式可得
?酌i=ai,?琢1=b1,?琢i=bi-ai?茁i-1,i=2,3,…,n?茁i=Ci/ai,i=1,2,…,n-1
4.平方根法
求解线性方程组时,系数矩阵大多数是对称正定的,而平方根法就是利用对称正定矩阵的三角分解而得到的求对称正定的方程组的一种有效方法,目前在计算机上广泛应用平方根法解此类方程组,它比一般的分解法大约节省一半的计算量和存储单元。
定理1 设A为n阶对称阵,且A的所有顺序主子式均不为零,则A可唯一分解为A=LDLT
其中L为单位下三角阵,D为对角阵。
定理2 如果A为n阶对称正定矩阵,则存在一个实的非奇异下三角矩阵L使A=LLT,当限定L的对角元素为正时,这种分解是唯一的。
平方根法,其计算步骤如下:
步骤1 ljj=(ajj-■ljk2)1/2,(j=1,2,…,n)
步骤2 lij=(aij-■likljk)/ljj,(i=j+1,…,n)
求解Ax=b,即求如下两个方程组:
(1)Ly=b,求y; (2)LTx=y,求x;
步骤3 yi=(bi-■likyk)/lii,(i=2,3,…,n)
步骤4 xi=(yi-■lkixk)/lii,(i=n-1,…,1)
另外,由于■ljk2=ajj(j=1,2,…,n)而ljj>0(j=1,2,…,n)
故有■≤■■
这表明分解过程中矩阵中元素的数量级不增长,因此平方根法计算是数值稳定的。
5.改进平方根法
Cholesky分解法要用到开方运算,为避免开方运算,可将A分解为A=LDLT(其中为单位下三角矩阵),再分别解方程组,这种方法为改进平方根法。
endprint
将对称正定矩阵A=(aij)n×n进行LDLT分解,则可避免开方运算。其中D=diag(di),且di>0,L为单位下三角矩阵,则
a11 … a1n■ aij ■an1 … ann=1l21 1■■ ■ln1ln2 … 1d1d2 ■dn1 l21 l31 … ln11 l32 … ln2■ ■1
由矩阵乘法,当i≥j时aij=■likdkljk=■likdkljk+lijdj,ljj=1
于是,对于i=1,2,…,n有lij=(aij-■likdkljk)/dj,j=1,2,…,i-1di=aii-■dklik2(*)
为了避免重复计算,做如下变换A=LDLT=TLT
其中T=LD,即有
1l21 1■ln11d1 d2■ dn1 l21…ln11 ■1=d1t21 d2■■tn1 tn2…dn1 l21…ln1 1 ■ ■ 1
辅助变量tij=lijdj代入(*)式,对i=1,2,…n计算
tij=aij-■tikljk,j=1,2,…,i-1 lij=■,j=1,2,…,i-1di=aii-■tiklik(**)
利用上式得到按行计算L、D各元素的公式,计算顺序
d1→l21→d2→l31→l32→d3→l41→l42→l43→……
按照这种方式进行分解,乘法运算次数与LLT分解相当,且不需要开方运算。
计算行列式时,由A=LDLT,有
A=LDLT=LDLT=D=d1d2…dn
求解线性方程组Ax=b
等价于求解L(DLTx)=b,可分解成由Ly=b求y,再由DLTx=y求x,这种方法称为改进平方根法。其计算公式
yi=bi-■likyk,i=1,2,…,nxi=■-■lkixk,i=n,n-1,…,1
【例】用改进平方根法解线性方程组.
3 3 53 5 95 9 17x1x2x3=0-2-4
解:可知系数矩阵对称正定,设有
3 3 53 5 95 9 17=1l21 1l31 l32 1d1 d2d31 l21 l311 l321
由(**)式可得i=1 di=a11=3
i=2 t21=a21=3,l21=■=■=1
d2=a22-t21l21=5-3×1=2
i=3 t31=a31=5
t32=a32-t31l21=9-5×1=4
l31=■=■
l32=■=■=2
d3=a33-t31l31-t32l32=17-5×■-4×2=■
因此L=11 1■ 2 1D=3 2■
由改进平方根法有11 1■ 2 1y1y2y3=0-2-4
y1=0,y2=-2,y3=0
1 1 ■1 21x1x2x3=d1-1 d2-1d3-10-20=0-10
x1=1,x2=-1,x3=0
矩阵的三角分解是矩阵分解中最基础的一种,应用领域十分广泛,它是线性代数的基本分解方法之一,也是求解线性方程组的方法之一,利用矩阵的三角分解求线性方程组的解,可以简化某些复杂方程组的计算过程,这是其他求解方程组的方法所不能比拟的。在矩阵求解算法中,直接法或迭代法都不能有效地解决大规模稀疏或病态矩阵,但利用矩阵的三角分解就可以解决这些问题,因此,矩阵三角分解应用广泛,我们应该进一步研究。
参考文献:
[1]沈忱.矩阵的三角分解及其应用研究[J].长江大学学报,2010,37(03):55-84.
[2]王群英.矩阵分解方法的应用[J].长春工业大学学报,2011,32(01):122-154.
编辑 郭晓云
endprint
将对称正定矩阵A=(aij)n×n进行LDLT分解,则可避免开方运算。其中D=diag(di),且di>0,L为单位下三角矩阵,则
a11 … a1n■ aij ■an1 … ann=1l21 1■■ ■ln1ln2 … 1d1d2 ■dn1 l21 l31 … ln11 l32 … ln2■ ■1
由矩阵乘法,当i≥j时aij=■likdkljk=■likdkljk+lijdj,ljj=1
于是,对于i=1,2,…,n有lij=(aij-■likdkljk)/dj,j=1,2,…,i-1di=aii-■dklik2(*)
为了避免重复计算,做如下变换A=LDLT=TLT
其中T=LD,即有
1l21 1■ln11d1 d2■ dn1 l21…ln11 ■1=d1t21 d2■■tn1 tn2…dn1 l21…ln1 1 ■ ■ 1
辅助变量tij=lijdj代入(*)式,对i=1,2,…n计算
tij=aij-■tikljk,j=1,2,…,i-1 lij=■,j=1,2,…,i-1di=aii-■tiklik(**)
利用上式得到按行计算L、D各元素的公式,计算顺序
d1→l21→d2→l31→l32→d3→l41→l42→l43→……
按照这种方式进行分解,乘法运算次数与LLT分解相当,且不需要开方运算。
计算行列式时,由A=LDLT,有
A=LDLT=LDLT=D=d1d2…dn
求解线性方程组Ax=b
等价于求解L(DLTx)=b,可分解成由Ly=b求y,再由DLTx=y求x,这种方法称为改进平方根法。其计算公式
yi=bi-■likyk,i=1,2,…,nxi=■-■lkixk,i=n,n-1,…,1
【例】用改进平方根法解线性方程组.
3 3 53 5 95 9 17x1x2x3=0-2-4
解:可知系数矩阵对称正定,设有
3 3 53 5 95 9 17=1l21 1l31 l32 1d1 d2d31 l21 l311 l321
由(**)式可得i=1 di=a11=3
i=2 t21=a21=3,l21=■=■=1
d2=a22-t21l21=5-3×1=2
i=3 t31=a31=5
t32=a32-t31l21=9-5×1=4
l31=■=■
l32=■=■=2
d3=a33-t31l31-t32l32=17-5×■-4×2=■
因此L=11 1■ 2 1D=3 2■
由改进平方根法有11 1■ 2 1y1y2y3=0-2-4
y1=0,y2=-2,y3=0
1 1 ■1 21x1x2x3=d1-1 d2-1d3-10-20=0-10
x1=1,x2=-1,x3=0
矩阵的三角分解是矩阵分解中最基础的一种,应用领域十分广泛,它是线性代数的基本分解方法之一,也是求解线性方程组的方法之一,利用矩阵的三角分解求线性方程组的解,可以简化某些复杂方程组的计算过程,这是其他求解方程组的方法所不能比拟的。在矩阵求解算法中,直接法或迭代法都不能有效地解决大规模稀疏或病态矩阵,但利用矩阵的三角分解就可以解决这些问题,因此,矩阵三角分解应用广泛,我们应该进一步研究。
参考文献:
[1]沈忱.矩阵的三角分解及其应用研究[J].长江大学学报,2010,37(03):55-84.
[2]王群英.矩阵分解方法的应用[J].长春工业大学学报,2011,32(01):122-154.
编辑 郭晓云
endprint
将对称正定矩阵A=(aij)n×n进行LDLT分解,则可避免开方运算。其中D=diag(di),且di>0,L为单位下三角矩阵,则
a11 … a1n■ aij ■an1 … ann=1l21 1■■ ■ln1ln2 … 1d1d2 ■dn1 l21 l31 … ln11 l32 … ln2■ ■1
由矩阵乘法,当i≥j时aij=■likdkljk=■likdkljk+lijdj,ljj=1
于是,对于i=1,2,…,n有lij=(aij-■likdkljk)/dj,j=1,2,…,i-1di=aii-■dklik2(*)
为了避免重复计算,做如下变换A=LDLT=TLT
其中T=LD,即有
1l21 1■ln11d1 d2■ dn1 l21…ln11 ■1=d1t21 d2■■tn1 tn2…dn1 l21…ln1 1 ■ ■ 1
辅助变量tij=lijdj代入(*)式,对i=1,2,…n计算
tij=aij-■tikljk,j=1,2,…,i-1 lij=■,j=1,2,…,i-1di=aii-■tiklik(**)
利用上式得到按行计算L、D各元素的公式,计算顺序
d1→l21→d2→l31→l32→d3→l41→l42→l43→……
按照这种方式进行分解,乘法运算次数与LLT分解相当,且不需要开方运算。
计算行列式时,由A=LDLT,有
A=LDLT=LDLT=D=d1d2…dn
求解线性方程组Ax=b
等价于求解L(DLTx)=b,可分解成由Ly=b求y,再由DLTx=y求x,这种方法称为改进平方根法。其计算公式
yi=bi-■likyk,i=1,2,…,nxi=■-■lkixk,i=n,n-1,…,1
【例】用改进平方根法解线性方程组.
3 3 53 5 95 9 17x1x2x3=0-2-4
解:可知系数矩阵对称正定,设有
3 3 53 5 95 9 17=1l21 1l31 l32 1d1 d2d31 l21 l311 l321
由(**)式可得i=1 di=a11=3
i=2 t21=a21=3,l21=■=■=1
d2=a22-t21l21=5-3×1=2
i=3 t31=a31=5
t32=a32-t31l21=9-5×1=4
l31=■=■
l32=■=■=2
d3=a33-t31l31-t32l32=17-5×■-4×2=■
因此L=11 1■ 2 1D=3 2■
由改进平方根法有11 1■ 2 1y1y2y3=0-2-4
y1=0,y2=-2,y3=0
1 1 ■1 21x1x2x3=d1-1 d2-1d3-10-20=0-10
x1=1,x2=-1,x3=0
矩阵的三角分解是矩阵分解中最基础的一种,应用领域十分广泛,它是线性代数的基本分解方法之一,也是求解线性方程组的方法之一,利用矩阵的三角分解求线性方程组的解,可以简化某些复杂方程组的计算过程,这是其他求解方程组的方法所不能比拟的。在矩阵求解算法中,直接法或迭代法都不能有效地解决大规模稀疏或病态矩阵,但利用矩阵的三角分解就可以解决这些问题,因此,矩阵三角分解应用广泛,我们应该进一步研究。
参考文献:
[1]沈忱.矩阵的三角分解及其应用研究[J].长江大学学报,2010,37(03):55-84.
[2]王群英.矩阵分解方法的应用[J].长春工业大学学报,2011,32(01):122-154.
编辑 郭晓云
endprint