ベクトル計算機

内積、外積、射影、なす角といったベクトル演算を計算・可視化します。

インタラクティブシミュレーションを読み込んでいます...

レッスン

理論 — ベクトル計算機

2つのベクトルの内積は、一見まったく異なる2つの方法で表すことができます。対応する成分どうしを掛け合わせて足す方法と、2つのベクトルの長さとなす角のコサインを掛け合わせる方法です。これらは常に一致し、この一致こそが内積の真価です — つまり幾何学を計算に変換してくれるのです。

各記号の意味

A · B
内積:ベクトルではなく単一の数。デフォルト値では2·−1 + 1·2 = 0となります。
|A|
三平方の定理から求めたベクトルの長さ(大きさ):√(2² + 1²) = 2.2361
θ
2つのベクトルのなす。このページではラジアンと度の両方で表示されます — デフォルト値では1.5708 rad = 90°
comp
スカラー射影 — 一方のベクトルが他方のベクトルの方向にどれだけ伸びているかを表します。内積を、射影先のベクトルの長さで割った値です。

公式の導き方

  1. AB、およびそれらの終点を結ぶベクトルA − Bが作る三角形を考えます。余弦定理により、その各辺は|A − B|² = |A|² + |B|² − 2|A||B|cos θという関係で結ばれます。
  2. 次に、同じ|A − B|²を成分ごとに展開します。2乗の各項を整理すると|A|²|B|²になり、残るのは−2(AxBx + AyBy)となります。
  3. 2つの式を等しいとおくと|A|²|B|²が相殺され、AxBx + AyBy = |A||B|cos θが残ります。これに変形を加えると、まさにこのページにある角度の公式θ = arccos(A·B / (|A||B|))となります。

表示の読み方

各行には答えだけでなく代入の過程も表示されます。内積はA·B = AxBx + AyBy = 2·−1 + 1·2 = 0、両ベクトルの長さは三平方の定理より求まり、角度はarccos(0) = 1.5708 rad = 90°と表されます。両方のz入力欄を0のままにしておくとベクトルは2成分の列として表示され、いずれか一方にzを指定すると表示が3次元になります。

前提
互いに直交し、同じ単位を持つ軸によるデカルト座標系を前提としています。上記の公式はこの場合に対応するものであり、地図投影法や、座標軸が直角で交わらない座標系では、成分ごとの計算手順はもはや内積とは一致しなくなります。
成り立たない場合
内積がちょうど0になることは直交を意味しますが、これはどれほど長くてもあらゆる直交ベクトルのペアに対して成立するため、大きさについては何もわかりません。また、得られる角度は常に0°から180°の間の符号なしの角度です。ABを入れ替えても同じ答えが得られるため、内積単体ではどちらの向きに回転したかを知ることはできません。

どちらの積もゼロで答えるが、そのゼロは正反対の意味を持つ 🖖

はじめの二つのプリセットは、同じ発見を両側から見たものです。perp2d では内積がちょうど 0、外積は 1。parallel では外積がちょうど 0、内積は 26 です。つまり内積が消えることは直交を意味し、外積が消えることは一直線上に並ぶことを意味します。二つの判定は入れ替え可能ではなく、互いを補うものです。張る面積の行が後者を具体にします。平行なベクトルは何も囲まず、area の 3 × 4 の組はちょうど 12 を囲みます。

2つの積、まったく異なる答え 🖖

このツールはベクトルの2通りの掛け算を計算します。内積は2つのベクトルがどれだけ同じ向きを指すかを表す1つの数を返し、0なら互いに垂直です。外積(3D)は両方に直交するまったく新しいベクトルを返し、その長さは2つのベクトルが張る平行四辺形の面積に等しくなります。角度は内積を変形すれば求められます: cos θ = (a·b)/(|a| |b|)

外積は3Dと7Dにしか存在しない 🖖

内積は何次元でも定義できますが、2つのベクトルから両方に直交する1つのベクトルを生む本物の外積は、3次元と7次元にしか存在しません。この不思議な性質は、実数と複素数の先にある唯一のノルム多元体である四元数と八元数の代数に直結しています。つまり、おなじみの3次元の外積は、見た目ほど普遍的ではないのです。

