三个元素的矩阵乘除法
百度定义为:
总结一下就是,如果A和B两个矩阵要相乘,A的列数要和B的行数相同的,其实矩阵就是线性代数中对多项式常量的一种抽象表达。比如:A是2 * 80的矩阵,B是80*2的矩阵,得出的还是2*2的矩阵,简单说就是结果是A的行*B的列的矩阵,哪怕A的列是10000呢,B的行是10000,都不影响A*B的行列数,A的列只能等于B的行,否则就无法相乘。所谓矩阵链乘法就是:A*B*C*D*E*F......那A*B*C的的行列到底是多少呢,其实就是A的行*C的列,中间的根本对结果的行列树无法影响,但是根据乘法的结合律A*B*C,可以是先算A*B,再算*C,先说B*C再算*A,就是(A*B)*C或者A*(B*C),这就有个取舍的问题,也许B*C得到的行列式很小,这样乘法的计算次数比前者要少很多。这就引入了动态规划算法对A*B*C到底扩上哪个计算次数较少的话题。
上面的我也看不懂,,只是最近遇到个面试题总结下:
我的理解只用于可以简单比较他们的大小就成了,,,不要太纠结太多,,不是专业干这个的,稍稍了解下九乘,以后遇到这类问题不至于陌生:
例1: (看不懂的参考例2)
以两个矩阵相乘为例,A1*A2,A1和A2为两个矩阵,假设A1的行列数是p*q,A2的行列数是q*r。注意这里由于是A1乘以A2,所以A1的列数要等于A2的行数,否则无法做矩阵乘法,满足上述条件的矩阵,我们称之为“相容”的。那么对于A1*A2而言,我们需要分别执行p*r次对应A1的行元素乘以A2的列元素,根据线性代数知识,不难得出我们一共需要执行p*q*r次乘法。
对于两个矩阵相乘,一旦矩阵的大小确定下来了,那么所需执行的乘法次数就确定下来了。那么对于两个以上的矩阵呢?是不是也是这样呢。实际上,对于多个矩阵相乘,乘法执行的次数与“划分”有关。例如:
以矩阵链<A1,A2,A3>为例,假设三个矩阵的规模分别为10X100,100X5和5X50。
①以((A1*A2)*A3)方式划分,乘法执行次数为:10*100*5+10*5*50=5000+2500=7500次
②以(A1*(A2*A3))方式划分,乘法执行次数为:100*5*50+10*100*50=25000+50000=75000次
相当于
<A1,A2,A3> ====》》10X100,100X5和5X50
1:自我理解:
对于A*B而言,我们需要分别执行 (m*p) 次 ==>(对应A1的行元素乘以A2的列元素)
根据线性代数知识,不难得出我们一共需要执行 m*n*p 次乘法
例2: (博主完美的解决,,哈哈哈哈哈哈)
思路:
根据以上得出: 1:(A*B)相当于就是 “ A ” 的行乘以 “ B ” 的列:如下例子 ,设(A*B)=D (A*B)*C ==> (D*C)
也就是:
- A==m*n ; B==n*p ; C==p*q; (AB)==m*p == (m*n*p) *****
(上面的这里不要纠结,只要知道如何比较就可以了,纠结这个就过不去的,反正我是不知道的,哈哈,不纠结,我不是专业做这个的,只用了解就行)
依照上面的公式就能比较出下面的大小:
面试题:深度学习是当前很热门的机器学习算法。在深度学习中,涉及到大量矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,
假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是:(B) A: A(BC)B: (AB)CC: (AC)BD: 所有效率都相同解析:a*b,b*c两矩阵相乘效率为a*c*bABC=(AB)C=A(BC).(AB)C = m*n*p + m*p*q,A(BC)=n*p*q + m*n*q.m*n*p<m*n*q,m*p*q< n*p*q, 所以 (AB)C 最小
三个元素的矩阵乘除法相关推荐
- 两个元素的矩阵乘除法
矩阵的乘除法: 1 矩阵相乘,两个矩阵只有当左边的矩阵的列数等于右边矩阵的行数时,两个矩阵才可以进行矩阵的乘法运算 主要方法就是:用左边矩阵的第一行,逐个乘以右边矩阵的列,第一行与第一列各个元素的乘积 ...
- 矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作...
3.3 元素级矩阵操作 基于元素的(元素级)矩阵操作是计算机视觉中的一类数学函数和算法,它处理矩阵的各个元素,或者说,图像中的每个像素.注意基于元素的操作可以并行化,因此矩阵元素的处理顺序不重要.这个 ...
- 【MATLAB】稀疏矩阵(含有大量0元素的矩阵)
1.稀疏矩阵的储存方式 对于稀疏矩阵,MATLAB仅储存矩阵所有非零元素的值及其位置(行号和列号). 2.稀疏矩阵的生成 1)利用sparse函数从满矩阵转换得到稀疏矩阵 函数名称 表示意义 spar ...
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
[例5.1] 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点.试编写一个算法,找出A中的所有鞍点. 算法如下: void saddl ...
- blkdiag--生成以输入元素为对角线元素的矩阵
[功能简介]生成以输入元素为对角线元素的矩阵. [语法格式] out=blkdiag(a,b,c,d-) 生成以a,b,c,d,-为对角线元素的矩阵. [实例3.18]生成以1.5.2.5.3.5为对 ...
- Python实例 -- 如何快速获取列表中最大的三个元素
如何快速获取列表中最大的三个元素 最近在做实验,期间需要在一个列表中获取最大的三个元素,自己写的方法复杂度太高,放上大牛的方法,复杂度很低.多看几遍,才能体会到大概的精髓.这道题也是Python的面试 ...
- PC端设置每行固定三个元素多余换行
如上图所示,在PC端,每行三个元素,多余的换行. HTML <!-- 设置每行3个元素 --><div class="test-wrap"><ul c ...
- php 三色排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,第2章 排序 | | 第17节 三色排序练习题...
1.思路: 1.1思路1: 第一眼看到这样的题目,会举得非常简单,只需要两次遍历数组就可以完成了.第一次遍历,扫描数组中的元素,每次遇到0则count0++,遇到1则count1++,遇到2则coun ...
- 你一个包含n个整数nums,判断nums中是否存在三个元素a,b,c,使得a+b+c=0?
/* 给你一个包含n个整数nums,判断nums中是否存在三个元素a,b,c,使得a+b+c=0?请你找出所有和为0且不重复的三元组.注意:答案中不可以包含重复的三元组.*/ //1.给数组排序(从小 ...
- 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组(GO,PHP)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. 注意:答案中不可以包含重复的三 ...
最新文章
- 成功解决File frozen importlib._bootstrap, line 219, in _call_with_frames_removed ImportError: DLL lo
- java死锁以及解决方案
- Linux 跟踪进程对CPU的占用情况,对内存的占用情况
- 压缩备份日志 java_自动压缩备份日志文件到指定备份目录脚本
- Kyma registration of webservices and event endpoints
- 匿名内部类与Lambda表达式
- java 数据库连接实例,Java连接各种数据库的实例
- 百度AI快车道深圳专场,揭秘CV目标检测核心技术
- Excel-DNA开发包:ExcelDna-0.34.6.zip下载
- Could not create the view An unexpected exception……的问题
- Win10窗口拖动时自动最大化的问题,屏幕显示绿框,中间显示1
- thinkjs查询mysql_Thinkjs关系数据库学习——查询数据
- C#串口介绍以及简单串口通信程序设计实现
- Struts2-boobooke-概述
- 存货的三个加权平均单价
- ppt编辑数据链接文件不可用_ppt插入图表数据不能编辑怎么办
- 考研英语 常见不规则动词过去式/过去分词
- CentOS 8.3.2011 镜像在PC上安装选择安装源时提示:设置基础软件仓库时出错
- [HSI论文阅读] | Deep Feature Extraction and Classification of Hyperspectral Images Based on CNNs
- 总结一下强化学习在工业界应用,给大家扩展一下思路(简易科普)