本文总结向量与矩阵的各种乘积,起因是各种乘积叫法太多,非常容易搞混….因为只是简单总结,所以并不涉及各个概念的深度理解,不妥之处请指出。
1.Dot product[1],向量点积, mathbf{a} cdot mathbf{b} = mathbf{c} ,符号为 cdot ,要求向量长度相同,结果是一个标量。又称:点乘、数量积、标量积、scalar product、projection product等。
mathbf{a}=[a_{1},a_{2} cdots a_{n}],mathbf{b}=[b_{1},b_{2} cdots b_{n}],mathbf{c}=sum_{i=1}^n{a_{i}b_{i}}/ 值得注意的是,WIKI写道:
matrix product即下面矩阵的Standard matrix multiplication,因此计算过程就变成了:
mathbf{a} cdot mathbf{b}=mathbf{a} mathbf{b^top}/
例如, mathbf{a} 如果是一个 1times3 的矩阵, mathbf{b} 是一个 3times1 的矩阵,点积结果为:
begin{bmatrix} 1 & 3 & -5 end{bmatrix} begin{bmatrix} 4/ -2/ -1 end{bmatrix} =3/
另外,不少资料认为Inner product(内积)就是Dot product(点积),其实这两个概念有些许的不同,WIKI写道:
也就是说在欧氏空间内向量点积用的很多,也被广泛称为了内积,但是点积的方法并不是唯一被定义的内积方式,点积只是内积其中一种定义方式,用的最多。所以在很多地方,点积和内积被画了等号。关于内积的更多解释可以参见Inner product space。
2.Outer product[2],向量外积, mathbf{a} otimes mathbf{b} = mathbf{c} ,符号为 otimes ,如果向量 mathbf{a}的长度为 m ,向量 mathbf{b} 的长度为 n ,外积结果是一个矩阵,其维度为 m times n ,过程等价于矩阵的Standard matrix multiplication。
c=mathbf{a} otimes mathbf{b}= mathbf{a} mathbf{b^top}=begin{bmatrix} a_1 / a_2 / vdots / a_m end{bmatrix} begin{bmatrix} b_1 & b_2& cdots & b_n end{bmatrix}= begin{bmatrix} a_1b_1 & a_1b_2 & dots & a_1b_n / a_2b_1 & a_2b_2 & dots & a_2b_n / vdots & vdots & ddots & vdots / a_mb_1 & a_mb_2 & dots & a_mb_n end{bmatrix} /
同样的,不少资料认为下面的Cross product(叉积)就是Outer product(外积),这也是不对的。可能是因为向量外积用的很少,导致这两个概念很容易混淆。
为了能和下面矩阵的Kronecker product(克罗内克积,Outer product的推广)相联系,我们也可以这么看向量外积:
c=mathbf{a} otimes mathbf{b}= mathbf{a} mathbf{b^top}= begin{bmatrix} a_1mathbf{b^top}/ a_2mathbf{b^top}/ vdots/ a_mmathbf{b^top}/ end{bmatrix}= begin{bmatrix} a_1b_1 & a_1b_2 & dots & a_1b_n / a_2b_1 & a_2b_2 & dots & a_2b_n / vdots & vdots & ddots & vdots / a_mb_1 & a_mb_2 & dots & a_mb_n end{bmatrix} / /
最终得到的矩阵是一个分块矩阵(block matrix)。
3.Cross product[3],向量叉积, mathbf{a} times mathbf{b} = mathbf{c} ,符号为 times ,叉积运算只定义在三维空间,结果仍然是一个向量,其方向遵循右手定则。又称:叉乘、向量积、vector product等。
begin{alignat}{3} mathbf{a} &= a_1mathbf{color{blue}{i}} &&+ a_2mathbf{color{red}{j}} &&+ a_3mathbf{color{green}{k}} / mathbf{b} &= b_1mathbf{color{blue}{i}} &&+ b_2mathbf{color{red}{j}} &&+ b_3mathbf{color{green}{k}} end{alignat}/
利用行列式来理解:
begin{align} mathbf{atimes b} &=begin{vmatrix} mathbf{i}&mathbf{j}&mathbf{k}/ a_1&a_2&a_3/ b_1&b_2&b_3/ end{vmatrix}/&=(a_2b_3mathbf{i}+a_3b_1mathbf{j}+a_1b_2mathbf{k}) – (a_3b_2mathbf{i}+a_1b_3mathbf{j}+a_2b_1mathbf{k})/ &=(a_2b_3 – a_3b_2)mathbf{i} +(a_3b_1 – a_1b_3)mathbf{j} +(a_1b_2 – a_2b_1)mathbf{k} end{align}/
几何意义:
mathbf{a} times mathbf{b} = left| mathbf{a} right| left| mathbf{b} right| sin (theta) /
https://en.wikipedia.org/wiki/File:Cross_product.gif#/media/File:Cross_product.gif
1.Standard matrix multiplication[4], 矩阵乘积,A_{m times n} cdot B_{n times p}=C_{m times p} ,符号为 cdot ,要求 A 的列数要与 B 的行数相等,是最一般的矩阵间乘法。
mathbf{C}=begin{pmatrix} a_{11} & a_{12} & cdots & a_{1n} / a_{21} & a_{22} & cdots & a_{2n} / vdots & vdots & ddots & vdots / a_{m1} & a_{m2} & cdots & a_{mn} / end{pmatrix}begin{pmatrix} b_{11} & b_{12} & cdots & b_{1p} / b_{21} & b_{22} & cdots & b_{2p} / vdots & vdots & ddots & vdots / b_{n1} & b_{n2} & cdots & b_{np} / end{pmatrix}=begin{pmatrix} a_{11}b_{11} +cdots + a_{1n}b_{n1} & a_{11}b_{12} +cdots + a_{1n}b_{n2} & cdots & a_{11}b_{1p} +cdots + a_{1n}b_{np} / a_{21}b_{11} +cdots + a_{2n}b_{n1} & a_{21}b_{12} +cdots + a_{2n}b_{n2} & cdots & a_{21}b_{1p} +cdots + a_{2n}b_{np} / vdots & vdots & ddots & vdots / a_{m1}b_{11} +cdots + a_{mn}b_{n1} & a_{m1}b_{12} +cdots + a_{mn}b_{n2} & cdots & a_{m1}b_{1p} +cdots + a_{mn}b_{np} / end{pmatrix} /
c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} +cdots + a_{in}b_{nj}= sum_{k=1}^n a_{ik}b_{kj}/
2.Hadamard product[5],哈达玛积, A_{m times n} circ B_{m times n}=C_{m times n} 或 A_{m times n} odot B_{m times n}=C_{m times n} ,符号为 circ 或 odot ,矩阵对应元素相乘,要求矩阵维度相同。又称:逐元素积、element-wise product、entrywise product、Schur product等。
mathbf{A_{m times n}}circmathbf{B_{m times n}} = begin{bmatrix} a_{11} & a_{12} & a_{13}/ a_{21} & a_{22} & a_{23}/ a_{31} & a_{32} & a_{33} end{bmatrix} circ begin{bmatrix} b_{11} & b_{12} & b_{13}/ b_{21} & b_{22} & b_{23}/ b_{31} & b_{32} & b_{33} end{bmatrix} = begin{bmatrix} a_{11}, b_{11} & a_{12}, b_{12} & a_{13}, b_{13}/ a_{21}, b_{21} & a_{22}, b_{22} & a_{23}, b_{23}/ a_{31}, b_{31} & a_{32}, b_{32} & a_{33}, b_{33} end{bmatrix}/3.Kronecker product[6],克罗内克积, A_{m times n} otimes B_{p times q}=C_{pm times qn} ,符号为 otimes ,是上面的向量外积(out product)的推广,形成的是分块矩阵(block matrix),对矩阵维度没有要求。又称:matrix direct product等。
mathbf{A_{m times n}}otimesmathbf{B_{p times q}} = begin{bmatrix} a_{11} mathbf{B} & cdots & a_{1n}mathbf{B} / vdots & ddots & vdots / a_{m1} mathbf{B} & cdots & a_{mn} mathbf{B} end{bmatrix}= begin{bmatrix} a_{11} b_{11} & a_{11} b_{12} & cdots & a_{11} b_{1q} & cdots & cdots & a_{1n} b_{11} & a_{1n} b_{12} & cdots & a_{1n} b_{1q} / a_{11} b_{21} & a_{11} b_{22} & cdots & a_{11} b_{2q} & cdots & cdots & a_{1n} b_{21} & a_{1n} b_{22} & cdots & a_{1n} b_{2q} / vdots & vdots & ddots & vdots & & & vdots & vdots & ddots & vdots / a_{11} b_{p1} & a_{11} b_{p2} & cdots & a_{11} b_{pq} & cdots & cdots & a_{1n} b_{p1} & a_{1n} b_{p2} & cdots & a_{1n} b_{pq} / vdots & vdots & & vdots & ddots & & vdots & vdots & & vdots / vdots & vdots & & vdots & & ddots & vdots & vdots & & vdots / a_{m1} b_{11} & a_{m1} b_{12} & cdots & a_{m1} b_{1q} & cdots & cdots & a_{mn} b_{11} & a_{mn} b_{12} & cdots & a_{mn} b_{1q} / a_{m1} b_{21} & a_{m1} b_{22} & cdots & a_{m1} b_{2q} & cdots & cdots & a_{mn} b_{21} & a_{mn} b_{22} & cdots & a_{mn} b_{2q} / vdots & vdots & ddots & vdots & & & vdots & vdots & ddots & vdots / a_{m1} b_{p1} & a_{m1} b_{p2} & cdots & a_{m1} b_{pq} & cdots & cdots & a_{mn} b_{p1} & a_{mn} b_{p2} & cdots & a_{mn} b_{pq} end{bmatrix}/
上一篇