矩阵乘法的计算和来源

简介: 矩阵,是线性代数中的基本概念之一。一个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矩阵。其乘积矩阵的元素如下面式子得出:


image.png


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


image.png


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


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


                         

image.png

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


              image.png


矩阵乘法的来源

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


来举个简单的例子:


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

image.png

                     


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


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

image.png

                       


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


                          image.png


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


image.png


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

目录
相关文章
|
存储 数据处理
数据的表示及计算
数据在计算机系统中以二进制形式表示和计算。二进制是一种由0和1组成的数字系统,计算机使用二进制来表示和处理数据。
48 0
|
7月前
|
运维 Serverless 数据库
函数计算产品使用问题之如何并行运算函数计算任务,并对任务计算后的结果再进行聚合运算
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7月前
量化计算
【6月更文挑战第26天】量化计算
172 58
|
8月前
|
机器学习/深度学习 存储 缓存
窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算
窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算
73 0
|
8月前
|
算法
你知道几种乘法的计算方式?
你知道几种乘法的计算方式?
202 0
线性代数(七)对称矩阵和二次型
线性代数(七)对称矩阵和二次型
172 0
|
机器学习/深度学习 移动开发
线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开
线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开
|
机器学习/深度学习
深度学习核对矩阵的维数对w权重矩阵的维数的计算
深度学习核对矩阵的维数对w权重矩阵的维数的计算
137 0
|
PyTorch 算法框架/工具
已经定义好了一个张量,如何增加代码要求计算梯度?
在 PyTorch 中,可以使用 requires_grad_() 方法来动态设置张量的 requires_grad 属性为 True,从而要求计算梯度。具体来说,对于已经创建的张量 x,可以通过调用 x.requires_grad_() 来将其设置为需要计算梯度的张量。
385 0
|
机器学习/深度学习
深度学习入门(7)误差反向传播计算方式及简单计算层的实现
深度学习入门(7)误差反向传播计算方式及简单计算层的实现
深度学习入门(7)误差反向传播计算方式及简单计算层的实现