在学习线性代数的时候,通常在学完了向量的基本运算后就开始学习点积了, 但是为了能够正确理解点积的意义。我们在理解线性变换后使用线性变换的思想来重新理解点积。
点积的运算
如果我们有两个维数相同的向量,那这两个向量的点积就是相对应的坐标分量相乘再相加。
[ a 1 b 1 ] ⋅ [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2 \begin{bmatrix} a_1 \\ b_1 \end{bmatrix} \cdot \begin{bmatrix} a_2 \\ b_2 \end{bmatrix} = a_1 \times a_2 + b_1 \times b_2 [ a 1 b 1 ] ⋅ [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2
[ a 1 b 1 c 1 ] ⋅ [ a 2 b 2 c 2 ] = a 1 × a 2 + b 1 × b 2 + c 1 × c 2 \begin{bmatrix} a_1 \\ b_1 \\ c_1 \end{bmatrix} \cdot \begin{bmatrix} a_2 \\ b_2 \\ c_2 \end{bmatrix} = a_1 \times a_2 + b_1 \times b_2 + c_1 \times c_2 ⎣ ⎡ a 1 b 1 c 1 ⎦ ⎤ ⋅ ⎣ ⎡ a 2 b 2 c 2 ⎦ ⎤ = a 1 × a 2 + b 1 × b 2 + c 1 × c 2
这个运算在几何上也有这样一个投影的解释。
向量 v ⃗ \vec{v} v 在向量 w ⃗ \vec{w} w 上投影的长度乘以 w ⃗ \vec{w} w 的长度,这里两个向量 v ⃗ \vec{v} v 和 w ⃗ \vec{w} w 无论是投影还是被投影,结果都是一样的。
如果向量 v ⃗ \vec{v} v 和向量 w ⃗ \vec{w} w 方向相反,那么这个点积运算的结果为负数
如果向量 v ⃗ \vec{v} v 和向量 w ⃗ \vec{w} w 互相垂直,那么 v ⃗ ⋅ w ⃗ \vec{v} \cdot \vec{w} v ⋅ w 的结果是0。由于一个向量投影到另一个向量后的长度为0。
所以向量点积的数值也可以使用余弦定理来计算
v ⃗ ⋅ w ⃗ = cos ( θ ) × ∣ v ⃗ ∣ × ∣ w ⃗ ∣ \vec{v} \cdot \vec{w} = \cos(\theta) \times |\vec{v}| \times |\vec{w}| v ⋅ w = cos ( θ ) × ∣ v ∣ × ∣ w ∣
θ \theta θ 是向量 v ⃗ \vec{v} v 和向量 w ⃗ \vec{w} w 之间的夹角
从二维到一维
我们看上面向量点积公式的运算方法,就像是矩阵向量乘法。
[ a 1 b 1 ] × [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2 \begin{bmatrix} a_1 & b_1 \end{bmatrix} \times \begin{bmatrix} a_2 \\ b_2 \end{bmatrix} = a_1 \times a_2 + b_1 \times b_2 [ a 1 b 1 ] × [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2
[ a 1 b 1 ] ⋅ [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2 \begin{bmatrix} a_1 \\ b_1 \end{bmatrix} \cdot \begin{bmatrix} a_2 \\ b_2 \end{bmatrix} = a_1 \times a_2 + b_1 \times b_2 [ a 1 b 1 ] ⋅ [ a 2 b 2 ] = a 1 × a 2 + b 1 × b 2
从上面的计算结果看来,在这里的 1 × 2 1 \times 2 1 × 2 的矩阵与向量乘法跟向量点积的结果是一样的。也就是说在这里 1 × 2 1 \times 2 1 × 2 的矩阵与二维向量之间有着微妙关系的。
首先让我们来看看将二维向量转换为数的变换,由于需要将二维向量压缩到一维,所以在原来二维空间中的基向量 i ^ \hat{i} i ^ 和 j ^ \hat{j} j ^ 都变成了一个数,也就是 1 × 2 1 \times 2 1 × 2 矩阵中的两列。
为了更加直观地理解,我们在二维空间中添加一条数轴,并定义一个二维向量 u ^ \hat{u} u ^ 刚好落在数轴的1上。
现在为了将二维空间中的任意向量投影到这一条数轴上,我们需要找到一个这样的 1 × 2 1 \times 2 1 × 2 矩阵来表示基向量 i ^ \hat{i} i ^ 和 j ^ \hat{j} j ^ 在变换后对应数轴上的数。
为了搞清楚 i ^ \hat{i} i ^ 投影到数轴上后的数是多少,我们在 i ^ \hat{i} i ^ 和 u ^ \hat{u} u ^ 上做一条对称轴,然后分别将 u ^ \hat{u} u ^ 投影到 i ^ \hat{i} i ^ ,同时将 i ^ \hat{i} i ^ 投影到 u ^ \hat{u} u ^ ,由于 u ^ \hat{u} u ^ 和 i ^ \hat{i} i ^ 的长度相同,所以 i ^ \hat{i} i ^ 投影到 u ^ \hat{u} u ^ 上的长度就等于 u ^ \hat{u} u ^ 投影到 i ^ \hat{i} i ^ 上的长度。同时 u ^ \hat{u} u ^ 投影到 i ^ \hat{i} i ^ 上的长度就等于 u ^ \hat{u} u ^ 的横坐标 u x u_x u x ,所以 i ^ \hat{i} i ^ 投影到 u ^ \hat{u} u ^ 上的长度就是 u x u_x u x 。
同理,j ^ \hat{j} j ^ 投影到 u ^ \hat{u} u ^ 上的长度就是 u y u_y u y
至此,我们已经得出了这里变换后的 i ^ \hat{i} i ^ 和 j ^ \hat{j} j ^ ,将它们组合成 1 × 2 1 \times 2 1 × 2 的矩阵就是 [ u x u y ] \begin{bmatrix} u_x & u_y \end{bmatrix} [ u x u y ] ,此后当我们需要将二维空间中的任意向量 v ⃗ \vec{v} v 投影到 u ^ \hat{u} u ^ 所处的数轴的结果,与这个向量 v ⃗ \vec{v} v 与 u ^ \hat{u} u ^ 进行点积运算的结果一样 [ v x v y ] ⋅ [ u x u y ] = [ u x u y ] × [ v x v y ] \begin{bmatrix} v_x \\ v_y \end{bmatrix} \cdot \begin{bmatrix} u_x \\ u_y \end{bmatrix} = \begin{bmatrix} u_x & u_y \end{bmatrix} \times \begin{bmatrix} v_x \\ v_y \end{bmatrix} [ v x v y ] ⋅ [ u x u y ] = [ u x u y ] × [ v x v y ] 。这也就说明了,某向量与单位向量做点积,就是将向量投影到单位向量所在直线后得到的长度。
如果我们把上面数轴中的 u ^ \hat{u} u ^ 增长至三倍,用 3 u ^ 3\hat{u} 3 u ^ 表示,二维空间中的向量 v ⃗ \vec{v} v 与 3 u ^ 3\hat{u} 3 u ^ 作点积运算其实就是这里的公式 [ v x v y ] ⋅ [ 3 u x 3 u y ] = 3 × ( [ v x v y ] ⋅ [ u x u y ] ) \begin{bmatrix} v_x \\ v_y \end{bmatrix} \cdot \begin{bmatrix} 3u_x \\ 3u_y \end{bmatrix} = 3 \times \left( \begin{bmatrix} v_x \\ v_y \end{bmatrix} \cdot \begin{bmatrix} u_x \\ u_y \end{bmatrix} \right) [ v x v y ] ⋅ [ 3 u x 3 u y ] = 3 × ( [ v x v y ] ⋅ [ u x u y ] ) ,所以向量 v ⃗ \vec{v} v 与向量 w ⃗ \vec{w} w 的点积,就是向量 v ⃗ \vec{v} v 往向量 w ⃗ \vec{w} w 上投影所得的长度乘以 w ⃗ \vec{w} w 的长度,或者倒过来是向量 w ⃗ \vec{w} w 往向量 v ⃗ \vec{v} v 上投影所得的长度乘以 v ⃗ \vec{v} v 的长度。
=
如果有一个将二维转换到一维的变换,那么这个变换肯定有一个对应的二维向量 v ⃗ \vec{v} v 。对其他向量而言,与 1 × 2 1 \times 2 1 × 2 矩阵相乘和与 v ⃗ \vec{v} v 做点积运算是一样的。
这一部分放到三维向量空间也是适用的,一个代表三维到一维的变换能够和三维空间中的一个向量对应起来。任意一个三维向量与这个变换做乘法等于与这个向量作点积。