为了不浪费大家宝贵的时间,开头我先简要说明一下这篇博文对哪些读者可能会有帮助

1、你是正在学习矩阵的乘法运算,觉得矩阵的乘法掌握起来很困难

2、你已经学会了矩阵乘法,但如果你在计算矩阵乘法时还在使用“一行乘一列得一数”的方法,那我强烈建议你看看后面的内容。

因为,我将带你更加深刻地理解矩阵,与之而来是对矩阵乘法的全新计算方式。这不仅让你在计算矩阵乘法时更快,而且更省心。

“矩阵就是数表”这可能是很多人第一次在线性代数课堂上听到的概念。我不能指责老师这样教有错,但这种肤浅的理解会给以后的学习带来越来越多的困难,无形之中让线性代数变得越来越“玄学”。

我认为好的学问都应该是通俗易懂的,因此让我们从一个最简单的概念开始——数数,或者说计量。

人类利用数字来表示事物的多少,但单有数字还是不够的,配合数字一起使用的还有一个概念——单位。例如,2L水,3kg钢铁等等。在更为抽象一点的事物上,还有与“单位”对应的一个概念——权。例如十进制数字 34 中的 4 的权是 1,而 3 的权是进制 10。简单来说,衡量任何实物,我们总是要现在此类事物中找一个看得顺眼的 “样品” 来作为衡量该类型其他事物的一个标准,看看需要衡量的事物是这个标准量的“几倍”,这样综合起来,我们心里就能有一个感性的认识。

认识一:其实没有标准,所有的标准都是由一个具体的事物(看得最顺眼的那个)来充当的。

上面的数数的例子都是单维度的,然而有很多量无法单单使用一对“数字+单位”这样的组合来描述清楚,而是需要多组。比如,平面上的点的位置需要两组,三维空间中的点的位置需要三组才能描述清楚,等等。而线性代数研究的就是空间。让我们还是再从最简单的概念开始——平面直角坐标系。

也许你会说,平面直角坐标系还不简单么,不就是这个么

但是,我更希望它在你心中样子长成这样:

官方的说法把它叫做“平面直角坐标系的基”,你可以把它理解为在平面中数点的位置时用到的“单位”(就叫它“标准1”吧)。点(2,3)实际上是:

很多时候我们看的顺眼事物往往就那一个,因此标准也是唯一的了。比如二维平面的标准:

        

或许有人会说,x方向的基并不一定需要和y方向上的基保持长度相同,夹角也不需要是直角(只要是两个方向就行了)。随便整一个:

这也能作为衡量平面中点的坐标的“单位”(暂且叫它“标准2”好了)。但让我们来看一个具体的例子:

如果有一个点在上面这个坐标系中的坐标是:x=3, y=4。我们是不是通常会“忍不住“计算一下:

这个算式很简单,但不知你想过没有,为什么我们要去算呢?为什么不就用

来表示这个点的坐标就好了呢,实际上,当我们写下第一个等号,在进行

              

这样的换算时,我们就已经放弃上面的“标准2”,又使用起了平面直角坐标系的“标准1”。

认识二:标准往往是唯一的,使用其他的标准时,我们会情不自禁地回到这个唯一的标准。而这个唯一的标准都有一个特性,你不会去想把它转化成其他标准。

而这个的简单算式,实际上就是一次“矩阵运算”!不信?让我们再来看一下这个简单的式子:

          

这就是简单而又直接的算法,我可没有用什么“一横乘一竖”。不过你应该能发现两种算法的答案居然是一样的!等等,你也许会说,这根本就不是矩阵的乘法,就算你这样变形着写,着充其量也就是个向量对矩阵的乘法。那下面再让我们来思考一个更为深刻的问题——矩阵究竟是什么?是数表么,当然不是。其实,上文已经对这个问题给出了答案,再看看 认知一 吧,标准是由事物来充当的;二维空间中衡量点的位置的标准是由二维点来充当的,n 维空间中衡量点的位置的标准是由 n 维点来充当的。更进一步的,n 维空间中衡量一个点的坐标需要描述清楚 n 个维度,那描述清楚每一个维度又需要什么呢?回到开篇所说,需要一个数,一个“单位”。而在 n 维空间中,一个“单位”,一个“标准”,就是由一个点来充当的啊。即,一个维度需要一个标准,一个标准就是一个点,n 个维度自然需要 n 个点,而这每个点又都是 n 维空间中的点,自然每个都有 n 个维度。n 个 n 维点,可不就是一个  的矩阵嘛。为什么长宽相等的矩阵出现频率这么高,因为这样的矩阵本质上是一个坐标系!一个描述 n 维空间的坐标系。

