利用快速矩阵乘法的三角分解及其反演
利用快速矩阵乘法的III角分解及其反演
摘要:Strassen矩阵乘法的快速算法被用来在次运算内得到I.个任意阶非奇异矩阵的置换矩阵的III角分解,并因此在次运算内得到任意非奇异矩阵的逆矩阵.
I..引言
Strassen[III]给出了I.个算法使用非交换乘法计算VII次乘法和I.VIII次加法运算的两个II阶矩阵的乘积.然后两个阶矩阵的乘积可以通过乘法和加法计算.
令I.个运算指的是乘法.除法.加法或减法运算.Strassen指出可以通过次运算可以计算两个矩阵的乘积.矩阵乘法的通常方法需要次运算.因此,当且仅当时,即.
Strassen使用块分解(Householder[II,p.I.IIVI])以递归方式通过次除法来计算阶矩阵的逆矩阵,次乘法和次加法.通过次算术运算可以可以计算阶矩阵的逆矩阵.
令
其中,
如果和是非奇异的.
由于该算法是递归地应用,无论什么时候在任何可约矩阵中需要奇异的主子阵的逆,它都会失效.
例如,块LDU分解失效存在简单的矩阵
如果是对称正定.严格对角占优,或者是不可约对角占优,那么在每个可约矩阵中的每个主子阵是奇异的(Varga[IV,p.IIIII]).然而,如果是唯I.非奇异,I.般地,以(即交汇处的行或列)为中心旋转以获得(点或块)的分解.如果是奇异的,则存在着置换矩阵,,,这样,,有(点或块)分解或分解(参看ForsytheandMoler[I.,p.IIIVI]).
我们应忽略低阶项.然后反演的通常方法需要次运算[I.,pp.VIIVII-VIIIX].因此,如果那么
然而,I.个很少需要的逆矩阵;相反,I.个通常想要解决线性方程的系统,这里高斯消去法(即获取I.个的置换的分解)是更有效率的[I.,p.VIIIX],因为分解需要次运 *好棒文|www.hbsrm.com +Q: *351916072*
算(并且解决的两个III角系统需要次运算).
因此,I.个更公平的比较是
如果则
如果是对称正定,应将与对称高斯消除或乔里斯基的方法进行比较.
在第II节和第III节中,我们指出,通过采用旋转,我们可以使用Strassen的快速矩阵乘法算法,以获得I.个在次运算内的阶任何非奇异矩阵的置换的III角分解(分解),并因此它的逆在次运算中,这里的运算是被定义为乘法.除法.加法或减法.
在第IV中,我们修改该算法以便我们可以发现,当时在次运算中的III角分解和在次运算中的逆.然后,对于任意,我们可以发现在次运算中的III角分解和在次运算中的逆.
在第V中我们指出在计算复杂性时矩阵乘法.III角分解和反演是等效的.
II.基本算法
为简单起见,令是阶的同时.令.我们应构造I.个置换矩阵的序列,,…,的以便即,其中是I.个置换矩阵,是单位下III角,是上III角,,因为在这里,
并且
其中
我们定义算法按顺序,如下所示
令
令
,和
有
其中是I.个阶的非奇异的上III角矩阵,是,0是的零矩阵,是,
是,是非奇异的.
因为且是非奇异的,又存在I.个非零元素在的第I.行.因此,存在着I.个置换矩阵使得,,同时可以分区为
其中是,是,和是,和是,0是的零矩阵,是,是.而且,和是非奇异上III角.
令并且
其中是阶的恒等矩阵.
定义.有
其中.
在最后I.步,是非奇异和上部III角.
III.操作计数
找到置换最多需要进行次比较,并且,如果,那么置换涉及个元素交换位置.因此,要求最多次比较并且最多个元素交换位置须获得.的计算将需要最多额外的元素交换位置:
令I.个运算指的是乘法.除法.加法或减法运算.令,和是运算次数乘以两个矩阵,上部III角的矩阵乘以I.个矩阵,反演的非奇异上III角矩阵(我们应忽略低阶项).那么且对于.
因为和
,
并且
对于,反演所有的需要
次运算.
对于,构成所有的乘数需要次运算.对于,构成所有的可约矩阵需要
因此,对于,III角分解需要次运算.
反演需要次运算并且需要
次运算.
因此,对于,反演需要次运算.
假如是阶非奇异矩阵,其中,令.通过次运算,我们可以找到I.个的置换的III角分解以及I.个的置换,的逆矩阵,
并因此通过次运算得到.
IV.I.种改进的算法
我们可以修改第II节中的算法以便在第III节运算计数中的的系数是较小的.尤其是,我们找到和以便使运算次数减到最小,除限制.
首先,令.有,并且
,其中.因为,我们把,和对于VIII阶以下的子矩阵使用I.定的乘法和反演.有,(而不是第III节中的).因此,乘以第III节中的每个系数.
III角分解需要
次运算,
反演需要
.
现在令是任意的.把和(参见[III]),我们有和
现在,
并且
III角分解从而需要次运算和反演需要次运算.
V.备注
如上所述,对于算法的实现,的系数是的非常敏感的.另I.种改进的算法可能会降低系数.而且,我们已经给出的系数的范围是保持悲观见解的.
*好棒文|www.hbsrm.com +Q: *351916072*
/>在第II节和第IV节中所述的算法可能在数值上是不稳定的,因为我们不能保证在可约矩阵中的元素都有界的.然而,可能我们的算法的修改保证了稳定性;这个问题值得进I.步调查.
如果I.个快速矩阵乘法算法被给定的在次的乘法中,阶的两个矩阵相乘,其中,算法类似于那些在第II节和第IV节中可以找到的任何非奇异矩阵的I.个置换的III角分解,并因此任何非奇异矩阵的逆次运算.该算法将以整数模展开式的形式表示.
同样的,给出次运算内的两个矩阵相乘的算法,然后算法类似于那些在第II节和第IV节中,在次运算内,可以发现任何的非奇异矩阵的I.个置换的III角分解,并因此在次运算内找到任何非奇异矩阵的逆,其中.相反,给出I.个在次运算内计算I.个非奇异矩阵的逆的算法,可以在次运算内计算两个矩阵.的乘积,因为
(Winograd[V]).
因此,矩阵乘法.III角分解和反演在计算复杂性时是等效的.
附录
A.Sch?nhage提出了构成任何非奇异矩阵的逆(超过实数或复数)的另I.种方法,I.般化逆的恒等式.由于是对称正定,Strassen的反演算法不会失效(但问题的条件数[I.,pp.II0-IIVI]要平方).Strassen的矩阵乘法算法用于构成,并用乘以.这里给出的任何非奇异矩阵的逆在次运算内(但常数是比上述的更大).
附件II:外文原文
摘要:Strassen矩阵乘法的快速算法被用来在次运算内得到I.个任意阶非奇异矩阵的置换矩阵的III角分解,并因此在次运算内得到任意非奇异矩阵的逆矩阵.
I..引言
Strassen[III]给出了I.个算法使用非交换乘法计算VII次乘法和I.VIII次加法运算的两个II阶矩阵的乘积.然后两个阶矩阵的乘积可以通过乘法和加法计算.
令I.个运算指的是乘法.除法.加法或减法运算.Strassen指出可以通过次运算可以计算两个矩阵的乘积.矩阵乘法的通常方法需要次运算.因此,当且仅当时,即.
Strassen使用块分解(Householder[II,p.I.IIVI])以递归方式通过次除法来计算阶矩阵的逆矩阵,次乘法和次加法.通过次算术运算可以可以计算阶矩阵的逆矩阵.
令
其中,
如果和是非奇异的.
由于该算法是递归地应用,无论什么时候在任何可约矩阵中需要奇异的主子阵的逆,它都会失效.
例如,块LDU分解失效存在简单的矩阵
如果是对称正定.严格对角占优,或者是不可约对角占优,那么在每个可约矩阵中的每个主子阵是奇异的(Varga[IV,p.IIIII]).然而,如果是唯I.非奇异,I.般地,以(即交汇处的行或列)为中心旋转以获得(点或块)的分解.如果是奇异的,则存在着置换矩阵,,,这样,,有(点或块)分解或分解(参看ForsytheandMoler[I.,p.IIIVI]).
我们应忽略低阶项.然后反演的通常方法需要次运算[I.,pp.VIIVII-VIIIX].因此,如果那么
然而,I.个很少需要的逆矩阵;相反,I.个通常想要解决线性方程的系统,这里高斯消去法(即获取I.个的置换的分解)是更有效率的[I.,p.VIIIX],因为分解需要次运 *好棒文|www.hbsrm.com +Q: *351916072*
算(并且解决的两个III角系统需要次运算).
因此,I.个更公平的比较是
如果则
如果是对称正定,应将与对称高斯消除或乔里斯基的方法进行比较.
在第II节和第III节中,我们指出,通过采用旋转,我们可以使用Strassen的快速矩阵乘法算法,以获得I.个在次运算内的阶任何非奇异矩阵的置换的III角分解(分解),并因此它的逆在次运算中,这里的运算是被定义为乘法.除法.加法或减法.
在第IV中,我们修改该算法以便我们可以发现,当时在次运算中的III角分解和在次运算中的逆.然后,对于任意,我们可以发现在次运算中的III角分解和在次运算中的逆.
在第V中我们指出在计算复杂性时矩阵乘法.III角分解和反演是等效的.
II.基本算法
为简单起见,令是阶的同时.令.我们应构造I.个置换矩阵的序列,,…,的以便即,其中是I.个置换矩阵,是单位下III角,是上III角,,因为在这里,
并且
其中
我们定义算法按顺序,如下所示
令
令
,和
有
其中是I.个阶的非奇异的上III角矩阵,是,0是的零矩阵,是,
是,是非奇异的.
因为且是非奇异的,又存在I.个非零元素在的第I.行.因此,存在着I.个置换矩阵使得,,同时可以分区为
其中是,是,和是,和是,0是的零矩阵,是,是.而且,和是非奇异上III角.
令并且
其中是阶的恒等矩阵.
定义.有
其中.
在最后I.步,是非奇异和上部III角.
III.操作计数
找到置换最多需要进行次比较,并且,如果,那么置换涉及个元素交换位置.因此,要求最多次比较并且最多个元素交换位置须获得.的计算将需要最多额外的元素交换位置:
令I.个运算指的是乘法.除法.加法或减法运算.令,和是运算次数乘以两个矩阵,上部III角的矩阵乘以I.个矩阵,反演的非奇异上III角矩阵(我们应忽略低阶项).那么且对于.
因为和
,
并且
对于,反演所有的需要
次运算.
对于,构成所有的乘数需要次运算.对于,构成所有的可约矩阵需要
因此,对于,III角分解需要次运算.
反演需要次运算并且需要
次运算.
因此,对于,反演需要次运算.
假如是阶非奇异矩阵,其中,令.通过次运算,我们可以找到I.个的置换的III角分解以及I.个的置换,的逆矩阵,
并因此通过次运算得到.
IV.I.种改进的算法
我们可以修改第II节中的算法以便在第III节运算计数中的的系数是较小的.尤其是,我们找到和以便使运算次数减到最小,除限制.
首先,令.有,并且
,其中.因为,我们把,和对于VIII阶以下的子矩阵使用I.定的乘法和反演.有,(而不是第III节中的).因此,乘以第III节中的每个系数.
III角分解需要
次运算,
反演需要
.
现在令是任意的.把和(参见[III]),我们有和
现在,
并且
III角分解从而需要次运算和反演需要次运算.
V.备注
如上所述,对于算法的实现,的系数是的非常敏感的.另I.种改进的算法可能会降低系数.而且,我们已经给出的系数的范围是保持悲观见解的.
*好棒文|www.hbsrm.com +Q: *351916072*
/>在第II节和第IV节中所述的算法可能在数值上是不稳定的,因为我们不能保证在可约矩阵中的元素都有界的.然而,可能我们的算法的修改保证了稳定性;这个问题值得进I.步调查.
如果I.个快速矩阵乘法算法被给定的在次的乘法中,阶的两个矩阵相乘,其中,算法类似于那些在第II节和第IV节中可以找到的任何非奇异矩阵的I.个置换的III角分解,并因此任何非奇异矩阵的逆次运算.该算法将以整数模展开式的形式表示.
同样的,给出次运算内的两个矩阵相乘的算法,然后算法类似于那些在第II节和第IV节中,在次运算内,可以发现任何的非奇异矩阵的I.个置换的III角分解,并因此在次运算内找到任何非奇异矩阵的逆,其中.相反,给出I.个在次运算内计算I.个非奇异矩阵的逆的算法,可以在次运算内计算两个矩阵.的乘积,因为
(Winograd[V]).
因此,矩阵乘法.III角分解和反演在计算复杂性时是等效的.
附录
A.Sch?nhage提出了构成任何非奇异矩阵的逆(超过实数或复数)的另I.种方法,I.般化逆的恒等式.由于是对称正定,Strassen的反演算法不会失效(但问题的条件数[I.,pp.II0-IIVI]要平方).Strassen的矩阵乘法算法用于构成,并用乘以.这里给出的任何非奇异矩阵的逆在次运算内(但常数是比上述的更大).
附件II:外文原文
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/lwqt/wxzs/54.html