内積計算ツール

内積
次へ

内積は、2つのベクトルがどの程度同じ方向を向いているかを表す1つのスカラー値に変換します。この値は、検索結果のランキングにおけるコサイン類似度、物理学における射影、そしてコンピューターグラフィックスのあらゆる照明計算の基盤となっています。このツールは、次元が一致する2つのベクトル(2次元、3次元、N次元)の内積を計算し、両者のなす角度のコサインを表示します。

内積を計算する方法

  1. 1

    2つのベクトルを入力する

    成分をカンマまたはスペースで区切って入力します。一方のベクトルに`3, 4, 5`、もう一方に`1, 2, 1`のように入力してください。

  2. 2

    次元を一致させる

    ベクトルは同じ長さでなければなりません。次元が一致しない場合、ツールは計算前にエラーを表示します。

  3. 3

    結果を確認する

    スカラーの内積が、両者のなす角度のコサイン(cos θ)と角度そのもの(度数)とともに表示されます。

2つの公式

ベクトルa = (a1, a2, ..., an)b = (b1, b2, ..., bn)に対する成分表示

a . b = a1*b1 + a2*b2 + ... + an*bn

幾何学的表示:

a . b = |a| * |b| * cos(theta)

この2つの式は等しく、両者を等号で結ぶとコサイン類似度の公式cos(theta) = (a.b) / (|a| |b|)が得られます。

符号が示す意味

内積 意味
2つのベクトルはほぼ同じ方向を向いている(角度 < 90°)
0 2つのベクトルは直交している(垂直)
2つのベクトルはほぼ反対の方向を向いている(角度 > 90°)

計算例

a = (3, 4)b = (1, 2) の場合:

  • 成分ごとの積:3×1 + 4×2 = 3 + 8 = 11
  • |a| = √(9 + 16) = 5
  • |b| = √(1 + 4) = √5 ≈ 2.236
  • cos(θ) = 11 / (5 × 2.236) = 0.9839
  • θ = arccos(0.9839) ≈ 10.3度

2つのベクトルがほぼ同じ方向を向いているため、内積は大きな正の値になります。

よくある応用

  • コサイン類似度(レコメンドシステム):2つの埋め込みベクトルがどれだけ似ているか?
  • 射影:あるベクトルを別のベクトルに射影する:proj_b(a) = (a . b) / |b|^2 * b
  • 物理学における仕事W = F . d、力と変位の内積。
  • グラフィックスの照明:面法線と光の方向の内積が拡散反射の明るさを与える(ランバートの法則)。
  • 直交性のチェック:2つの基底ベクトルが垂直かどうかを素早く確認する。

コツ

  • 比較の前に正規化する。 方向(類似度)だけに関心がある場合は、まず各ベクトルをその大きさで割ります。そうすると内積は直接コサインの値に等しくなります。
  • 次元に注意する。 3次元ベクトルと4次元ベクトルの内積は定義されません。うっかりではなく、意図的にパディングまたは切り詰めを行ってください。
  • 数値的な安定性。 非常に大きなベクトルでは、浮動小数点の累積によって精度が失われることがあります。次元が数千を超える場合は、倍精度またはカハンの加算法を使用してください。

よくある質問

内積はスカラー値を返し、2つのベクトルが「どれだけ平行か」を測ります。外積(3次元と7次元でのみ定義される)は両方のベクトルに垂直なベクトルを返し、「どれだけ垂直か」を測ります。両者は正反対の問いに答えます。

はい、任意の次元Nで定義できます。成分ごとの定義はそのまま拡張でき、数百から数千の次元を持つベクトルを扱う機械学習で日常的に使われています。

幾何学的表示|a| |b| cos(theta)は、cosが0のとき、すなわち90度と270度のときに0になるからです。0でない2つのベクトルは、内積がちょうど0のときに直交します。

入力したベクトルの成分は、計算が行われるサーバーへ送信されます。保存されることはなく、アカウントと関連付けられることもありません。

関連ツール

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