矩阵的运算:加减乘除与转置#matlab

转置

矩阵A的转置用 A . ' 表示,一般大家会直接用A ' 表示,这是不对的,这是因为前者是转置而后者是转置后再求共轭复数。之所以大家平常用的时候没有影响是因为1,2,3,4...这类的数据是虚部为0的复数,即是实数,若虚部不为0,那么就会产生错误运算了。

矩阵的运算和单个数值的运算是不同的,以下介绍加减乘除

加法

矩阵的加法是一种相对简单的运算,它要求两个矩阵具有相同的维度,即它们必须有相同的行数和列数。在矩阵加法中,我们将两个矩阵对应位置的元素相加,以产生结果矩阵中相应位置的元素。

假设我们有两个m×n的矩阵A和B,矩阵C是它们的和,则C的每个元素Cij是A和B对应位置元素的和:

Cij = Aij + Bij

其中,i表示行数(从1到m),j表示列数(从1到n)。

下面是一个具体的例子来说明矩阵的加法运算:

假设矩阵A和B都是2×2的矩阵:

A = 1 2; 3 4;B = 5 6; 7 8

根据矩阵加法的规则,我们将对应位置的元素相加:

C11 = A11 + B11 = 1 + 5 = 6

C12 = A12 + B12 = 2 + 6 = 8

C21 = A21 + B21 = 3 + 7 = 10

C22 = A22 + B22 = 4 + 8 = 12

因此,矩阵C,即A和B的和,是:C = 6 8; 10 12

这就是矩阵加法的基本过程。如果两个矩阵的维度不同 ,那么它们就不能进行加法运算

减法

减法与加法同理。

乘法(A*BA . *B

矩阵的乘法与矩阵元素的乘法是不同的,需要注意:

矩阵A和矩阵B的乘积A*B的计算

过程可以分为以下几个步骤,这里我们假设A是一个m×n 的矩阵,B是一个n×p 的矩阵,因此它们的乘积C将是一个m×p的矩阵。

前提条件 矩阵A的列数 必须等于 矩阵B的行数,即n必须相同,这样A和B才能相乘。

计算步骤:

3.1.1 计算C的每个元素

对于C中的每个元素Cij(其中i从1到m,j从1到p):

找到A的第i行和B的第j列。

将A的第i行的每个元素与B的第j列的对应元素相乘。

将这些乘积相加,得到Cij的值。

用数学公式表示,Cij = Σ(Aik * Bkj),其中k从1到n。

3.1.2 示例

假设我们有以下两个矩阵:

A = 1 2 3; 4 5 6 (一个2×3的矩阵);B = 7 8; 9 10; 11 12 (一个3×2的矩阵)

则它们的乘积C将是一个2×2的矩阵。我们可以按照上述步骤计算C的每个元素:

C11 = 1*7 + 2*9 + 3*11 = 7 + 18 + 33 = 58

C12 = 1*8 + 2*10 + 3*12 = 8 + 20 + 36 = 64

C21 = 4*7 + 5*9 + 6*11 = 28 + 45 + 66 = 139

C22 = 4*8 + 5*10 + 6*12 = 32 + 50 + 72 = 154

因此,C = 58 64; 139 154

元素对元素的乘法A . *B

元素对元素的乘法(也称为数组乘法)将两个矩阵中对应位置元素相乘 。它要求两个矩阵具有相同的维度 。如果两个矩阵不是同型矩阵(即它们的维度不完全相同),则操作可能无法进行,除非其中一个矩阵是标量(单个数值),在这种情况下,标量将与另一个矩阵的每个元素相乘。

举例:

A = 1 2; 3 4; C = A .* A;

则C=1 4;9 16;

A = 1 2; 3 4; D = 2; E = A .* D;

则E=2 4;6 8;

除法

在矩阵运算中,对于A/B的运算,实际上并不是直接进行除法操作,而是通过矩阵的逆和乘法来实现类似的功能。因此,对于A和B矩阵,有以下要求:

矩阵B的要求:

B必须是方阵(即行数和列数相等),因为矩阵的逆运算只适用于方阵。

B必须是非奇异矩阵(即其行列式不为0),这样B才存在逆矩阵B^-1(inv(B))。如果B是奇异矩阵(行列式为0),那么它就没有逆矩阵,无法进行A/B的运算。

矩阵A的要求:

A的列数必须与B的行数相同,这是进行矩阵乘法的基本要求。当进行A/B的运算时,实际上是计算A * B^-1,因此A的列数(即B^-1的行数)必须与B的行数(即B^-1的列数)相等。

举例:

假设有两个2x2的矩阵A和B:

A = 1 2; 3 4 ;B = 5 6; 7 8

我们想找到一个矩阵X,使得AX=B。X=B/A

步骤1:判断A是否可逆

首先,我们需要确认矩阵A是否可逆。一个矩阵A是可逆的当且仅当它的行列式不为0。对于2x2矩阵,其行列式det(A) = a11a22 - a12a21。

计算A的行列式:det(A) = 14 - 23 = 4 - 6 = -2 ≠ 0

由于det(A)不为0,所以A是可逆的。

步骤2:求A的逆矩阵A^-1

对于2x2矩阵,其逆矩阵的公式为:A^-1 = (1/(det(A))) * a22 -a12; -a21 a11

将A的元素代入公式中,得到:A^-1 = (1/(-2)) * 4 -2; -3 1 = -2 1; 1.5 -0.5

步骤3:计算X

现在我们可以用A的逆矩阵和B来计算X:

X = A^-1B

将A^-1和B的具体值代入公式中,进行矩阵乘法运算:

X = -2 1; 1.5 -0.5 * 5 6; 7 8= -25 + 17 -26 + 18; 1.55 - 0.57 1.56 - 0.58

= -10 + 7 -12 + 8; 7.5 - 3.5 9 - 4= -3 -4; 4 5

相关推荐
weixin_400005603 小时前
RL-frenet-trajectory-planning-in-CARLA
人工智能·深度学习·算法·机器学习·自动驾驶
Keven_113 小时前
AcWing算法提高课思路速查:动态规划
算法·动态规划
剑挑星河月3 小时前
94.二叉树的中序遍历
java·算法·leetcode
拳里剑气3 小时前
C++算法:队列与BFS
c++·算法·bfs·宽度优先·队列
Ivanqhz3 小时前
注意力机制
线性代数·算法·矩阵·哈希算法·dnn
z小猫不吃鱼3 小时前
02 Optimal Brain Damage 详解:二阶信息剪枝的起点
算法·机器学习·剪枝
Sw1zzle3 小时前
算法入门(三):二分查找 - 基础模板 & 边界控制(Leetcode 704/35/278/34/69/367)
算法·leetcode
Keven_113 小时前
算法札记:如何判断一个DP能否单调队列优化
算法
m0_626535203 小时前
近似attention
人工智能·算法·机器学习
atunet4 小时前
关于算法优化的渐进式重构与代码级实践的技术7
算法