- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.youkuaiyun.com/qifengzou
- 日期:2014.05.08
- 转载请注明来自"祁峰"的优快云博客
1 引言
在大学期间,我们学过高等数学中的线性规划,其中有关于矩阵相乘的章节:只有当矩阵A的列数与矩阵B的行数相等时,A×B才有意义。一个m×n的矩阵A(m,n)左乘一个n×p的矩阵B(n,p),会得到一个m×p的矩阵C(m,p)。矩阵乘法满足结合律,但不满足交换律。
假设现要计算A×B×C×D的值,因矩阵乘法满足结合律,不满足交换律,即:A、B、C、D相邻成员的相乘顺序不会影响到最终的计算结果,比如: A×(B×(C×D))、A×((B×C)×D)、(A×B)×(C×D)、A×(B×C)×D、((A×B)×C)×D,虽然组合方式不一样,但是最终的计算结果是一致的,但改变任何成员的位置将影响到最终的计算结果。
需要注意的是:虽然矩阵链相乘时,结合方式不同所得结果一致,但获得最终结果的所花费的时间是不一样的。假如:现有矩阵A(10,100)、B(100,5)、C(5,50),则不同结合方式的运算次数如下:
运算次数N1[(A×B)×C] = 10*100*5+10*5*50 = 5000 + 2500 =