線形代数における「直交」

線形代数の基礎
No.160
数学

日付:2025年2月16日

線形代数における直交の概念を解説し、ベクトルの直交性の数学的定義、具体例、Pythonを用いた確認方法を紹介します。

はじめに

直交(orthogonality) とは、線形代数において2 つのベクトルが直角(90 度)に交わる関係を指します。

数学的には、ベクトル a\mathbf{a}b\mathbf{b} が直交するとは、

ab=0\mathbf{a} \cdot \mathbf{b} = 0

が成り立つことを意味します。
ここで、\cdotドット積(内積) を表します。

本記事では、

  • 直交の数学的定義
  • 具体例と直交ベクトルの性質
  • Python での直交性の確認
    を詳しく解説します。

1. 直交の数学的定義

2 つのベクトル a\mathbf{a}b\mathbf{b} の内積は次の式で定義されます:

ab=abcosθ\mathbf{a} \cdot \mathbf{b} = | \mathbf{a} | | \mathbf{b} | \cos\theta

ここで、

  • a| \mathbf{a} |ベクトル a\mathbf{a} の大きさ(ノルム)
  • b| \mathbf{b} |ベクトル b\mathbf{b} の大きさ(ノルム)
  • θ\thetaa\mathbf{a}b\mathbf{b} のなす角

もし ab=0\mathbf{a} \cdot \mathbf{b} = 0 ならば、

cosθ=0θ=90\cos\theta = 0 \Rightarrow \theta = 90^\circ

よって、2 つのベクトルは直交している ことになります。

2. 直交の具体例

(1) 2 次元空間での直交ベクトル

次の 2 つのベクトルを考えます:

a=[12],b=[21]\mathbf{a} = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix} -2 \\ 1 \end{bmatrix}

内積を計算すると、

ab=(1×2)+(2×1)=2+2=0\mathbf{a} \cdot \mathbf{b} = (1 \times -2) + (2 \times 1) = -2 + 2 = 0

したがって、この 2 つのベクトルは直交しています。

(2) 3 次元空間での直交ベクトル

次のベクトルを考えます:

a=[101],b=[010]\mathbf{a} = \begin{bmatrix} 1 \\ 0 \\ -1 \end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}

内積を計算すると、

ab=(1×0)+(0×1)+(1×0)=0\mathbf{a} \cdot \mathbf{b} = (1 \times 0) + (0 \times 1) + (-1 \times 0) = 0

したがって、この 2 つのベクトルも直交しています。

3. 直交ベクトルの性質

直交ベクトルは線形独立
直交するベクトルは、互いに線形独立であるため、ベクトル空間の基底としてよく使われます。

直交行列(orthogonal matrix)
行列の列ベクトルがすべて直交している場合、その行列を 直交行列 と呼びます。

正規直交(orthonormal)
直交するベクトルが 単位ベクトル(長さ 1) なら、それらは 正規直交 であるといいます。

直交補空間(orthogonal complement)
あるベクトル空間に対して、その空間と直交するベクトル全体の集合を 直交補空間 といいます。

4. Python で直交を確認する

(1) 2D ベクトルの直交性チェック

PYTHON
import numpy as np # 2つのベクトル a = np.array([1, 2]) b = np.array([-2, 1]) # 内積を計算 dot_product = np.dot(a, b) print("ベクトル a:", a) print("ベクトル b:", b) print("内積:", dot_product) # 直交しているか確認 if dot_product == 0: print("ベクトル a と b は直交しています!") else: print("ベクトル a と b は直交していません。")

出力結果

ベクトル a: [1 2] ベクトル b: [-2 1] 内積: 0 ベクトル a と b は直交しています!

5. まとめ

  • 直交とは、2 つのベクトルが直角(90 度)の関係にあること
  • ベクトルの内積が 0 なら直交するab=0\mathbf{a} \cdot \mathbf{b} = 0
  • 直交ベクトルは線形独立であり、基底としてよく使われる
  • Python で簡単に直交性を確認できる

直交の概念は、線形代数・データ分析・機械学習・コンピュータグラフィックス など、多くの分野で活用されます。