【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

文章目录

      • 创建矩阵
      • 向量转置
      • 矩阵乘法
      • 单位矩阵
      • 矩阵求逆

创建矩阵

MATLAB 提供了许多函数,用于创建各种类型的矩阵。例如,您可以使用基于帕斯卡三角形的项创建一个对称矩阵:

A = pascal(3)
A =
       1     1     1
       1     2     3
       1     3     6

您也可以创建一个非对称幻方矩阵,它的行总和与列总和相等:

B = magic(3)
B =
       8     1     6
       3     5     7
       4     9     2

另一个示例是由随机整数构成的 3×2 矩形矩阵:在这种情况下,randi 的第一个输入描述整数可能值的范围,后面两个输入描述行和列的数量。

C = randi(10,3,2)
C =

     9    10
    10     7
     2     1

列向量为 m×1 矩阵,行向量为 1×n 矩阵,标量为 1×1 矩阵。

向量转置

示例矩阵 A = pascal(3) 是对称的,因此 A’ 等于 A。然而,B = magic(3) 不是对称的,因此 B’ 的元素是 B 的元素沿主对角线反转之后的结果:

B = magic(3)
B =
     8     1     6
     3     5     7
     4     9     2
X = B'
X =
     8     3     4
     1     5     9
     6     7     2

对于复数向量或矩阵 z,参量 z’ 不仅可转置该向量或矩阵,而且可将每个复数元素转换为其复共轭数。也就是说,每个复数元素的虚部的正负号将会发生更改。以如下复矩阵为例:

z = [1+2i 7-3i 3+4i; 6-2i 9i 4+7i]
z =
   1.0000 + 2.0000i   7.0000 - 3.0000i   3.0000 + 4.0000i
   6.0000 - 2.0000i   0.0000 + 9.0000i   4.0000 + 7.0000i
z 的复共轭转置为:
z'
ans =
   1.0000 - 2.0000i   6.0000 + 2.0000i
   7.0000 + 3.0000i   0.0000 - 9.0000i
   3.0000 - 4.0000i   4.0000 - 7.0000i

非共轭复数转置(其中每个元素的复数部分保留其符号)表示为 z.’:

z.'
ans =
   1.0000 + 2.0000i   6.0000 - 2.0000i
   7.0000 - 3.0000i   0.0000 + 9.0000i
   3.0000 + 4.0000i   4.0000 + 7.0000i

矩阵乘法

如果 A 为 m×p 且 B 为 p×n,则二者的乘积 C 为 m×n。该乘积实际上可以使用 MATLAB for 循环、colon 表示法和向量点积进行定义:

A = pascal(3)
B = magic(3)
m = 3; 
n = 3;
for i = 1:m
     for j = 1:n
        C(i,j) = A(i,:)*B(:,j);
     end
end
C

A =
     1     1     1
     1     2     3
     1     3     6
B =
     8     1     6
     3     5     7
     4     9     2
C =
    15    15    15
    26    38    26
    41    70    39

单位矩阵

函数eye(m,n)返回 m×n 矩形单位矩阵,
函数eye(n) 返回 n×n 单位方阵。

矩阵求逆

如果矩阵 A 为非奇异方阵(非零行列式),则方程 AX = I 和 XA = I 具有相同的解 X。此解称为 A 的逆矩阵,inv 函数和表达式 A^-1 均可对矩阵求逆。

A = pascal(3)
A =
       1     1     1
       1     2     3
       1     3     6
X = inv(A)
X =

    3.0000   -3.0000    1.0000
   -3.0000    5.0000   -2.0000
    1.0000   -2.0000    1.0000
A*X
ans =
    1.0000         0         0
    0.0000    1.0000   -0.0000
   -0.0000    0.0000    1.0000

通过 det 计算的行列式表示由矩阵描述的线性变换的缩放因子。当行列式正好为零时,矩阵为奇异矩阵,因此不存在逆矩阵。

d = det(A)
d =
     1

求解线性方程组 Ax = b 时,常常会误用 inv。从执行时间和数值精度方面而言,求解此方程的最佳方法是使用矩阵反斜杠运算符,即 x = A\b。

你可能感兴趣的:(MATLAB)