ベクトル射影計算機

ベクトル射影計算機

成分をカンマ、スペース、セミコロンで区切って入力してください。小数点にはピリオドを使います。

ベクトル a のベクトル b への射影とは、a のうち b の向きに沿った部分のことで、b を通る直線に a が落とす影にあたります。2つのベクトルの成分を入力すると、射影ベクトル、スカラー射影、残りの直交成分、内積、2つのベクトルのなす角を計算します。2次元、3次元、最大20成分までの任意の次元に対応しています。b がゼロベクトルの場合は、射影先となる向きがないため、その旨をお知らせします。

ベクトルを別のベクトルに射影する手順

  1. 1

    ベクトル a を入力します

    射影したいベクトルの成分を、カンマ、スペース、セミコロンのいずれかで区切って入力します。例:3, 4 や 1, 2, 3。小数点にはドットを使ってください。

  2. 2

    ベクトル b を入力します

    射影先の向きを決めるベクトルを入力します。成分の数は a と同じにする必要があり、すべてゼロにはできません。

  3. 3

    射影の結果を確認します

    結果ページには、a の b への射影、スカラー射影、直交成分、なす角、内積、射影の長さが表示されます。射影ベクトルはコピーできます。

ベクトル射影の公式

ベクトル a のベクトル b への射影は次の式で表されます。

proj_b(a) = (a · b / |b|²) b

ここで a · b は内積、|b|² は b 自身との内積です。分数の部分は b にかける1つの数なので、射影は必ず b を通る直線上にあります。この分数が負のときは、射影は b と逆向きになります。これは2つのベクトルのなす角が90度より大きい場合に起こります。

計算機が返す値

結果 公式 意味
射影 (a · b / |b|²) b a の b 方向の成分をベクトルで表したもの
スカラー射影 a · b / |b| その成分の符号付きの長さ
直交成分 a - proj_b(a) a のうち b に垂直な残りの部分
なす角 arccos(a · b / (|a| |b|)) 0度から180度の間の値
射影の長さ |a · b| / |b| 符号を除いたスカラー射影

射影と直交成分を足すと元の a に戻ります。これが分解の要点で、a は b に沿った部分と、b に直角な部分の2つに分かれます。

計算例

a b 射影 スカラー射影 なす角
(3, 4) (5, 0) (3, 0) 3 53.130102°
(2, 3) (0, 5) (0, 3) 3 33.690068°
(1, 0) (-2, 0) (1, 0) -1 180°
(1, 0) (0, 1) (0, 0) 0 90°
(1, 2, 3) (4, -5, 6) (0.623377, -0.779221, 0.935065) 1.367527 68.562447°

1行目では、a · b = 3 × 5 + 4 × 0 = 15、|b|² = 25 なので係数は 0.6 となり、射影は 0.6 × (5, 0) = (3, 0) です。直交成分は (3, 4) - (3, 0) = (0, 4) で、(5, 0) と垂直になっています。

スカラー射影とベクトル射影の違い

スカラー射影は符号付きの1つの数で、ベクトル射影はその数に b の単位ベクトルをかけたものです。教科書によっては、スカラー射影を「a の b 方向の成分」と呼ぶこともあります。また「射影」という語でスカラーのほうを指す本もあるため、答えを写す前に、授業や教科書がどちらを意味しているか確認してください。

よくある間違い

  • 射影先のベクトルを取り違える。一般に proj_b(a) と proj_a(b) は別のベクトルです。
  • 次元をそろえていない。2つのベクトルは成分の数が同じでなければなりません。
  • b = (0, 0) を使う。公式は |b|² で割るため、ゼロベクトルには射影がありません。
  • 符号を見落とす。スカラー射影が負なら、a は b から離れる向きに傾いています。

よくある質問

数値の代わりにエラーが表示されます。射影は b の長さの2乗で割る計算ですが、ゼロベクトルの長さは0なので、射影先となる向きがありません。少なくとも1つはゼロでない成分を持つ b を入力し直してください。

はい。射影と直交成分はどちらもゼロベクトルになり、スカラー射影は0です。なす角は「定義なし」と表示されます。角度を決めるには、向きを持つ2つのベクトルが必要だからです。

1個から20個までです。2次元なら2つ、3次元なら3つ、それ以上の次元ならさらに多くの数を入力します。ベクトル a と b の成分数は同じでなければならず、違う場合は修正を促すメッセージが表示されます。

成分はカンマ、スペース、セミコロンのいずれかで区切り、小数点にはドットを使います。かっこは無視されるので、3, 4 でも (3; 4) でも入力できます。1.5e-3 のような指数表記も使えます。

a と b のなす角が90度より大きく、a が部分的に b と逆を向いているためです。このとき、ベクトル射影は b と反対向きになり、内積も負になります。

はい。直交成分は a から射影を引いたもので、b との内積は丸め誤差を除いて0になります。結果は小数第6位まで表示するため、53.130102度のように厳密な値は丸められています。

射影は a を b を通る直線の上に落とします。反射は a をその直線に対して折り返したもので、射影の2倍から a を引いたものに等しくなります。この計算機は射影と直交成分を返すので、反射は手計算でそこから求められます。

関連ツール

このツールは他の言語でも利用できます