這個計算器的功能
本工具利用內積(點積)求出 2D 或 3D 空間中兩個向量之間的夾角。只要輸入向量 a 與向量 b 的各個分量,即可得到以「度」與「弧度」表示的夾角,同時顯示內積值、兩個向量各自的長度(大小),以及夾角的餘弦值。無論是純數學、物理、工程、電腦繪圖,還是機器學習中的相似度問題,都能派上用場。
使用方式
分別輸入每個向量的 x、y(以及選填的 z)分量。如果是 2D 向量,只要把 z 欄位留空或填 0 即可。按下計算後就能看到夾角。計算結果一律落在 0° 到 180° 之間,也就是兩個方向之間最小的幾何夾角。
公式說明
內積與夾角的關係為 \(\text{a}\cdot\text{b} = |\text{a}||\text{b}|\cos\theta\)。將公式整理後求 \(\theta\),可得
$$\theta = \arccos\!\left( \frac{\text{a}\cdot\text{b}}{|\text{a}||\text{b}|} \right)$$內積是逐分量相乘再相加:
$$\text{a}\cdot\text{b} = \text{a}_x\text{b}_x + \text{a}_y\text{b}_y + \text{a}_z\text{b}_z$$每個向量的長度則是各分量平方和開根號:
$$|\text{a}| = \sqrt{\text{a}_x^2 + \text{a}_y^2 + \text{a}_z^2}$$為了避免浮點數的捨入誤差,相除後的結果會先限制在 \([-1, 1]\) 範圍內,再取反餘弦。
實例演練
假設 \(\text{a} = (1, 0, 0)\)、\(\text{b} = (1, 1, 0)\)。內積為
$$1\cdot 1 + 0\cdot 1 + 0\cdot 0 = 1$$兩向量長度為 \(|\text{a}| = 1\)、\(|\text{b}| = \sqrt{2} \approx 1.4142\)。因此
$$\cos\theta = \frac{1}{1 \times 1.4142} \approx 0.7071$$得到 \(\theta = \arccos(0.7071) = 45°\),約等於 \(0.7854\) 弧度。
解釋您的結果
計算器返回的角度 \(\theta\) 描述了兩個向量相對於彼此的方向,與它們的長度無關。\(\cos\theta\) 的符號和大小可以一目瞭然地告訴您幾何關係。
- \(\theta = 0^\circ\) (\(\cos\theta = 1\)) — 平行 / 同方向。 向量指向完全相同的方向;一個是另一個的正標量倍數。
- \(0^\circ < \theta < 90^\circ\) (\(\cos\theta > 0\)) — 銳角。 點積為正,向量指向大致相似的方向。
- \(\theta = 90^\circ\) (\(\cos\theta = 0\)) — 正交(垂直)。 點積恰好為零。這是垂直性的定義性測試。
- \(90^\circ < \theta < 180^\circ\) (\(\cos\theta < 0\)) — 鈍角。 點積為負;向量指向大致相反的方向。
- \(\theta = 180^\circ\) (\(\cos\theta = -1\)) — 反平行 / 相反方向。 一個向量是另一個的負標量倍數。
在機器學習和文本分析中,\(\cos\theta\) 本身稱為餘弦相似度。直接解釋:**1** 表示相同方向(最相似),**0** 表示正交/無關,**−1** 表示相反。由於它忽略了幅度,兩個具有相同方向但長度不同的文檔或嵌入會被評為相同。角度和相似度包含相同的信息 — 角度只是相似度的 \(\arccos\)。
常見角度參考值
這些標準角度及其精確餘弦值對於檢查結果和識別常見方向很有用。角度由 \(\theta = \arccos(\cos\theta)\) 得出。
| 角度(度數) | 角度(弧度) | \(\cos\theta\) | 關係 |
|---|---|---|---|
| 0° | \(0\) | 1.0000 | 平行(同方向) |
| 30° | \(\pi/6\) | 0.8660 | 銳角 |
| 45° | \(\pi/4\) | 0.7071 | 銳角 |
| 60° | \(\pi/3\) | 0.5000 | 銳角 |
| 90° | \(\pi/2\) | 0.0000 | 正交(垂直) |
| 120° | \(2\pi/3\) | −0.5000 | 鈍角 |
| 135° | \(3\pi/4\) | −0.7071 | 鈍角 |
| 150° | \(5\pi/6\) | −0.8660 | 鈍角 |
| 180° | \(\pi\) | −1.0000 | 反平行(相反) |
若要將 60° 這樣的十進制度數結果轉換為度、分和秒,您可以使用60° 轉換。
常見問題
可以用在 2D 向量嗎?可以——把 z 分量留為 0,公式就會自動簡化成 2D 的情況。
為什麼夾角不會超過 180°?反餘弦函數的值域為 0 到 \(\pi\)(180°),代表的是兩個方向之間最小的夾角,與向量的指向無關。
如果其中一個向量是零向量呢?零向量沒有方向,因此夾角無法定義;為了避免除以零,當任一向量長度為 0 時,本計算器會回傳 0°。