简单理解矩阵乘法

作者:知乎用户
链接:https://www.zhihu.com/question/21351965/answer/31050145
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小明今天要做饭,消耗2斤肉,1斤蔬菜。肉每斤20元,蔬菜每斤5元,则一共需多少花费?
这个问题的答案很简单:

我们用向量相乘的方法写出来:
如果小明第二天有另一种做饭的方法,需要消耗1斤肉,4斤蔬菜,那么这两种方法的花费各是多少呢?我们显然需要另算这第二种方法的花费。把这个做饭方式写在第二个矩阵(向量是宽度或长度为1的矩阵)里:
小明家附近还有另一个菜市场,那里肉每斤15元,蔬菜每斤10元。那么,小明如果去这个菜市场,花费又是多少呢(分别计算上述两种做饭方式)?我们把这另外的一种价格写进第一个矩阵里:

这样我们看到了一个矩阵乘法的例子。在左边的这个矩阵的每一行,都代表了一种价目表;在右边的矩阵的每一列,都代表了一种做饭方式。那么所有可能的组合所最终产生的花费,则在结果矩阵中表示出来了。

时间: 2024-08-22 06:17:17

简单理解矩阵乘法的相关文章

理解矩阵乘法

矩阵加法就是相同位置的数字加一下. 矩阵减法也类似. 矩阵乘以一个常数,就是所有位置都乘以这个数. 但是,等到矩阵乘以矩阵的时候,一切就不一样了. 这个结果是怎么算出来的? 教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3. 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 怎么会有这么

矩阵乘法

矩阵加法就是相同位置的数字加一下,矩阵减法也类似 矩阵乘以一个常数,就是所有位置都乘以这个数 矩阵乘以矩阵 计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3 矩阵的本质就是线性方程式,两者是一一对应关系.如果从线性方程式的角度,理解矩阵乘法就毫无难度.下面是一组线性方程式 矩阵的最初目的,只是为线性方程组提供一个简写形式 下面是严格的证明.有三组未知数 x.y 和 t,

BZOJ 4870 [Shoi2017]组合数问题 ——动态规划 矩阵乘法

注意到$r<k$ 别问我为什么要强调. 考场上前30分水水. 然后写阶乘的时候大力$n\log {n}$预处理 本机跑的挺快的,然后稳稳的T掉了. 然后就是简单的矩阵乘法了. #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm

验证矩阵乘法

如何使用随机性矩阵乘法,随机算法在验证多项式的恒等问题比确定算法要快,而且在准确性上面也是可以接受的.假设有A,B,C三个n*n的矩阵.为了方便起见假定对模2的整数计算.我们想要快速的验证AB=C.首先想到的方法就是通过矩阵计算AB得到的矩阵与矩阵C对比.但是简单的矩阵乘法的时间复杂度为O(n^3),就算是经过优化的矩阵乘法算法的时间复杂度为O(n^2.37).显然这样的时间复杂度不为我们所接受. 我们可以再次使用随机算法来在一个可以接受的出错概率下来验证.算法首先抽取一个向量r=(r1,r2,

【BZOJ1875】【矩阵乘法】[SDOI2009]HH去散步

Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢变化的人,所以他每天走过的路径都不完全一样,他想知道他究竟有多 少种散步的方法. 现在给你学校的地图(假设每条路的长度都是一样的都是1),问长度为t,从给定地 点A走到给定地点B共有多少条符合条件的路径 Input 第一行:五个整数N,M,t,A,B.其中N表示学校里的路口的个数,M表

一道简单的递推题(快速幂+矩阵乘法优化+滚动数组)

问题 F: 一道简单的递推题 时间限制: 1 Sec  内存限制: 128 MB提交: 546  解决: 48[提交][状态][讨论版] 题目描述 存在如下递推式: F(n+1)=A1*F(n)+A2*F(n-1)+...+An*F(1) 求第K项的值对1000000007取模的结果 输入 单组测试数据 第一行输入两个整数 n , k (1<=n<=100,n<k<=10000000000) 第二行输入 n 个整数 F(1)   F(2)   ...   F(n) 第三行输入 n

3D数学--学习笔记(六):我对矩阵的一些简单理解总结

1.矩阵的行列式: 任意矩阵中都存在一个标量,称作矩阵的行列式,这里该值记为A. 2D中,A等于以基向量为两边的平行四边形的有符号面积.有符号面积是指如果平行四边形相对于原来的方位"翻转",那么面积为负. 3D中,A等于以变换后的基向量为三边的平行六面体的有符号体积.3D中,如果变换使得平行六面体"由里向外"翻转,则行列式变负. A的大小和矩阵变换导致的尺寸改变有关.IAI和面积(2D).体积(3D)的改变相关. A的符号则说明了变换矩阵是否包含镜像. A还能对矩阵

矩阵乘法&lt;简单总结&gt;

原理:矩阵相乘最重要的方法是一般矩阵乘积.它只有在第一个矩阵的 行数 和第二个矩阵的 列数 相同时才可进行.若A为m×n矩阵,B为n×p矩阵,则他们的乘积AB会是一个m×p矩阵. 若A=    a    b    c        d    e    f        g    h    i    B=    A    D        B    E        C    F    A*B=CC=    aA+bB+cC    aD+bE+cF        dA+eB+fC    dD+eE

python实现简单的并行矩阵乘法

本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响.假设A(m,n)表示矩阵的m行,n列.那么C(m,m)=A(m,n) B(n,m) :计算C矩阵时候分解成:process-1:C(1,1) = A(1,:) B(:,1) process-2:C(1,2) = A(1,:) * B(:,2) .......... process-mC(m,m) = A(m,:) * B(:,m) 实现源码:import multiprocessing #导入多进程模块,实现多进程impo