矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分的广泛。

矩阵乘法的计算

矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。

矩阵乘法是一种高效的算法可以把一些一维递推优化到log(n),还可以求路径方案等,所以更是一种应用性极强的算法。必须注意的是,只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义。

一般单说矩阵乘积时,指的便是一般矩阵乘积。若A为m×n矩阵,B为n×p矩阵,则他们的乘积AB(有时记做A·B)会是一个m×p矩阵。其乘积矩阵的元素如下面式子得出:

一般矩阵乘积公式

上面是一个通过代数公式的方式说明这类乘法的抽象性质,有些抽象,下面从一个具体图的角度看看这种乘法:

一般矩阵乘积图画表示

在上图中,A是个4×2矩阵,B是个2×3矩阵。分别计算AB的(1,2)和(3,3)元素的值,结果可以根据上图中箭头方向两两配对,把每一对中的两个元素相乘,再把这些乘积加起来,最后得到的值即为箭头相交位置的值。

这样在从直观的图中转换为稍微抽象点的公式中,则对应的计算方式为:

(AB)1,2

(AB)3,3

不知道CSDN怎么编辑数学公式,就先从百度百科里摘两个例子:

例子一

例子二

矩阵乘法的来源

在矩阵的运算中,矩阵的加法、数与矩阵的积,都与实数或向量的对应运算一致,易于接受掌握。唯独矩阵乘法,与之相差悬殊。初学时感觉莫名其妙,难以接受。扬天哀呼,为啥这么算呢?

来举个简单的例子:

设A1,A2,…,Am是m个工厂,它们都生产着n种产品B1,B2,…,Bm,而Ai厂生产Bj的年产量为aij,i=1,2,…,m;j=1,2,…,n。于是,对照每个工厂各种产品年产量的统计表和产量矩阵就出来了:

统计表

产量矩阵

如果第二年各厂各种产品的产量都是前一年的λ倍,就是数乘矩阵λA的意义。如果计算各厂各种产品两年的总产量,就用到了矩阵的加法。

接上例,设产品B1,B2,…,Bn皆需p种原料C1,C2,…,Cp,而生存一件Bk所需原料Cj的数量为bkj,于是,统计各种产品每件所需的原料数表和单间原料矩阵为:

原料数表

单间原料矩阵

现在需要计算各厂每年所需各种原料的总是,设Ai长一年所需原料Cj的总数为cij,则各厂一年所需各种原料总数统计表和原料总数矩阵为:

原料总数统计表

原料总数矩阵

到这一步,基本上可以想到,cij(i厂需材料j的原料数量)等于i厂各个产品的年产量乘上该产品所需j原料的数量的和,简单点说就是一年所需总料数=年产量×单间所需原料数,用公式表达就是:

公式

从上面的例子可以看出,关于矩阵的乘法,并非空穴来风、无源之水,而是有它必然产生的缘由。充分说明了数学是来源于生活,之所以与生活相差较大,只是因为在语言、符号演化过程中,数学进化的方向是趋向于抽象和一般。