2.4、matlab矩阵运算

1、前言

矩阵运算是指对矩阵的各种操作和运算,包括矩阵加法、矩阵减法、矩阵乘法、矩阵转置、求逆矩阵等。以下是常见的矩阵运算:

  1. 矩阵加法:对应位置的元素相加,要求加数和被加数的维度相同。

    A + B = | a11 b11 | + | a12 b12 | | a21 b21 | | a22 b22 |

  2. 矩阵减法:对应位置的元素相减,要求减数和被减数的维度相同。

    A - B = | a11 b11 | - | a12 b12 | | a21 b21 | | a22 b22 |

  3. 矩阵乘法:按照行乘列的方式计算,要求左矩阵的列数等于右矩阵的行数。

    AB = A的行 * B的列

  4. 矩阵转置:将矩阵的行与列进行交换,即将A的第i行第j列元素变为转置矩阵A^T的第j行第i列元素。

    对于矩阵A,A^T表示其转置矩阵。

  5. 矩阵求逆:对于方阵,如果其行列式不为0,则可以求其逆矩阵A^-1。

    如果A是一个可逆矩阵,那么AA^-1 = A^-1A = I,其中I是单位矩阵。

矩阵运算在线性代数、数值分析、工程计算等领域有广泛的应用。例如,在解线性方程组、特征值问题、最小二乘拟合、图像处理等方面都需要用到矩阵运算。熟练掌握矩阵运算的规则和性质对于理解和应用数学模型非常重要。

2、transpose, .' 转置向量或矩阵

语法

B = A.' 返回 A 的非共轭转置,即每个元素的行和列索引都会互换。
B = transpose(A) 是执行 A.' 的另一种方式,它可以为类启用运算符重载。

1)实矩阵转置

代码及运算

A = magic(5)
B = A.'

A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9


B =

    17    23     4    10    11
    24     5     6    12    18
     1     7    13    19    25
     8    14    20    21     2
    15    16    22     3     9

 2)复矩阵转置

代码及运算

A = [1 3 4-1i 2+2i; 0+1i 1-1i 5 6-1i]
B = A.'

A =

   1.0000 + 0.0000i   3.0000 + 0.0000i   4.0000 - 1.0000i   2.0000 + 2.0000i
   0.0000 + 1.0000i   1.0000 - 1.0000i   5.0000 + 0.0000i   6.0000 - 1.0000i


B =

   1.0000 + 0.0000i   0.0000 + 1.0000i
   3.0000 + 0.0000i   1.0000 - 1.0000i
   4.0000 - 1.0000i   5.0000 + 0.0000i
   2.0000 + 2.0000i   6.0000 - 1.0000i

3、 ctranspose, ' 复共轭转置

语法

B = A' 计算 A 的复共轭转置。
B = ctranspose(A) 是执行 A' 的替代方法

1)实矩阵的共轭转置

代码及运算

A = [2 1; 9 7; 2 8; 3 5]
B = A'

A =

     2     1
     9     7
     2     8
     3     5


B =

     2     9     2     3
     1     7     8     5

2) 复矩阵的共轭转置

代码及运算

A = [0-1i 2+1i;4+2i 0-2i]
B = A'

A =

   0.0000 - 1.0000i   2.0000 + 1.0000i
   4.0000 + 2.0000i   0.0000 - 2.0000i


B =

   0.0000 + 1.0000i   4.0000 - 2.0000i
   2.0000 - 1.0000i   0.0000 + 2.0000i

4、 mtimes, * 矩阵乘法

语法

C = A*B 是 A 和 B 的矩阵乘积。
C = mtimes(A,B) 是执行 A*B 这一操作的替代方法

1)将两个向量相乘

代码及运算

A = [1 1 0 0];
B = [1; 2; 3; 4];
C1 = A*B
C2 = B*A

C1 =

     3


C2 =

     1     1     0     0
     2     2     0     0
     3     3     0     0
     4     4     0     0

 2)将两个数组相乘

代码及运算

A = [1 3 5; 2 4 7];
B = [-5 8 11; 3 9 21; 4 0 8];
C = A*B

C =

    24    35   114
    30    52   162

5、 mpower, ^  矩阵幂

语法

C = A^B 计算 A 的 B 次幂并将结果返回给 C。
C = mpower(A,B) 是执行 A^B 的替代方法,但很少使用。

1)方阵幂运算

代码及运算

A = [1 2; 3 4];
C = A^2

C =

     7    10
    15    22

 2)矩阵指数

代码及运算

 B = [0 1; 1 0];
C = 2^B

C =

    1.2500    0.7500
    0.7500    1.2500

6、 sqrtm 矩阵平方根

语法

X = sqrtm(A) 返回矩阵 A 的主要平方根(即 X*X = A)。
[X,residual] = sqrtm(A) 还会返回残差 residual = norm(A-X^2,1)/norm(A,1)
[X,alpha,condx] = sqrtm(A) 以 1-范数形式返回稳定因子 alpha 和 X 的矩阵平方根条件数的估计值,即 condx。

1)差分算子的矩阵平方根

代码及运算

A = [5 -4 1 0 0; -4 6 -4 1 0; 1 -4 6 -4 1; 0 1 -4 6 -4; 0 0 1 -4 6]
X = sqrtm(A)

