学习笔记:几种矩阵乘法(matmul product普通乘积、hadamard product矩阵点乘、kronecker product克罗内克积、斯特拉森矩阵乘法)

时间:2024-02-24 19:38:34

1、普通矩阵乘法(matmul product)

假设矩阵A大小是M*N,矩阵B大小是N*P,C=AB


这里选取一个例子


这里的矩阵乘法要求相乘的两个矩阵一个的行数得等于另一个的列数,否则,无法进行乘机运算。

2、矩阵点乘(hadamard product)

矩阵点乘,英文hadamard product,因此又称哈达码积。要求相乘的两个矩阵A和B大小完全相同,即A,B大小都为M*N,然后。下面举一个运算实例


3、克罗内克积(kronecker product)

克罗内克积也称为直积或张量积,以德国数学家利奥波德·克罗内克命名。以上两个矩阵之间的乘法运算,对于矩阵的大小都有着一定的限定条件。在克罗内克积里面,这个条件就取消了。两个任意大小的矩阵A和B,假设A的大小是m*n,B的大小是p*q,则A*B的大小是mp*nq。如下:

更具体的可以表达为


下面见到的展示一个运算实例


4、斯特拉森矩阵乘法

斯特拉森矩阵乘法是1969年斯特拉森利用分治策略并加上一些处理技巧设计出的一种矩阵乘法。设A和B是俩个n x n的矩阵,其中n可以写成2的幂。将A和B分别等分成4个小矩阵,此时如果把A和B都当成2x2矩阵来看,每个元素就是一个(n/2)x(n/2)矩阵,而A和B的成积就可以写成:


其中 利用斯特拉森方法得到7个小矩阵,分别定义为:
矩阵
  
可以通过7次矩阵乘法、6次矩阵加法和4次矩阵减法计算得出,前述4个小矩阵
  
可以由矩阵
  
通过6次矩阵加法和2次矩阵减法得出,方法如下:
用上述方案解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的矩阵分割成小矩阵所需的时间;
参考自互联网,如有侵权请联系删除