ベクトル間の角度計算機
2次元・3次元ベクトルの成分から、ベクトルのなす角を数学的に算出します。
計算結果
ベクトル間の角度:線形代数からデータサイエンスへの架け橋
「ベクトル」という言葉を聞いて、矢印が並んだ数学の教科書を思い浮かべる人も多いでしょう。しかし、現代社会においてベクトル間の角度を計算することは、スマートフォンの向きの検知、ゲーム内での光の反射、検索エンジンの類似度判定など、私たちのデジタル体験の根幹を支える極めて実用的な技術です。本記事では、ベクトル間の角度を求める数学的定義、内積(ドット積)の役割、そして実社会での驚くべき応用例について、1000文字を超える詳細な解説をお届けします。
1. ベクトルとなす角の定義
ベクトルとは、大きさと方向を持つ量です。2つのベクトル $\vec{A}$ と $\vec{B}$ があるとき、それらの始点を合わせた際に作られる角度 $\theta$ を「ベクトルのなす角」と呼びます。通常、この角度は $0^\circ$ から $180^\circ$ ($0$ から $\pi$ ラジアン) の範囲で定義されます。この角度を知ることは、2つの方向がどれくらい「同じ向きに近いか」、あるいは「全く逆か」、あるいは「無関係(直交)か」を客観的に数値化することを意味します。
2. 内積(ドット積)という魔法の道具
ベクトルのなす角を求める際に最も重要なのが「内積」という演算です。ベクトルの各成分($x, y, z$)同士を掛け合わせて合計するこの操作は、幾何学的には以下の関係式で表されます:
$\vec{A} \cdot \vec{B} = |\vec{A}| |\vec{B}| \cos \theta$
ここから、$\theta$ を求めるための逆演算ができるようになります。
$\cos \theta = \frac{\vec{A} \cdot \vec{B}}{|\vec{A}| |\vec{B}|}$
この式の右辺を計算し、その結果に対してアークコサイン($\arccos$)を適用することで、角度 $\theta$ が得られます。
3. 3次元空間での拡張
この計算原理は、2次元平面($x, y$)でも3次元空間($x, y, z$)でも、あるいはそれ以上の多次元空間でも全く同じように機能します。3次元ベクトルの場合、内積は $A_x B_x + A_y B_y + A_z B_z$ となり、ベクトルの大きさは $\sqrt{A_x^2 + A_y^2 + A_z^2}$ となります。当計算機では、Z成分を入力することで、物理学や3DCGで頻繁に登場する3空間での演算にも対応しています。
4. データサイエンスにおける「コサイン類似度」
興味深いことに、この「角度」の概念はビジネスやAIの分野でも多用されています。これを「コサイン類似度」と呼びます。
- おすすめ機能:ユーザーの嗜好をベクトル化し、商品ベクトルとのなす角を計算します。角度が小さい($\cos \theta$ が 1 に近い)ほど、その商品はユーザーの好みに近いと判断されます。
- 文書比較:膨大な単語の出現頻度をベクトルとして扱い、2つの記事が似ているかどうかを角度で判定します。内容が全く異なれば直交(90度)し、全く同じなら0度になります。
5. コンピュータグラフィックス(CG)と光
ゲームや映画の美麗なグラフィック制作においても、ベクトル演算は欠かせません。
- ライティング:光源からの光の方向ベクトルと、物体の表面の向き(法線ベクトル)のなす角を計算します。角度が小さいほど面は明るく照らされ、角度が大きくなるにつれて影が濃くなります。
- 視界判定:敵キャラクターの視線ベクトルと、プレイヤーの位置ベクトルのなす角を計算し、「視界に入っているか」を瞬時に判定します。
6. まとめ:抽象的な概念が広げる可能性
ベクトル間の角度計算は、一見すると抽象的な数学の一分野に過ぎないかもしれません。しかし、その背後にあるコサインの性質や内積の効率的な演算は、現代の高度なテクノロジーを支える強力なエンジンとなっています。当ツールが、皆さんの数学的な洞察力や実務の効率化に貢献できれば幸いです。複雑な空間把握を、数式の力で解き明かしていきましょう。