第二章 矩阵和数组及其运算

第八节 矩阵的除法

如果A和B是维数相同的两个方阵,而且B是可逆方阵,則它的逆矩阵B-1是另一个同维数的方阵。
因为矩阵乘法并没有交换律,所以B-1A和AB-1一般而言并不相等。因此MATLAB提供两种除法运算符号(左除 “\”和右除“/”)。凡是按矩阵规则可以和逆矩阵B-1相乘的矩阵(两个矩阵的内维相同),都可以根据左乘或右乘而做“除\”或“除以/”的计算。

1.矩阵的左除(运算符号“\”)
在矩阵A的左边乘B-1,即B-1A,称为矩阵B除矩阵A,运算符号是B\A。如果矩阵A是一个非奇异方阵,矩阵的左除A\B等于矩阵A的逆与B的左乘inv(A)B。应当指出:
1)如果矩阵A是一个方阵,表示矩阵方程AX=B的解是X=A\B,或X=inv(A)B,这里的X具有与矩阵B相同的维数。
2)如果矩阵B是一个列向量b时,则X=A\B是线性系统AX=b的解。
3)如果矩阵A是一个m×n矩阵(m>n),X=A\B得到矩阵方程AX =B的最小二乘解inv(A)B。

2.矩阵的右除(运算符号“/”)
在矩阵A的右边乘B-1,即B-1A,称为矩阵A除以矩阵B,运算符号是A/B。如果矩阵A是一个非奇异方阵,矩阵的右除A/B等于矩阵A的逆与B的右乘B inv(A)。
矩阵方程XA=B的解是X=B/A,或X=B inv(A)。
例2-6  试对两个2行2列的方阵A=[1 2;3 4]和B=[5 6;7 8]进行除法运算。
>> A=[1 2;3 4]
A =
     1     2
     3     4
>> B=[5 6;7 8]
B =
     5     6
     7     8
>> Left=A\B                 % 矩阵左除
Left =
   -3.0000   -4.0000
    4.0000    5.0000
>> Right=B/A                % 矩阵右除
Right =
    -1     2
    -2     3
>> L=inv(A)*B               % 矩阵A的逆与矩阵B的左乘
L =
   -3.0000   -4.0000
    4.0000    5.0000
>> R=B*inv(A)               % 矩阵A的逆与矩阵B的右乘
R =
   -1.0000    2.0000
   -2.0000    3.0000
线性联立方程组的矩阵形式可以写成Ax=b,其中A是一个n维可逆方阵,b是一个n维列向量。从矩阵除法可知,则x=A\b就是线性联立方程组的一组解。
例2-7  利用矩阵除法求解线性方程组
 
>>A=[4,6,?1;5,?8,3;1,4,1];       % 线性方程组的系数矩阵
>>b=[1;0;0];                   % 线性方程组的常数列向量
>>x=A\b                         % 运用矩阵左除求解线性方程组
x =
    0.1667
    0.0167
   -0.2333
>>r=A*x?b                       % 计算残量
r =
  1.0e?015 *
             -0.1110
                   0
              0.0278
>>R=norm(r)                     % 计算残量的向量范数
R =
  1.1444e?016

说明:理论上残量应该是零向量,但是因为数值计算不可避免产生误差,其结果未必真的是零。命令语句中函数norm(X)是计算三维向量X的范数,通常只要残量的向量范数在10-14以下,就认为数值解是十分精确的。