网站首页 > 技术文章 正文
人工智能数学基础----矩阵
人工智能数学基础系列文章
- 1. 人工智能数学基础----导数
- 2. 人工智能数学基础----矩阵
- 3. 人工智能数学基础----线性二阶近似
今天复习矩阵,作为程序员,矩阵在程序中的应用想必或多或少都接触过,特别是在图像变化算法上的应用。
一、矩阵
1. 定义
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。(此定义来自百度百科)
下面通过一个方程组来声明一个矩阵(数学符号在PC上书写真是很麻烦,不知道谁有好用的公式符号书写软件推荐下):
以上是一个三元一次方程组,根据矩阵的来源定义,有矩阵A如下图
2. 矩阵的运算
2.1. 矩阵的加法
从上图中我们可以看出,矩阵A和矩阵B相加,它们都是2 x 2的矩阵,相加就是两个矩阵对应的元素值的相加,比如:矩阵A的一行一列元素3和矩阵B的一行一列的元素-7相加,得到新的矩阵的一行一列元素-4,以此类推计算出一个新的矩阵。上图中A+B计算的结果和B+A是一样的,符合加法的交换律。 重新定义两个矩阵A[2x2]和B[2x3]:
矩阵A是2行2列,矩阵B是2行3列,如果A+B,根据上面两个矩阵相加的计算法则,会发现矩阵B的第三列元素没有办法相加。所以结论是: 当两个矩阵相加的时候,这两个矩阵的维数(行列个数)必须是相同的,比如要么都是 2x2,要么都是3x3等等。 同样的如果是A+B+C三个或者更多的矩阵的相加计算方式也是一样的。2.2. 矩阵的减法
上图可以看出,矩阵A-B的计算就是对应的每个元素的相减,而且有个规律是: 矩阵A-B = -(B-A),同矩阵加法一样,做减法的两个或者多个矩阵的维数(行列个数)必须是一样的,否则无法进行减法运算。2.3. 矩阵的乘法
有矩阵A和B,两个矩阵相乘,A的a11(表示矩阵的第一行第一列元素)、a12 分别和B的第一列的两个元素相乘后相加,作为新的矩阵的a11元素值。
上图就很清楚的描述了,矩阵乘法的计算规则。
假设有两个矩阵C和D,分别是C·D和D·C,很明显计算出的结果不相同,所以通常情况下矩阵的乘法是不满足:乘法交换律的,即:C·D≠D·C
如上图,你会发现也不是任何两个矩阵都能够相乘,只有乘数矩阵A的列数和被乘矩阵B的行数相同的时候,两个矩阵才能相乘。
3. 单位矩阵
在介绍单位矩阵之前,说介绍什么是方阵,顾名思义,方阵就是方的,行数和列数一样的矩阵,比如:
像上图这样,行列一样的矩阵就是方阵,这很直观也很好理解。单位矩阵,是一直特殊的方阵,它的所有元素由0和1组成,并且对角线的元素为1,其余元素为0,当然一阶的单位矩阵只含有一个元素1:I? = [1]。
以上四个方阵都是单位矩阵,分别是I?二阶单位矩阵、I?三阶单位矩阵、四阶和五阶的单位矩阵。单位矩阵的阶数可以无限扩大,比如n阶的单位矩阵:
单位矩阵有一个特殊重要的性质,I·A = A,A·I = A,这里的矩阵A是一个和单位矩阵同个维数的方阵,不是方阵无法和单位矩阵相乘,这个性质很容易证明,举个例子就知道了:
反过来A·I 也等于A4. 逆矩阵
如上图,如果一个矩阵可逆,那么就会有性质:A^-1·A=I,I是一个单位矩阵。逆矩阵的求法,如上图所示,逆矩阵 = 矩阵行列式的倒数值 * 矩阵A的伴随矩阵。当矩阵A的行列式如果等于0,即ad - bc = 0,或者 a/c = b/d,那么这个矩阵不存在逆矩阵(行列式的倒数1/|A|没有定义),我们也称这样的矩阵叫 “奇异矩阵”。
(未完待续。。。。)
人工智能数学基础系列文章
- 1. 人工智能数学基础----导数
- 2. 人工智能数学基础----矩阵
- 3. 人工智能数学基础----线性二阶近似
猜你喜欢
- 2024-09-26 机器学习之线性代数速查表(线性代数快速入门)
- 2024-09-26 谈谈矩阵的运算(矩阵及其运算的性质)
- 2024-09-26 巧用python的矩阵运算来进行电路的计算和分析
- 2024-09-26 计算机图形中的矩阵(计算机的矩阵怎么用)
- 2024-09-26 形象直观的“2X2矩阵”乘法运算的本质原理
- 2024-09-26 深度学习:所有矩阵尺寸和计算的深层指南!
- 2024-09-26 玩转张量点乘和变形(张量的运算规则及意义)
- 2024-09-26 python与线性代数 矩阵的运算(python做线性代数)
- 2024-09-26 矩阵加法与数乘的应用——灰度矩阵的凸组合对应灰度图的合成
- 2024-09-26 NumPy最生动形象的教程(numpy技巧)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 573℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 513℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 469℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 449℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 447℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)