当你用一个点(专业的说法叫向量)乘以矩阵时,实际上是放弃了以这个矩阵作为坐标系来衡量这个点的位置,重新使用了我们看得最顺眼的衡量标准——“单位阵”;

当你用矩阵乘以矩阵时,如

                                                                             

实际上是进行了 n 次点乘以矩阵。你放弃了用矩阵 B 来衡量前面矩阵 A 中的 n 个点的位置,重新使用了我们看得最顺眼的衡量标准——“单位阵”。这矩阵A中的 n 个点在矩阵 B 中的位置就是矩阵 A 本身所描述的,在你放弃标准 B(进行了这次矩阵运算后),矩阵 A 中的 n 个点的位置变成由矩阵 C 来描述了。

最后,有了上面的铺垫,我们来看一下,在这样的理解下,矩阵乘法到底应该怎么算。

这里只有“横”,没有什么“竖”的概念。不要一个数一个数地算,应该一个点一个点的算。公式太抽象?举个栗子,要计算:

我们一行一行的算,第一行:

相信剩下两行的计算就不用我啰嗦了,大家都会。

相信大家在学线性代数的时候,一会儿是列向量,一会儿是行向量,叫人头晕,老师解释这只是种写法,并没有什么讲究,但事实又好像不是如此,因为你要“一行乘一列”嘛,前面放“行”后面放“列”,这式子没法算呐。但我在这里要呐喊:

认识三:从来就没有什么列向量,所有的向量都是行向量。

其实,你要是认为“从来就没有什么行向量,所有的向量都是列向量”也可以,那样的算法是一次算一列。事情的真相其实是所有的向量都是“同方向”的,你喜欢行向量就都是行向量好了,你喜欢列向量就都是列向量好了,反正他们不会同时存在。相信只有一个方向的向量会让你神清气爽,不再晕头转向。不过你要是用列向量的话,记得要从后往前算,有兴趣的读者可以研究一下具体的算法,如有不明之处可以下面留言交流。

最后再皮一下:其实我是喜欢都看成行向量的,一来写起来省纸又顺手,二来从左往右算,符合习惯。我还暗自揣测过为什么行比列顺手,可能跟书写工具有关吧,矩阵记号是西方发明的,西方人用硬笔,书写时沉腕,旋转肘关节自然横向方便,如果矩阵记号是中国人发明的,我们用软笔,书写时悬腕,旋转肩关节自然竖向方便,那说不定矩阵运算就是列运算更加方便了。

如果您觉得本篇文章对您有所帮助,那就支持我一下吧。

