猴子都看不懂的矩阵乘法——由向量乘矩阵到矩阵乘矩阵

news2024/9/29 22:45:06

矩阵乘法

仅为初学者的理解,不喜勿喷

矩阵,即为如下形式的结构:

0 1 1 1 1 0 1 0 1 \begin{matrix} 0&1&1\\ 1&1&0\\ 1&0&1\\ \end{matrix} 011110101

既然你准备仔细阅读这篇文章,那么相信你应对矩阵(matrices)有一定的了解,这里就不再赘述,直接进入正题。

首先,要明确的是,矩阵乘法不同于数乘,用一个比喻应该把它当成普通式子计算的外语来学,不带着对普通式子的想法来学线性代数,或许会轻松很多。

1.向量乘法

矩阵乘法的前置内容应当懂得向量乘法,这里简单回顾一下。

a ⃗ \vec{a} a = (x , y , z) , b ⃗ \vec{b} b = ( i , j , k )

a ⃗ ⋅ b ⃗ = \vec{a} \cdot \vec{b}= a b =xi + yj + zk

好了,敲黑板,上面的算法使我们大家都知道的,但是我们现在引入一个新的概念:线性组合,下面便是向量a向量b的线性组合的例子。

m a ⃗ + n b ⃗ m\vec{a} + n\vec{b} ma +nb

此时的m与n取任意值都能得到一个向量a向量b的线性组合。

线性组合的概念后面会经常提到,请把它当成如实数一样的基本名词放在心上。


2.矩阵乘向量

例:

[ 2 a + 3 b + 4 c 2 d + 3 e + 4 f 2 g + 3 h + 4 i ] = [ a b c d e f g h i ] [ 2 3 4 ] (1) \left[ \begin{matrix} 2a+3b+4c \\ 2d+3e+4f\\ 2g+3h+4i \end{matrix} \right] = \left[ \begin{matrix} a & b & c\\ d & e & f\\ g & h & i \end{matrix} \right] \left[ \begin{matrix} 2 \\ 3 \\ 4 \end{matrix} \right] \tag{1} 2a+3b+4c2d+3e+4f2g+3h+4i = adgbehcfi 234 (1)

ok,这里是第一个关于矩阵乘法反常识或者说与普通乘法不一样的东西,那就是乘数在左还是在右有区别。

上面这个例子就是向量右乘矩阵(向量在矩阵右侧)。

如你所见,右乘和是以列(column)为计算的中心,而这点正如我所比喻的外语一样,需要你把这个语法硬记下来。下面解释上方的式子。

在这里插入图片描述

如图,向量乘矩阵可以拆分成系数乘列向量(因为是右乘)。

这种写法,结合到上面所提的线性组合,我们可以说列向量乘矩阵是矩阵每个列的一种线性组合。好生体会一下这种说法。


同理,下面是一个左乘(向量在矩阵左侧)的例子。

假设我们有一个1x3的行向量 u ⃗ = ( 1 2 3 ) \vec{u} = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} u =(123) 和一个3x3的矩阵 A = ( 4 5 6 7 8 9 10 11 12 ) A = \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} A= 471058116912 。注意,行向量 u ⃗ \vec{u} u 的维度是1x3,而矩阵 A A A的维度是3x3,因此它们的乘积将是一个1x3的行向量。

进行矩阵乘法运算:

u ⃗ A = ( 1 2 3 ) ( 4 5 6 7 8 9 10 11 12 ) \vec{u}A = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} \begin{pmatrix} 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} u A=(123) 471058116912

计算过程如下:

u ⃗ A = ( 1 ⋅ 4 + 2 ⋅ 7 + 3 ⋅ 10 , 1 ⋅ 5 + 2 ⋅ 8 + 3 ⋅ 11 , 1 ⋅ 6 + 2 ⋅ 9 + 3 ⋅ 12 ) \vec{u}A = \begin{pmatrix} 1 \cdot 4 + 2 \cdot 7 + 3 \cdot 10, & 1 \cdot 5 + 2 \cdot 8 + 3 \cdot 11, & 1 \cdot 6 + 2 \cdot 9 + 3 \cdot 12 \end{pmatrix} u A=(14+27+310,15+28+311,16+29+312)
= ( 4 + 14 + 30 , 5 + 16 + 33 , 6 + 18 + 36 ) = \begin{pmatrix} 4 + 14 + 30, & 5 + 16 + 33, & 6 + 18 + 36 \end{pmatrix} =(4+14+30,5+16+33,6+18+36)
= ( 48 , 54 , 60 ) = \begin{pmatrix} 48, & 54, & 60 \end{pmatrix} =(48,54,60)

第一个例子以字母与数字为例,第二个例子以纯数字为例,细品这两个例子你大概会微微抓住一点其中的要义。
但是不用去深究其中原理,现在我们就把它当成一个外语语法,基本没有什么为什么,让我们接着往下看更根本的矩阵乘法。


矩阵乘法

如向量乘矩阵一般,矩阵乘法分为左乘与右乘。

这里先看右乘:

在这里插入图片描述
这是一张及其抽象的图,美术水平就这样,大家先见谅

我看到的书或者资料上总是先从方阵开始举例子,但是这给当时第一次接触矩阵的我深深的疑惑,行和列不等该怎么办?

因此我这里直接从普遍情况说起。

如图,有一个 m 乘 n 的矩阵与 n 乘 p的矩阵相乘。

n被高亮的原因是当左边矩阵的列数不等于右边矩阵的行数时,两矩阵不能相乘。

这个条件由下面的矩阵乘法计算方法导出。


同样的,我们先从右乘讲起。

右乘本质上是计算一种左边矩阵A各列的线性组合。 这篇文章写了这么多字,全都是为了让你明白这句话的含义,或者说引导你明白这句话。

如图,结果矩阵的蓝色列(第一列)等于矩阵A乘矩阵2的第一列(绿色列向量)。这样横着看或许有点反常识(我觉得线性代数都挺反常识的 ),下面这幅图倒过来你们应该就能明白算法了。
在这里插入图片描述
分解到这步的计算方法就和上面讲的矩阵乘向量一模一样了。

如果你还没懂,可以自己在草稿本上编一组数据,模拟几遍这个过程,你对矩阵乘法的了解就越来越深刻了。

如果你认为自己已经明白了矩阵乘法,那么不妨将我没列出来的左乘用同样的道理写出来。

以上内容全部完成后,恭喜你,基本掌握了矩阵乘法!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178013.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5个你一定要知道的Word使用小技巧

在职场中,Microsoft Word已经成为我们日常工作中必不可少的工具。无论是制作报告、文档还是演示文稿,Word都扮演着重要的角色。 许多人已经掌握了Word使用小技巧,今天小编给大家整理了Word表格小技巧,这5个你一定要知道哦&#xf…

软考论文《论NoSQL数据库技术及其应用》精选试读

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展…

Linux防火墙-nat表

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…

C++:模拟实现vector

目录 成员变量与迭代器 size capacity empty 迭代器有关函数 实现默认成员函数的前置准备 reserve ​编辑 ​编辑 push_back 构造函数 无参构造 迭代器区间构造 n个val来进行构造 析构函数 拷贝构造函数 赋值重载 增删查改 clear resize pop_back inser…

Go语言匿名字段使用与注意事项

1. 定义 Go语言支持一种特殊的字段只需要提供类型而不需要写字段名的字段,称之为匿名字段或者嵌套字段。 所谓匿名字段实际上是一种结构体嵌套的方式,所以也可以称作嵌套字段。 这种方式可以实现组合复用,即通过匿名字段,结构体…

开放原子开源基金会网站上的开源项目Opns存在缓冲区溢出缺陷

最近在开放原子开源基金会网站上,看到一些开源项目,之前分析出华为的鸿蒙操作系统代码,没有发现有价值的安全漏洞。现在,下载上面的Onps开源网络协议栈,既然是通讯所使用的软件,其质量应该值得信任呢&#…

LeetCode[中等] 238. 除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂…

828华为云征文 | 云服务器Flexus X实例:向量数据库 pgvector 部署,实现向量检索

