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

转置

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

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

加法

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

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

C[i][j] = A[i][j] + B[i][j]

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

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

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

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

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

C[1][1] = A[1][1] + B[1][1] = 1 + 5 = 6

C[1][2] = A[1][2] + B[1][2] = 2 + 6 = 8

C[2][1] = A[2][1] + B[2][1] = 3 + 7 = 10

C[2][2] = A[2][2] + B[2][2] = 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中的每个元素C[i][j](其中i从1到m,j从1到p):

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

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

将这些乘积相加,得到C[i][j]的值。

用数学公式表示,C[i][j] = Σ(A[i][k] * B[k][j]),其中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的每个元素:

C[1][1] = 1*7 + 2*9 + 3*11 = 7 + 18 + 33 = 58

C[1][2] = 1*8 + 2*10 + 3*12 = 8 + 20 + 36 = 64

C[2][1] = 4*7 + 5*9 + 6*11 = 28 + 45 + 66 = 139

C[2][2] = 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]

相关推荐
白榆maple21 分钟前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少25 分钟前
数据结构——线性表与链表
数据结构·c++·算法
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
咕咕吖2 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎2 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu2 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!3 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚3 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
为什么这亚子4 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
4 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习