什麼是向量投影?
a 在 b 上的投影 上的向量投影,就像是向量 a 投射到 b 上的投影 所定義那條直線上的「影子」。計算結果本身也是一個向量,方向與 b 上的投影 相同(或相反)。它回答的問題是:a 有多少分量是沿著 b 上的投影 的方向?這在物理(分解力的分量)、電腦繪圖、機器學習與線性代數中,都是相當基礎的運算。
如何使用本計算機
輸入向量 a 與向量 b 上的投影 的各分量。若是二維向量,只要把 z 欄位留空即可(系統會自動視為 0)。按下計算,就能立即得到完整的投影向量、純量係數、兩個內積值,以及投影的長度(大小)。
公式解析
投影的計算方式如下:
$$\operatorname{proj}_{\vec{b}}\vec{a} = \frac{\vec{a}\cdot\vec{b}}{\vec{b}\cdot\vec{b}}\,\vec{b}$$
首先求內積 \(\vec{a}\cdot\vec{b} = \text{a}_x\text{b}_x + \text{a}_y\text{b}_y + \text{a}_z\text{b}_z\)。接著除以 \(\vec{b}\cdot\vec{b}\)(也就是 b 長度的平方),得到一個純量係數。最後把這個純量乘上 b 上的投影 的每一個分量,完成縮放。要注意 b 上的投影 不能為零向量;若 b 是零向量,投影便無法定義,此時結果會回傳為零。
實例演練
設 a = (4, 1)、b = (2, 3)。則 \(\vec{a}\cdot\vec{b} = 4\cdot 2 + 1\cdot 3 = 11\),而 \(\vec{b}\cdot\vec{b} = 2^2 + 3^2 = 13\)。純量係數為 \(11/13 \approx 0.8462\)。投影向量即為 \(0.8462 \cdot (2, 3) = (1.6923, 2.5385)\),其長度為 \(\sqrt{1.6923^2 + 2.5385^2} \approx 3.0509\)。
常見問題
純量投影與向量投影有什麼差別? 純量投影是帶正負號的長度 \((\vec{a}\cdot\vec{b})/|\vec{b}|\),只是一個數字。而向量投影(也就是本計算機所算的)則是把這個值乘上 b 的單位向量,得到一個真正的向量。
投影方向有可能和 b 相反嗎? 會的——當 \(\vec{a}\cdot\vec{b}\) 為負時,純量係數就會是負值,投影向量便會指向與 b 相反的方向。
這個計算機支援 3D 嗎? 支援。只要把兩個向量的 z 分量都填上即可。若是處理二維問題,將 z 欄位留空就好。