全プロセスの詳細解説

  1. A = (2, 1) と B = (−1, 2) の張る面積 6 ステップ

    A = (2, 1) かつ B = (−1, 2) である。内積はゼロであり、張られる面積は 5 である。これら2つの事実が同じ事実であることを示せ。

    1. 2つのベクトルがあり、内積は各成分の積の和である。結果はゼロになり、この時点で幾何学的な結論が得られている。

    2. 両ベクトルの長さは等しく、それらが等しい理由はステップ5で明らかになる。

    3. なす角のコサインは、内積を長さの積で割ったものである。ゼロをどのような値で割ってもゼロであり、ゼロのアークコサインは直角である。

    4. 張られる面積は行列式であり、垂直なベクトルにおいては単に長さの積、すなわち √5 × √5 となる。

    5. 長さが一致した理由はここにある。1/4回転の回転は座標を入れ替えて一方の符号を反転させるため、これを A に適用すると正確に B が得られる。

    6. 射影によってもう一方の側面からも確認できる。A の成分は B の方向に一切存在しないため、射影を引いても A は変化しない。

    解答

    B は A を1/4回転させたものだからである。回転 (x, y) → (−y, x) によって (2, 1) は正確に (−1, 2) に移され、これによりなす角は 90° に固定され、内積はゼロになる。またこの回転は長さを保存するため、両ベクトルの長さはともに √5 であり、それらが張る平行四辺形は1辺の長さが √5 の正方形(面積 5。これはパネルに表示されている値である)となる。内積と外積は1つの積の2つの側面(|A||B| cos θ と |A||B| sin θ)である。90° のとき前者はゼロになり後者が全体を占め、B への A の射影はゼロベクトルとなる。つまり A は B の方向に成分を全く持たない。いずれかのベクトルを数度回転させると両方の数値が変化するが、それぞれの自乗の和は常に |A|²|B|² = 25 を保つ。

  2. 内積32と大きさ7.3485の外積 6 ステップ

    A = (1, 2, 3), B = (4, 5, 6)。パネルには内積 32 と外積の大きさ 7.3485 が表示されている。これら2つの数値が独立ではないことを示せ。これは3Dのなす角の状態である。

    1. 定義から直接得られる内積と両ベクトルの長さである。どちらの平方根もきりの良い値にはならず、これは3次元では極めて一般的である。

    2. 次になす角を求める。12.9° ではこれら2つのベクトルはほぼ平行であり、次のステップへ進む前に注目すべき点である。すなわち外積の大きさは小さくなる。

    3. 外積は最上行に単位ベクトルを配置した 3×3 の行列式である。その大きさは平行四辺形の面積に等しい。

    4. ここで2つの積を合わせる。それぞれを自乗して足し合わせ、長さの自乗の積と比較する。

    5. この恒等式の両辺を |A|²|B|² で割ると三角関数の関係が現れる。これは最初に用いた座標系における同じ恒等式である。

    6. もう1行計算することで、外積がその定義通りの働きをしていることが確認できる。すなわち A に直交し、対称性により B にも直交する。

    解答

    32² + 7.3485² = 1078 = 14 × 77 = |A|²|B|² である。これはラグランジュの恒等式であり、姿を変えたピタゴラスの定理にほかならない。全体を |A|²|B|² で割ると cos²θ + sin²θ = 1 となる。したがって、内積と外積は2つの別個のものを個別に測定したものではなく、同じ直角三角形の隣辺と対辺であり、2つのベクトルの長さと一方の積の値を知れば、符号を除いて他方が決定される。実践上の重要な帰結として、なす角が 0° 付近または 180° 付近のとき、内積だけから角を計算すべきではない。そこではコサインの変化が緩やかであり、サインの変化が急峻な外積を用いる方が数値計算上優れているからである。

学習の道すじ

データへの直線あてはめ

この次に 最小二乗法の幾何学 内積、そしてそれに伴う射影(あるベクトルが別のベクトルの方向にどれだけ伸びているか)の考え方。最小二乗法とは、この考え方を点群全体に一度に適用したものです。

参考文献 (1)
  • The dot product from both directions, and why the two definitions agree: G. Strang, Introduction to Linear Algebra, 5th ed. Wellesley-Cambridge Press, 2016. ISBN 978-0-9802327-7-6.

例題

  • 垂直 - 垂直
  • 平行 - (2, 3) と (4, 6)。二つ目は一つ目の2倍です。外積はちょうど0になり、内積は26。垂直の場合とは正反対の結果です。
  • 3Dの角度 - 3次元の角度
  • 面積 - x軸上の長さ3のベクトルと、y軸上の長さ4のベクトル。外積の大きさはちょうど12になります。これが二つのベクトルの張る長方形です。外積の長さは面積を表しているのですね。