MCPで接続 →

計算を入力してください

Leave the z components blank for 2D vectors. This computes the projection of a onto b.

公式

広告

結果

a の b への射影
(3, 0, 0)
proj_b(a)
スカラー係数 (a·b)/(b·b) 3
内積 a·b 3
内積 b·b 1
射影の大きさ 3

ベクトル射影とは?

ベクトル ab への射影とは、ベクトル a がベクトル b の定める直線上に落とす「影」のことです。その結果はそれ自体がベクトルであり、b と同じ(または反対の)向きを指します。これは「a のうち、どれだけが b の方向に沿っているか」という問いに答えるものです。物理学(力の分解)、コンピュータグラフィックス、機械学習、線形代数など、さまざまな分野で基礎となる演算です。

ベクトル a、ベクトル b、垂線を下ろした b への a の射影を示す図
b への a の射影は、b の方向に沿った a の影です。

この計算ツールの使い方

ベクトル 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 を返します。

広告
b 方向のスカラー長さに b の方向を掛ける、射影公式の幾何学的な分解図
スカラー係数 (a·b)/(b·b) がベクトル b をスケーリングして射影ベクトルを与えます。

計算例

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 を空白のままにしてください。

最終更新: