2.2 矩阵乘法

本节讲解矩阵乘法。我们将在第3章中看到,矩阵乘法用于实现点和向量的变换,并通过矩阵乘法将一系列的变换组合在一起。

2.2.1 定义

假设A是一个m×n矩阵,B是一个n×p矩阵,乘积ABC表示,则C是一个m×p矩阵,其中结果C的第ij个元素的值等于A的第i个行向量和B的第j个列向量的点积,也就是,

Cij=Ai,*B*,j   (2.1)

注意,矩阵A的列数必须与矩阵B的行数相同,只有这样才能计算矩阵乘积C,也就是说,A中的行向量的维数必须与B中的列向量的维数相同。如果维数不同,那么公式2.1中的点积就没有意义。

例2.3

\[{\bf{A}} = \left[ {\begin{array}{*{20}{c}}1&5\\{ - 2}&3\end{array}} \right],{\bf{B}} = \left[ {\begin{array}{*{20}{c}}2\\1\\{ - 3}\end{array}\begin{array}{*{20}{c}}{ - 6}\\3\\0\end{array}} \right]\]

则,无法计算乘积AB,因为A中的行向量的维数是2,而B中的列向量的维数是3。我们无法计算A的第1个行向量与B的第1个列向量的点积,因为一个2D向量是无法与一个3D向量计算点积的。

例2.4

\[{\bf{A}} = \left[ {\begin{array}{*{20}{c}}{ - 1}&5&{ - 4}\\3&2&1\end{array}} \right],{\bf{B}} = \left[ {\begin{array}{*{20}{c}}2&1&0\\0&{ - 2}&1\\{ - 1}&2&3\end{array}} \right]\]

首先我们要指出的是可以计算乘积AB(是一个2×3矩阵),因为A的列数与B的行数相等。运用公式2.1可得:

\[\begin{array}{l}{\bf{AB}} = \left[ {\begin{array}{*{20}{c}}{ - 1}&5&{ - 4}\\3&2&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}2&1&0\\0&{ - 2}&1\\{ - 1}&2&3\end{array}} \right]\\{\rm{ = }}\left[ {\begin{array}{*{20}{c}}{( - 1,5, - 4) \cdot (2,0, - 1)}&{( - 1,5, - 4) \cdot (1, - 2,2)}&{( - 1,5, - 4) \cdot (0,1,3)}\\{(3,2,1) \cdot (2,0, - 1)}&{(3,2,1) \cdot (1, - 2,2)}&{(3,2,1) \cdot (0,1,3)}\end{array}} \right]\\ = \left[ {\begin{array}{*{20}{c}}2&{ - 19}&{ - 7}\\5&1&5\end{array}} \right]\end{array}\]

注意,在个例子中我们无法计算BA的乘积,因为B的列数与A的行数不相等。这说明矩阵乘法通常不满足交换律;也就是ABBA

2.2.2 向量-矩阵乘法

考虑下面的向量-矩阵乘法:

\[{\bf{uA}}{\rm{ = }}\left[ {x,y,z} \right]\left[ {\begin{array}{*{20}{c}}{{A_{11}}}&{{A_{12}}}&{{A_{13}}}\\{{A_{21}}}&{{A_{21}}}&{{A_{23}}}\\{{A_{31}}}&{{A_{32}}}&{{A_{33}}}\end{array}} \right] = \left[ {x,y,z} \right]\left[ {\begin{array}{*{20}{c}} \uparrow & \uparrow & \uparrow \\{{{\bf{A}}_{*,1}}}&{{{\bf{A}}_{*,2}}}&{{{\bf{A}}_{*,3}}}\\ \downarrow & \downarrow & \downarrow \end{array}} \right]\]

注意,这里uA的计算结果是一个1×3行向量。运用公式2.1可得:

\[\begin{array}{l}{\bf{uA}}{\rm{ = }}\left[ {\begin{array}{*{20}{c}}{{\bf{u}} \cdot {{\bf{A}}_{*,1}}}&{{\bf{u}} \cdot {{\bf{A}}_{*,2}}}&{{\bf{u}} \cdot {{\bf{A}}_{*,3}}}\end{array}} \right]\\ = \left[ {x{A_{11}} + y{A_{21}} + z{A_{31}},x{A_{12}} + y{A_{22}} + z{A_{32}},x{A_{13}} + y{A_{23}} + z{A_{33}}} \right]\\ = \left[ {x{A_{11}},x{A_{12}},x{A_{13}}} \right] + \left[ {y{A_{21}},y{A_{22}},y{A_{23}}} \right] + \left[ {z{A_{31}},z{A_{32}},z{A_{33}}} \right]\\ = x\left[ {{A_{11}},{A_{12}},{A_{13}}} \right] + y\left[ {{A_{21}},{A_{22}},{A_{23}}} \right] + z\left[ {{A_{31}},{A_{32}},{A_{33}}} \right]\\ = x{{\bf{A}}_{1,*}} + y{{\bf{A}}_{2,*}} + z{{\bf{A}}_{3,*}}\end{array}\]

因此,

\({\bf{uA}}{\rm{ = }}x{{\bf{A}}_{1,*}} + y{{\bf{A}}_{2,*}} + z{{\bf{A}}_{3,*}}\)   (2.2)

公式2.2是一个常用的线性组合,它说明向量-矩阵的乘积uA等于向量u给出的标量系数xyz与矩阵A的每个行向量的线性组合。注意,虽然我们这里给出的例子是一个1×3行向量和一个3×3矩阵,但是这个计算方法是通用的。也就是,对于一个1×n行向量u和一个n×m矩阵A,乘积uA等于u给出的标量系数与A中的每个行向量的线性组合:

\(\left[ {{u_1}, \cdots ,{u_n}} \right]\left[ {\begin{array}{*{20}{c}}{{A_{11}}}& \cdots &{{A_{1m}}}\\ \vdots & \ddots & \vdots \\{{A_{n1}}}& \cdots &{{A_{nm}}}\end{array}} \right] = {u_1}{A_{1,*}} + \cdots + {u_n}{A_{n,*}}\)   (2.3)

2.2.3 结合律

矩阵乘法具有一些有用的代数特性。例如,可以将矩阵乘法分配给每个加法分量:A(B+C)=AB+AC、(A+B)C=AC+BC。有时我们会使用矩阵乘法的结合律来改变相乘矩阵的计算顺序:

(AB)C=A(BC)

文件下载(已下载 579 次)

发布时间:2014/9/14 15:11:29  阅读次数:3750

2006 - 2024,推荐分辨率1024*768以上,推荐浏览器Chrome、Edge等现代浏览器,截止2021年12月5日的访问次数:1872万9823 站长邮箱

沪ICP备18037240号-1

沪公网安备 31011002002865号