购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 矩阵的运算

在MATLAB中,矩阵的运算包括+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)等。

2.4.1 矩阵的加减法

假定有两个矩阵 A B ,若矩阵 A B 的维数相同,则可以执行矩阵的加减运算,即 A B 的相应元素相加减。在MATLAB中,由A+B和A-B实现矩阵的加减运算。

【例2-9】对矩阵 A B 进行加减运算。

A=[5 4 6; 8 9 7; 3 6 4]
B=[9 1 7; 5 6 6; 5 6 8]
C=A+B
D=A-B

运行结果如下:

A =
     5     4     6
     8     9     7
     3     6     4
B =
     9     1     7
     5     6     6
     5     6     8
C =
    14     5    13
    13    15    13
     8    12    12
D =
    -4     3    -1
     3     3     1
    -2     0    -4

如果 A B 的维数不相同,则MATLAB将返回错误信息,例如提示用户参加运算的两个矩阵的维数不匹配。

A=[5 4 6; 8 9 7; 3 6 4]
B=[9 1 7; 5 6 6; 5 6 8; 7 9 8]
C=A+B
D=A-B

运行结果如下:

A =
     5     4     6
     8     9     7
     3     6     4
B =
     9     1     7
     5     6     6
     5     6     8
     7     9     8

矩阵维度必须一致。

2.4.2 矩阵的乘法

假定有两个矩阵 A B ,若 A m × n 矩阵, B n × p 矩阵,则可以进行矩阵的乘法运算,结果为 m × p 矩阵。矩阵乘法需要被乘矩阵的列数与乘矩阵的行数相等。在MATLAB中,可用C=A*B实现矩阵的乘法。

【例2-10】两个矩阵相乘。

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

运行结果如下:

A =
     5     4     6
     8     9     7
     3     6     4
B =
     9     1     7     1
     5     6     6     2
     5     6     8     3
C =
    95    65   107    31
   152   104   166    47
    77    63    89    27

当矩阵相乘不满足被乘矩阵的列数与乘矩阵的行数相等时,MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。例如:

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

运行结果如下:

A =
     5     6
     8     7
     3     4
B =
     9     1     7     1
     5     6     6     2
     5     6     8     3
错误使用  *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用'.*'。

2.4.3 矩阵的除法

矩阵除法运算有\和/两种,分别表示左除和右除。在MATLAB中,A\B等效于 A 的逆左乘 B 矩阵,而B/A等效于 A 矩阵的逆右乘 B 矩阵。左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般A\B≠B/A。

【例2-11】两个矩阵相除。

clear
A=[5 4 6; 8 9 7; 3 6 4];
B=[9; 1; 7];
C=A\B

运行结果如下:

C =
   -4.1538
   -0.1154
    5.0385

2.4.4 矩阵的乘方

A 为方阵、 x 为标量,则一个矩阵的乘方运算可以表示成A^x。

【例2-12】求矩阵的乘方。

A=[5 4 6; 8 9 7; 3 6 4];
B=A^2
C=A^3

运行结果如下:

B =
   75      92      82
  133     155     139
   75      90      76
C =
         1357        1620        1422
         2322        2761        2439
         1323        1566        1384

D 不是方阵,则MATLAB将给出错误信息,提示用户矩阵求幂的维度不正确。

D= [5 4 6; 8 9 7]
B=D^2

运行结果如下:

D =
     5     4     6
     8     9     7
错误使用  ^  (line 51)
用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'。

2.4.5 矩阵的行列式

矩阵的行列式是一个数值。在MATLAB中,det函数用于求方阵 A 所对应的行列式的值。

【例2-13】求矩阵的行列式。

A=[5 4 6; 8 9 7; 3 6 4]
det(A)

运行结果如下:

A =
     5     4     6
     8     9     7
     3     6     4
ans =
    52

2.4.6 矩阵的秩

矩阵的线性无关的行数与列数称为矩阵的秩。在MATLAB中,rank函数用于求矩阵的秩。

【例2-14】求矩阵的秩。

A=[5 4 6; 8 9 7; 3 6 4]
rank(A)

运行结果如下:

A =
     5     4     6
     8     9     7
     3     6     4
ans =
     3

2.4.7 矩阵的逆

对于方阵 A ,如果存在一个与其同阶的方阵 B ,使得 A × B = B × A = I I 为单位矩阵),则称 B A 的逆矩阵。当然, A 也是 B 的逆矩阵。

现实中求矩阵的逆是一件非常烦琐的工作,容易出错。而在MATLAB中,求矩阵的逆非常容易,调用inv函数即可。

【例2-15】求矩阵的逆。

A=[1 2 3; 5 5 6; 7 7 9];
inv(A)

运行结果如下:

ans =
   -1.0000   -1.0000    1.0000
    1.0000    4.0000   -3.0000
    0.0000   -2.3333    1.6667

2.4.8 矩阵的迹

矩阵的迹等于矩阵的特征值之和。在MATLAB中,trace函数用于求矩阵的迹。

【例2-16】求矩阵的迹。

A=[1 2 3; 4 5 6; 7 8 9]
trace(A)

运行结果如下:

A =
     1     2     3
     4     5     6
     7     8     9
ans =
     2

2.4.9 矩阵的范数及其计算函数

在MATLAB中,cond函数用于计算矩阵的范数。该函数的调用方法如下:

cond(A,1)               % 表示计算A的1—范数下的条件数
cond(A)/cond(A,2)       % 表示计算A的2—范数下的条件数
cond(A,inf)             % 表示计算A的∞—范数下的条件数

【例2-17】求矩阵的范数。

A=[5 4 6; 8 9 7; 3 6 4];
X1=cond(A,1)
X2=cond(A)
X3=cond(A,inf)

运行结果如下:

X1 =
    19
X2 =
   14.9448
X3 =
    24

2.4.10 矩阵的特征值与特征向量

在MATLAB中,eig函数用于计算矩阵的特征值和特征向量,该函数的调用方法如下:

E=eig(A)        % 表示求矩阵A的全部特征值,构成向量E
[V,D]=eig(A)    % 表示求矩阵A的全部特征值,构成对角矩阵D,并求A的特征向量,构成V的列向量
[V,D]=eig(A,'nobalance')  % 与第2种格式类似,只是第2种格式先对A作相似变换后再求
                          % 特征值和特征向量,而格式3是直接求矩阵A的特征值和特征向量

【例2-18】求矩阵的特征值和特征向量。

A=rand(3,3)
x1=eig(A)
[V,D]=eig(A)
Y1= V*A
Y2= V*D

运行结果如下: HjEr/Psj2zZpf9MgSv74lbVCFJWyWn0sbmKdBbdi2laq2jaGXO8y+mJ1F6fAK5qI

A =
    0.1966    0.4733    0.5853
    0.2511    0.3517    0.5497
    0.6160    0.8308    0.9172
x1 =
    1.6882
   -0.1323
   -0.0905
V =
   -0.4430   -0.4013    0.1045
   -0.4109   -0.5888   -0.7978
   -0.7968    0.7016    0.5938
D =
    1.6882    0         0
    0        -0.1323    0
    0         0        -0.0905
Y1 =
   -0.1234   -0.2639   -0.3840
   -0.7201   -1.0643   -1.2959
    0.3854    0.3630    0.4641
Y2 =
   -0.7479    0.0531   -0.0095
   -0.6938    0.0779    0.0722
   -1.3451   -0.0928   -0.0537
点击中间区域
呼出菜单
上一章
目录
下一章
×