ベクトル射影とは?
ベクトル a の b への射影とは、ベクトル a がベクトル b の定める直線上に落とす「影」のことです。その結果はそれ自体がベクトルであり、b と同じ(または反対の)向きを指します。これは「a のうち、どれだけが b の方向に沿っているか」という問いに答えるものです。物理学(力の分解)、コンピュータグラフィックス、機械学習、線形代数など、さまざまな分野で基礎となる演算です。
この計算ツールの使い方
ベクトル a と ベクトル b の各成分を入力してください。2次元ベクトルの場合は、z の欄を空白のままにすれば構いません(初期値は 0 になります)。「計算」をクリックすると、射影ベクトル全体、スカラー係数、2つの内積、そして射影の大きさ(長さ)がまとめて表示されます。
公式の解説
射影は次の式で計算されます。
$$\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の長さの2乗)で割って、スカラー係数を得ます。最後にそのスカラーを b の各成分に掛けてスケーリングします。なお b はゼロベクトルであってはいけません。bがゼロベクトルの場合は射影が定義できないため、結果は 0 を返します。
計算例
a = (4, 1)、b = (2, 3) としましょう。このとき \(\vec{a}\cdot\vec{b} = 4\cdot2 + 1\cdot3 = 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}|\) であり、1つの数値です。一方ベクトル射影(このツールで計算するもの)は、その値に b の単位ベクトルを掛けたもので、実際のベクトルになります。
射影が b と反対向きになることはありますか? はい。a·b が負の場合、スカラー係数も負になり、射影ベクトルは b と反対の向きを指します。
3次元でも使えますか? はい。両方のベクトルの z 成分を入力するだけです。2次元の問題では z を空白のままにしてください。