3.5 矩阵数学运算
本小节主要介绍矩阵的一些基本运算,如矩阵的四则运算、空矩阵,下面将分别介绍这些运算。
矩阵的基本运算包括加、减、乘、数乘、点乘、乘方、左除、右除、求逆等。其中加、减、乘与大家所学的线性代数中的定义是一样的,相应的运算符为“+”“-”“*”。
注意:矩阵的除法运算是MATLAB所特有的,分为左除和右除,相应运算符为“\”和“/”。一般情况下,方程AX=B的解是X=A\B,而方程XA=B的解是X=B/A。
对于上述的四则运算,需要注意的是:矩阵的加、减、乘运算的维数要求与线性代数中的要求一致。
3.5.1 矩阵的加法运算
设A =(aij), B =(bij)都是m×n矩阵,矩阵A与B的和记成A + B,规定为
(1)交换律 A + B = B + A。
(2)结合律(A + B)+ C = A +(B + C)。
>> A=[5,6,9,8;5,3,6,7;] A = 5 6 9 8 5 3 6 7 >> B=[3,6,7,9;5,8,9,6;] B = 3 6 7 9 5 8 9 6 >> C=[9,3,5,6;8,5,2,1] C = 9 3 5 6 8 5 2 1 >> A+B ans = 8 12 16 17 10 11 15 13 >> B+A ans = 8 12 16 17 10 11 15 13 >> (A+B)+C ans = 17 15 21 23 18 16 17 14 >> A+(B+C) ans = 17 15 21 23 18 16 17 14 >> D=[1,5,6;2,5,6] D = 1 5 6 2 5 6 >> A+D 错误使用 + 矩阵维度必须一致。 %只有相同维度的矩形才能进行计算
3.5.2 矩阵的减法运算
计算减法运算A-B = A+(-B)。
>> -B ans = -3 -6 -7 -9 -5 -8 -9 -6 >> A-B ans = 2 0 2 -1 0 -5 -3 1
3.5.3 矩阵的乘法运算
(1)数乘运算
数λ与矩阵A=(aii)m×n的乘积记成λA或Aλ,规定为
同时,矩阵还满足下面的规律。
λ(µA)=(λµ)A
(λ+µ)A=λA+µA
λ(A+B)=λA+λB
其中,λ、µ为数,A、B为矩阵。
>> A=[1 2 3;0 3 3;7 9 5]; >> A*5 ans = 5 10 15 0 15 15 35 45 25
(2)乘运算
若三个矩阵有相乘关系,设A=(aij)是一个m×s矩阵,B=(bij)是一个s×n矩阵,规定A与B的积为一个m×n矩阵C =(cij),其中
cij=ai1b1j+ai2b2j+…+aisbsj i=1,2,…,m; j=1,2,…,n
即C = A×B,需要满足以下3种条件。
•矩阵A的行数与矩阵B的列数相同。
•矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数。
•矩阵C的第m行n列元素值等于矩阵A的m行元素与矩阵B的n列元素对应值积的和。
>> A=[1 2 3;0 3 3;7 9 5]; >> B=[8 3 9;2 8 1;3 9 1]; >> A*B ans = 21 46 14 15 51 6 89 138 77
注意:>AB≠BA,即矩阵的乘法不满足交换律。
若矩阵A、B满足AB = 0,未必有A = 0或B = 0的结论。
(3)点乘运算
点乘运算指将两矩阵中相同位置的元素进行相乘运算,将积保存在原位置组成新矩阵。
>> A.*B ans = 8 6 27 0 24 3 21 81 5
3.5.4 矩阵的除法运算
计算左除A\B时,A的行数要与B的行数一致,计算右除A/B时,A的列数要与B的列数一致。
(1)左除运算
由于矩阵的特殊性,AB通常不等于BA,除法也一样。因此除法要区分左右。
线性方程组DX=B,如果D非奇异,即它的逆矩阵inv(D)存在。其解用MATLAB表为
X=inv(D)*B=D\B
符号‘\’称为左除,即分母放在左边。
左除的条件:B的行数等于D的阶数(D的行数和列数相同,简称阶数)。
>> A.\B ans = 8.0000 1.5000 3.0000 Inf 2.6667 0.3333 0.4286 1.0000 0.2000
(2)右除运算
若方程组表示为XD1=B1,D1非奇异,即它的逆阵inv(D1)存在。其解为
X=B1*inv(D1)=B1/D1
符号‘/’称为右除。
右除的条件:B1的列数等于D的阶数(D的行数和列数相同,简称阶数)。
>> A./B ans = 0.1250 0.6667 0.3333 0 0.3750 3.0000 2.3333 1.0000 5.0000
3.5.5 操作实例
例1:求解矩阵之和。
例1
>> [1 2 3;-1 5 6]+[0 1 -3;2 1 -1] ans = 1 3 0 1 6 5
例2:求解矩阵左除与右除。
例2
>> A=[1 2 3;5 8 6]; >> B=[8 6 9;4 3 7]; >> A.\B ans = 0 0 0 -3.0000 -2.2500 -2.7500 4.6667 3.5000 4.8333 >> A·/B ans = 0.1250 0.3333 0.3333 1.2500 2.6667 0.8571
例3:求解矩阵乘法运算。
例3
>> A=[0 0;1 1] A = 0 0 1 1 >> B=[1 0;2 0] B = 1 0 2 0 >> 6*A - 5*B ans = -5 0 -4 6 >> A*B-A ans = 0 0 2 -1 >> B*A-A ans = 0 0 -1 -1 >> A.*B-A ans = 0 0 1 -1 >> A*B./A-A ans = NaN NaN 2 -1
3.5.6 课堂练习——矩阵四则运算
矩阵四则运算
若, 求-B,A-B,3×A,A×3。
操作提示。
(1)输入矩阵。
(2)使用算数符号计算矩阵。
3.5.7 幂函数
A是一个n阶矩阵,k是一个正整数,规定
称为矩阵的幂。其中,k为正整数.
对角矩阵的幂运算是将矩阵中的每个元素进行乘方运算,即
在MATLAB中,幂运算就是在乘方符号“.^”后面输入幂的次数。
对于单个n阶矩阵A,
AkAl=Ak+1, (Ak)l=Akl。
>> A=[1 2 3;0 3 3;7 9 5]; >> A.^2 ans = 1 4 9 0 9 9 49 81 25
对于两个n阶矩阵A与B,
(AB)k≠AkBk。
>> A=[1 2 3;0 3 3;7 9 5]; >> B=[5,6,8;6,0,5;4,5,6]; >> (A*B)^5 ans = 1.0e+11 * 0.3047 0.1891 0.3649 0.2785 0.1728 0.3335 1.0999 0.6825 1.3173 >> A^5*B^5 ans = 1.0e+10 * 2.5561 2.1096 3.3613 2.5561 2.1095 3.3613 6.8284 5.6354 8.9793
知识拓展
exmp:矩阵的指数运算。
>> A=[2 5 6;4 3 8;7 6 5] A = 2 5 6 4 3 8 7 6 5
logm:矩阵的对数运算。
>> logm(A) ans = 2.0689 1.0758 -0.4254 -4.4445 2.5181 3.5937 3.9247 -0.6204 0.2959
sqrtm:矩阵的开方运算函数,进行开方运算的矩阵必须为方阵。
>> sqrtm(A) ans = 1.5090 1.3496 0.6800 -1.8243 1.9070 3.1843 3.2133 0.5732 0.9949
3.5.8 课堂练习——求解幂运算
求解幂运算
已知。
操作提示。
(1)输入矩阵A。
(2)使用幂运算,直接计算A2-2A。
(3)分解幂运算,计算A2-2A=(A-2E)A。