目录 一、什么是向量数据库 pgvector ? 二、pgvector 部署 2.1 安装 Docker 2.2 拉取镜像 2.3 添加规则 三、pgvector 运行 3.1 运行 pgvector 3.2 连接 pgvector 3.3 pgvector 常见操作 四、总结 本篇文章通过 云服务器Flexus X实例 部署向量数据库 pgve…

什么情况?上交所服务器被你们给买崩了?

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 上午好,我的网工朋友。 9月27日早上,A股市场迎来了一波前所未有的火爆行情,成交量激增,市场情绪高…

51单片机的光照强度检测【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块光照传感器按键蜂鸣器LED等模块构成。适用于光照强度检测、光照强度测量报警等相似项目。 可实现功能: 1、LCD1602实时显示光照强度信息 2、光照强度传感器(电位器模拟)采集光照信息 3、可…

鸿蒙开发(NEXT/API 12)【硬件(振动开发1)】振动

通过最大化开放马达器件能力,振动器模块服务拓展了原生马达服务,实现了振动与交互融合设计,从而打造出细腻精致的一体化振动体验和差异化体验,提升用户交互效率、易用性以及用户体验,并增强品牌竞争力。 运作机制 Vi…

小程序原生-地理位置授权用户拒绝后的解决方案

在开发的过程中,我们会发现一个问题: 在调用 wx.getLocation() 获取用地理位置时,如果用户选择拒绝授权,代码会直接抛出错误。在拒绝授权以后,再次调用 wx.getLocation() 时,就不会在弹窗询问用户是否允许…

【国庆要来了】基于Leaflet的旅游路线WebGIS可视化实践

前言 转眼2024年的国庆节马上就要来临了,估计很多小伙伴都计划好了旅游路线。金秋十月,不管是选择出门去看看风景,还是选择在家里看人。从自己生活惯了的城市去别人生活惯了的城市,去感受城市烟火、去感受人文风景,为2…

Windows环境 源码编译 FFmpeg

记录一下windows环境纯代码编译ffmeg的过程! 目录 一、安装MSYS2 1.下载安装 2.配置 3.修改源 4.测试与更新 二、安装其他必要工具 1.安装MinGW-w64 2.安装git 3..安装make等工具 4.编译前的其他准备工作 ①.重命名link.exe ②.下载和安装YASM ③.安装…

ADC的原理

一、介绍 模数转换,即Analog-to-Digital Converter,常称ADC,是指将连续变量的模拟信号转换为离散的数字信号的器件,比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101,这样ADC就建立了模拟世界的传感器和…

tomcat服务器控制台乱码(超简单,其中一种方式)

一、问题 为解决前: 是这样子,控制台中文乱码 解决后: 二、解决 在tomcat的安装目录下,找到conf ---》logging.properties 点击去进行编辑 重点!!! 编辑完之后,保存 如何返回到…

文献阅读9.29

目录 基于物理的神经网络在河流淤积模拟中的应用 文献摘要 讨论|结论 理论介绍 PINN 实验方程 Ansys中的数学模型 实验设置 基于物理的神经网络在河流淤积模拟中的应用 文献摘要 本文从水动力学和污染物运移动力学的基本原理出发,全面探讨了用于研究泥沙淤…

六、动画系统

一、动画事件 在此处实现:动画播放至此处,人物角色移动 1、添加动画事件 选择对应的动画 右键动画部分,选择添加动画事件 在人物身上挂载了对应的动画系统,需要在代码中,设置一个函数,作为动画事件 执行…

【ADC】使用仪表放大器驱动 SAR 型 ADC 时的输入输出范围

概述 本文学习于TI 高精度实验室课程,介绍使用仪表放大器时 SAR ADC 驱动放大器的注意事项。具体包括:介绍如何使用仪表放大器设计数据转换器驱动电路。 仪表放大器(Instrumentation Amplifier,下文简称 INA)可抑制输…

自定义knife4j访问路径

文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 原由,嫌弃doc.html 太大众 直接重定向,直接上代码了 p…