向量点乘
向量的点乘,也叫向量的内积、数量积。结果是一个向量在另一个向量方向上投影的长度,是一个标量。
对于向量 a a a和 b b b, A = [ a 1 , a 2 , … a n ] A=\left[a_{1}, a_{2}, \ldots a_{n}\right] \quad A=[a1,a2,…an], B = [ b 1 , b 2 , … b n ] B=\left[b_{1}, b_{2}, \ldots b_{n}\right] \quad B=[b1,b2,…bn]
A
⋅
B
=
∑
a
i
b
i
\mathrm{A} \cdot \mathbf{B}=\sum a_{i} b_{i}
A⋅B=∑aibi
或者:
A
⋅
B
=
∣
A
∥
B
∣
cos
θ
\mathbf{A} \cdot \mathbf{B}=|\mathbf{A} \| \mathbf{B}| \cos \theta
A⋅B=∣A∥B∣cosθ
向量叉乘
向量的叉乘,又叫向量积、外积、叉积。结果是一个和已有两个向量都垂直的向量。以三维向量为例
A × B = ∣ i j k a 1 a 2 a 3 b 1 b 2 b 3 ∣ = ( a 2 b 3 − b 2 a 3 ) i − ( a 1 b 3 − b 1 a 3 ) j + ( a 1 b 2 − b 1 a 2 ) k A\times B =\left|\begin{array}{lll} i & j & k \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \end{array}\right|=\left(a_{2} b_{3}-b_{2} a_{3} \right) i-\left(a_{1} b_{3}-b_{1}a_{3} \right) j+\left(a_{1} b_{2}-b_{1}a_{2}\right) k A×B=∣∣∣∣∣∣ia1b1ja2b2ka3b3∣∣∣∣∣∣=(a2b3−b2a3)i−(a1b3−b1a3)j+(a1b2−b1a2)k
其中: i = ( 1 , 0 , 0 ) j = ( 0 , 1 , 0 ) k = ( 0 , 0 , 1 ) i=(1,0,0) \quad \mathrm{j}=(0,1,0) \quad \mathrm{k}=(0,0,1) i=(1,0,0)j=(0,1,0)k=(0,0,1)
张量(矩阵)点乘
张量(矩阵)的点乘,又叫哈达马积(Hadamard product),矩阵对应位置的元素相乘
m × n m \times n m×n 矩阵 A = [ a i j ] A=\left[a_{i j}\right] A=[aij] 与 m × n m \times n m×n 矩阵 B = [ b i j ] B=\left[b_{i j}\right] B=[bij] 的Hadamard积记作 A ∗ B A * B A∗B 。
其元素定义为两个矩阵对应元素的乘积
(
A
∗
B
)
i
j
=
a
i
j
b
i
j
(A * B)_{i j}=a_{i j} b_{i j}
(A∗B)ij=aijbij ,例如
(
1
3
2
1
0
0
1
2
2
)
∗
(
0
0
2
7
5
0
2
1
1
)
=
(
1
⋅
0
3
⋅
0
2
⋅
2
1
⋅
7
0
⋅
5
0
⋅
0
1
⋅
2
2
⋅
1
2
⋅
1
)
=
(
0
0
4
7
0
0
2
2
2
)
\left(\begin{array}{lll} 1 & 3 & 2 \\ 1 & 0 & 0 \\ 1 & 2 & 2 \end{array}\right) *\left(\begin{array}{lll} 0 & 0 & 2 \\ 7 & 5 & 0 \\ 2 & 1 & 1 \end{array}\right)=\left(\begin{array}{lll} 1 \cdot 0 & 3 \cdot 0 & 2 \cdot 2 \\ 1 \cdot 7 & 0 \cdot 5 & 0 \cdot 0 \\ 1 \cdot 2 & 2 \cdot 1 & 2 \cdot 1 \end{array}\right)=\left(\begin{array}{lll} 0 & 0 & 4 \\ 7 & 0 & 0 \\ 2 & 2 & 2 \end{array}\right)
⎝⎛111302202⎠⎞∗⎝⎛072051201⎠⎞=⎝⎛1⋅01⋅71⋅23⋅00⋅52⋅12⋅20⋅02⋅1⎠⎞=⎝⎛072002402⎠⎞
张量(矩阵)克罗内克乘积
克罗内克积是两个任意大小的矩阵间的运算,也叫直积或张量积。计算过程如下例所示:
(
1
2
3
1
)
⊗
(
0
3
2
1
)
=
(
1
⋅
0
1
⋅
3
2
⋅
0
2
⋅
3
1
⋅
2
1
⋅
1
2
⋅
2
2
⋅
1
3
⋅
0
3
⋅
3
1
⋅
0
1
⋅
3
3
⋅
2
3
⋅
1
1
⋅
2
1
⋅
1
)
=
(
0
3
0
6
2
1
4
2
0
9
0
3
6
3
2
1
)
\left(\begin{array}{ll} 1 & 2 \\ 3 & 1 \end{array}\right) \otimes\left(\begin{array}{ll} 0 & 3 \\ 2 & 1 \end{array}\right)=\left(\begin{array}{cccc} 1 \cdot 0 & 1 \cdot 3 & 2 \cdot 0 & 2 \cdot 3 \\ 1 \cdot 2 & 1 \cdot 1 & 2 \cdot 2 & 2 \cdot 1 \\ 3 \cdot 0 & 3 \cdot 3 & 1 \cdot 0 & 1 \cdot 3 \\ 3 \cdot 2 & 3 \cdot 1 & 1 \cdot 2 & 1 \cdot 1 \end{array}\right)=\left(\begin{array}{llll} 0 & 3 & 0 & 6 \\ 2 & 1 & 4 & 2 \\ 0 & 9 & 0 & 3 \\ 6 & 3 & 2 & 1 \end{array}\right)
(1321)⊗(0231)=⎝⎜⎜⎛1⋅01⋅23⋅03⋅21⋅31⋅13⋅33⋅12⋅02⋅21⋅01⋅22⋅32⋅11⋅31⋅1⎠⎟⎟⎞=⎝⎜⎜⎛0206319304026231⎠⎟⎟⎞
拼接
张量(矩阵)的拼接可以按照不同的维度拼接
按照第一维度拼接:
( 1 2 3 1 ) ⊕ ( 0 3 2 1 ) = ( 1 2 0 3 3 1 2 1 ) \left(\begin{array}{ll} 1 & 2 \\ 3 & 1 \end{array}\right)\oplus\left(\begin{array}{ll} 0 & 3 \\ 2 & 1 \end{array}\right)=\left(\begin{array}{llll} 1 & 2 & 0 & 3 \\ 3 & 1 & 2 & 1 \\ \end{array}\right) (1321)⊕(0231)=(13210231)
按照第二维度拼接:
( 1 2 3 1 ) ⊕ ( 0 3 2 1 ) = ( 1 2 3 1 0 3 2 1 ) \left(\begin{array}{ll} 1 & 2 \\ 3 & 1 \end{array}\right)\oplus\left(\begin{array}{ll} 0 & 3 \\ 2 & 1 \end{array}\right)=\left(\begin{array}{llll} 1 & 2 \\ 3 & 1 \\ 0 & 3 \\ 2 & 1 \\ \end{array}\right) (1321)⊕(0231)=⎝⎜⎜⎛13022131⎠⎟⎟⎞
此外,数乘表示一个标量乘以一个矩阵或者向量中的每个元素