A =

     5    -4     1     0     0
    -4     6    -4     1     0
     1    -4     6    -4     1
     0     1    -4     6    -4
     0     0     1    -4     6


X =

    2.0015   -0.9971    0.0042    0.0046    0.0032
   -0.9971    2.0062   -0.9904    0.0118    0.0094
    0.0042   -0.9904    2.0171   -0.9746    0.0263
    0.0046    0.0118   -0.9746    2.0503   -0.9200
    0.0032    0.0094    0.0263   -0.9200    2.2700

 2)具有多个平方根的矩阵

代码及运算

 A = [7 10; 15 22];
Y1 = [1.5667 1.7408; 2.6112 4.1779];
A - Y1*Y1
Y2 = [1 2; 3 4];
A - Y2*Y2
Y = sqrtm(A)

ans =

   1.0e-03 *

   -0.1258   -0.1997
   -0.2995   -0.4254


ans =

     0     0
     0     0


Y =

    1.5667    1.7408
    2.6112    4.1779

 7、expm 矩阵指数

语法

Y = expm(X) 计算 X 的矩阵指数。

1)指数运算

代码及运算

A = [1 1 0; 0 0 2; 0 0 -1];
expm(A)

ans =

    2.7183    1.7183    1.0862
         0    1.0000    1.2642
         0         0    0.3679

8、 logm 矩阵对数

语法

L = logm(A) 是 A 的主矩阵对数,即 expm(A) 的倒数。

1)矩阵对数

代码及运算

 A = [1 1 0; 0 0 2; 0 0 -1];
P = logm(Y)

P =

   -0.3504    0.9294
    1.3940    1.0436

9、cross 叉积

语法

C = cross(A,B) 返回 A 和 B 的叉积。
C = cross(A,B,dim) 计算数组 A 和 B 沿维度 dim 的叉积。

1)向量的叉积

代码及运算

A = [4 -2 1];
B = [1 -1 3];
C = cross(A,B)

C =

    -5   -11    -2

 2)矩阵的叉积

代码及运算

A = randi(15,3,5)
B = randi(25,3,5)
C = cross(A,B)

A =

    13    15     6     3    10
    11     1    12     8    11
     5     7    12     7    12


B =

     7     5    24     6    13
    17     3     9    19    18
    17    13    15     7    23


C =

   102    -8    72   -77    37
  -186  -160   198    21   -74
   144    40  -234     9    37

10、 dot 点积

语法

C = dot(A,B) 返回 A 和 B 的标量点积。
C = dot(A,B,dim) 计算 A 和 B 沿维度 dim 的点积。

1)实数向量的点积

代码及运算

A = [4 -1 2];
B = [2 -2 -1];
C = dot(A,B)

C =

     8

 2)复数向量的点积

代码及运算

A = [1+i 1-i -1+i -1-i];
B = [3-4i 6-2i 1+2i 4+3i];
C = dot(A,B)
D = dot(A,A)

C =

   1.0000 - 5.0000i


D =

     8

 3)矩阵的点积

代码及运算

 A = [1 2 3;4 5 6;7 8 9];
B = [9 8 7;6 5 4;3 2 1];
C = dot(A,B)

C =

    54    57    54

 4)多维数组的点积

代码及运算

A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9])
B= cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17])
C = dot(A,B,3)

A(:,:,1) =

     1     1
     1     1


A(:,:,2) =

     2     3
     4     5


A(:,:,3) =

     6     7
     8     9


B(:,:,1) =

     2     2
     2     2


B(:,:,2) =

    10    11
    12    13


B(:,:,3) =

    14    15
    16    17


C =

   106   140
   178   220

11、总结

矩阵运算是线性代数中的重要概念,广泛应用于科学计算、工程技术以及机器学习等领域。以下是矩阵运算的总结:

  1. 矩阵加法:对应位置的元素相加。对于两个同型矩阵A和B,它们的加法定义为C = A + B,其中矩阵C的每一个元素是A和B对应位置元素的和。

  2. 矩阵乘法:如果A是一个m×n的矩阵,B是一个n×p的矩阵,则它们的乘积C = AB是一个m×p的矩阵。矩阵乘法满足结合律但不满足交换律。

  3. 转置:矩阵的转置就是将矩阵的行转换为列,列转换为行。如果A是一个m×n的矩阵,它的转置记作A^T,如果A的第i行第j列的元素是a_ij,则A^T的第i列第j行的元素即为a_ij。

  4. 逆矩阵:对于一个可逆矩阵A,存在一个矩阵B使得AB=BA=I,其中I是单位矩阵。如果这样的矩阵B存在,那么B就是A的逆矩阵,记作A^-1。

  5. 矩阵行列式:矩阵行列式是一个标量,它对于方阵 A 可以通过递归定义求得,行列式的值表示了这个矩阵的缩放因子。

  6. 矩阵特征值和特征向量:矩阵特征值和特征向量描述了一个矩阵的线性变换特性,特征值和特征向量可以通过特征值分解得到。

总结:矩阵运算是线性代数中的基础,它们在数据处理、信号处理、图像处理、机器学习等领域的线性变换、模型表示和求解等方面有着重要的应用。掌握矩阵运算的基本概念和性质对于理解和应用线性代数在实际问题中至关重要。

  • 38
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逼子歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值