带你深入理解矩阵乘法相关推荐

  1. 将矩阵转为一行_理解矩阵乘法

    理解矩阵乘法 考研需要考一门课<线性代数>,这门课其实是教矩阵. 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下. 矩阵乘法也类似,矩阵乘以一个常数,就是所有位置都乘以这个数. ...

  2. [转]如何理解矩阵乘法的规则(两个矩阵相乘法则的推导,从对方程组解方程演化而来)

    [转]如何理解矩阵乘法的规则 转自(http://news.cnblogs.com/n/528288/) 我加入了自己的理解. 作者: 阮一峰 大多数人在高中,或者大学低年级,都上过一门课<线性 ...

  3. 【线性代数】深入理解矩阵乘法、对称矩阵、正定矩阵

    问题提出   今天做到一道线性代数的证明题,如下: 设A,BA, BA,B都是nnn阶正定矩阵,且AB=BAAB=BAAB=BA,证明:ABABAB也是正定矩阵. 想了好半天没想出来,结果一翻答案,竟 ...

  4. 【线性代数】从矩阵分块的角度理解矩阵乘法

    一.矩阵分块法介绍 概念: 例: 二.使用矩阵分块法计算矩阵的积 1. 分块矩阵计算的数学步骤 使用Numpy计算例1 import numpy as np A=np.mat([[1,0,0,0],[ ...

  5. 矩阵知识:矩阵乘法、单位矩阵、数量矩阵、初等矩阵、行等价

    一.从高斯消元法到矩阵乘法: 1.1 高斯消元法 假设存在如下的方程: 将方程化为如下的形式是高斯消元法的目标: { R = ? G = ? B = ? \begin{cases} R=?\\G=?\ ...

  6. 矩阵乘法的计算规则,为什么是A矩阵的行元素分别乘以B矩阵的列元素?

    转:https://www.cnblogs.com/alantu2018/p/8528299.html Matrix 相关api: https://blog.csdn.net/gb702250823/ ...

  7. 用数组循环实现矩阵乘法php,array用法 numpy_从创建数组到矩阵运算,一文带你看懂Numpy...

    导读:Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,其提供了矩阵运算的功能.本文带你了解Numpy的一些核心知识点. 作者:魏溪含 涂铭 张修鹏 如需转载请联 ...

  8. 矩阵乘法的四种理解方式

    先介绍向量的两种运算,一个行向量乘以一个列向量称作向量的内积,又叫作点积,结果是一个数: 一个列向量乘以一个行向量称作向量的外积,外积是一种特殊的克罗内克积,结果是一个矩阵, 假设和b分别是一个行向量 ...

  9. 2017 西安网络赛A Tree(树上静态查询,带权并查集,矩阵乘法压位,好题)

    题目链接 题意: 给出 \(n(n \leq 3000)\) 个结点的一棵树,树上每个结点有一个 \(64 \times 64\) 的 \(0,1\)矩阵,每个结点上的矩阵是根据输入的 \(seed\ ...

  10. 如何理解矩阵的乘法?

    如何理解矩阵的乘法? 转载:http://www.360doc.com/content/18/0208/09/15930282_728535573.shtml 2018-02-08 风九天88 阅 1 ...

最新文章

  1. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
  2. java打开db文件_java 读取DB.properties文件方式 | 学步园
  3. python之路2.0_Python之路【第二十一篇】:JS基础
  4. Java文档阅读笔记-Guide to the Hibernate EntityManager
  5. android 360旋转动画,ANDROID——仿360手机卫士的旋转打分控件
  6. 【leetcode】 Unique Binary Search Trees (middle)☆
  7. 画出清明上河图的代码_【高清】清明上河图(代码)
  8. 再见2021,2022加油
  9. 第八章第六题(代数:两个矩阵相乘的方法)(Algebra: a method of multiplying two matrices)
  10. oracle odt.net,ODT .NET 详解之 SqlDataSource 访问 Oracle
  11. 启动docker时映射到宿主机时出现 /usr/bin/docker-current: Error response from daemon: driver failed……的解决方案
  12. 2021-2027全球与中国网眼织物纺织品市场现状及未来发展趋势
  13. 榆熙教育:电商运营必备关键指标公式
  14. 2015 Syrian Private Universities Collegiate Programming Contest
  15. 基于C语言实现的多种可视化排序算法演示程序
  16. python高级用法之命名元组namedtuple
  17. Tomcat : 修改Tomcat端口号
  18. c程序语言捉迷藏,小学一年级语文《捉迷藏》教案范文
  19. 计算机图形学图形旋转_计算机图形学中的旋转
  20. 地理坐标系和投影坐标系的联系_收藏| 地图投影系列介绍(二)——地理坐标系...

热门文章

  1. 【Chrome】浏览器控制台设置成中文
  2. python中flag标志用法_标记变量flag的用法
  3. golang flag
  4. 201903-2 二十四点
  5. 幼儿-综合素质【8】
  6. java面向对象数组实现家庭收支记账软件_C项目-家庭收支记账软件
  7. workgroup无法访问 您可能没有权限使用网络资源 (解决方案)
  8. 计算机上装的word怎么卸载,如何彻底删除电脑上的office软件
  9. linux字符串替换命令,Linux使用sed命令替换字符串教程
  10. linux统计单拷贝基因家族,为什么所有病毒基因都是单拷贝