词条 | 斯特拉森矩阵乘法 |
释义 | 1969年斯特拉森利用分治策略并加上一些处理技巧设计出一种矩阵乘法。 为了得到2矩阵相乘的分治算法1、定义一个小问题,并指明那个问题如何进行乘法运算,2、确定一个大问题,进行划分,如何指明对这些小问题进行乘法运行。 设A和B是俩个n x n的矩阵,其中n可以写成2的幂。将A和B分别等分成4个小矩阵,此时如果把A和B都当成2x2矩阵来看,每个元素就是一个(n/2)x(n/2)矩阵,而A和B的成积就可以写成〔A11 A12〕[B11 B12] [C11 C12] X = [A21 A22] [B21 B22 ] [C21 C22] 其中 利用斯特拉森方法得到7个小矩阵,分别定义为: m1=(A12=A22)(B21+B22) m2=(A11+A22)(B11+B22) m3=(A11-A21)(B11+B12) M4=(A11+A12)B22 M5=A11(B12-B22) M6=A22(B21-B11) M7=(A21+A22)B11 矩阵m1~m7可以通过7次矩阵乘法、6次矩阵加法和4次矩阵减法计算得出,前述4个小矩阵可以由矩阵m1~m7,通过6次矩阵加法和2次矩阵减法得出,方法如下: c11=m6+m1+m2-m4 c12=m5+m4 c21=m6+m7 c22=m5-m3+m2-m1 用上述方案解n=2;矩阵乘法;假定施特拉斯矩阵分割方案仅用于n>=8的矩阵乘法,而对于小于8的矩阵直接利用公式计算;n的值越大,斯拉特森方法更方便;设T(n)表示斯特拉森分治运算法所需时间,因为大的矩阵会被递归分成小矩阵直到每个矩阵的大小小于或等于k,所以T(n)的递归表达式为T(n)=d(n<=k);T(n)=7*t(n/2)+cn2(n平方)(n>k),其中cn2表示完成18次(n/2)(n/2)接矩阵的加减法,以及把大小为N的矩阵分割成小矩阵所需的时间; |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。