1 概要
グラム・シュミットの正規直交化は、一次独立なベクトルの集まりから、同じ張る空間を保ったまま、互いに直交し長さが1のベクトル列を作る手続きである。線形代数では基底の扱いを整え、数値計算では近似の安定化に役立つ。特に、内積をもつ空間で、ベクトル間の重なりを順に取り除き、最後に各成分を正規化する構成が本質となる。
1.1 定義
この方法では、与えられた一次独立なベクトル列から、新しいベクトルを順番に作る。各段階で、すでに得られている直交ベクトルへの射影を引き去り、その後に長さを1へ調整する。結果として得られる列は正規直交系となり、元の列と同じ部分空間を張る。
1.2 目的
主な目的は、扱いにくい基底を計算しやすい形へ整えることである。直交していると、係数の計算や距離の評価が簡単になり、理論面でも式の見通しがよくなる。さらに、最小二乗法や行列分解などでは、基底の形が計算精度に大きく影響するため、この変換が重要になる。
1.3 適用される空間
典型的には、実数または複素数の内積空間で用いられる。有限次元のユークリッド空間だけでなく、関数空間のような無限次元の設定でも、条件が整えば同様の考え方が成り立つ。内積が定義されていることが、直交化の前提となる。
2 数学的背景
2.1 内積空間
内積空間とは、2つのベクトルから実数または複素数を返す内積が定義された線形空間である。内積は長さや角度に相当する概念を与え、直交や射影の定式化を可能にする。グラム・シュミット法は、この構造を直接利用している。
2.2 直交と正規化
直交とは、2つのベクトルの内積が0である状態を指す。正規化は、非零ベクトルをその長さで割り、ノルムを1にする操作である。両者を組み合わせることで、互いに独立した方向を標準化された形で表せる。
2.3 一次独立性
一次独立なベクトル列では、どのベクトルも他のベクトルの線形結合では表せない。グラム・シュミット法は、この性質を失わずに直交系へ変換する。一次独立でなければ、途中で零ベクトルが現れ、手続きはそのままでは進められない。
2.4 基底との関係
ベクトル空間の基底は、その空間のすべての要素を表すための最小限の生成系である。正規直交基底は、基底の中でも特に扱いやすい形式であり、係数の抽出が容易になる。グラム・シュミット法は、任意の基底を正規直交基底へ変える代表的な方法として位置づけられる。
3 アルゴリズムの仕組み
3.1 射影による成分の除去
新しいベクトルを作る際には、既に確定した直交ベクトルの方向成分を順に取り除く。これにより、次のベクトルは先行するものすべてと直交する。射影は、対象ベクトルに含まれる「既知の方向」を定量的に分離する役割を持つ。
3.2 直交化の手順
最初のベクトルをそのまま用い、以後のベクトルについては、前に得た各直交ベクトルへの射影を引く。こうして得られた残差が新しい直交成分になる。これを順番に繰り返すことで、全体として直交系が構成される。
3.3 正規化の手順
直交化された各ベクトルは、長さがまちまちであるため、最後にノルムで割って正規化する。これにより、すべてのベクトルの長さが1となる。正規化後は、直交性と単位長を同時に満たす正規直交系が完成する。
3.4 計算式
典型的には、第k番目のベクトルは、元のベクトルから先行する正規直交ベクトルへの射影を差し引いて求める。記号で書けば、残差ベクトルは元のベクトルから、各先行ベクトルとの内積を係数とする和を引いたものになる。その後、残差をそのノルムで割って単位長にする。
4 性質
4.1 張る空間の保存
変換の前後で、得られるベクトル列が生成する部分空間は一致する。元の列の各ベクトルは、新しい直交系の線形結合で表される。したがって、空間そのものを変えずに、表現だけを整理する操作とみなせる。
4.2 直交性の保証
手順の各段階で、先行するベクトルへの成分を完全に除くため、理想的な数学的環境では互いの内積が0になる。これにより、後続の計算で干渉項が現れにくくなる。直交性は、この方法の中心的な特徴である。
4.3 正規直交系の生成
最終的な出力は、互いに直交し、しかも各ベクトルの長さが1の系である。こうした系は、座標表示や展開係数の計算に適している。特に、長さ1であるため、内積がそのまま係数抽出に結びつく。
4.4 一意性と符号
生成される正規直交系は、各段階で向きの取り方に自由度があるため、完全に一意ではない。個々のベクトルは符号を反転しても性質を保つ。したがって、結果は通常、符号の違いを除いて同等とみなされる。
5 例
5.1 二次元空間での例
平面上で2本の一次独立なベクトルがあるとする。1本目を基準にし、2本目から1本目への射影を差し引けば、残りは前者と直交する。最後に両者を正規化すると、平面の正規直交基底が得られる。
5.2 三次元空間での例
3本の一次独立なベクトルに対しては、1本目を保持し、2本目は1本目の成分を除去する。3本目は、1本目と2本目の両方への射影を取り去る。こうして3方向が互いに直交するように整えられ、空間全体を表す規格化された基底が得られる。
5.3 行列表示による例
複数のベクトルを列にもつ行列に対して、この手続きは列空間の整理として理解できる。出力された正規直交列を並べると、元の行列は別の上三角型の係数行列と組み合わされる。これにより、分解表示の一部としても解釈できる。
6 応用
6.1 最小二乗法
最小二乗法では、観測値に最もよく合う近似を求める際、正規直交基底が有利に働く。直交していると、誤差の分解や係数決定が明快になる。結果として、近似解の導出が簡潔になり、数式の扱いも安定する。
6.2 行列分解
この方法は、行列の分解、とくにQR分解の構成に使われる。列ベクトルを正規直交化してQを作り、残りを上三角成分としてまとめる。線形方程式の解法や固有値計算の前処理にもつながる。
6.3 数値計算
数値計算では、基底の向きが悪いと誤差が増幅しやすい。グラム・シュミット法は、列の相関を減らし、計算を整理することで安定性を高める。特に反復的な手続きや大規模な線形問題で有用である。
6.4 関数空間への応用
関数の集まりに内積が定義される場合、この考え方はそのまま拡張できる。多項式系やフーリエ解析の文脈では、直交関数系の構成に近い役割を果たす。理論的には、関数を「ベクトル」と見なすことで、同様の整理が可能になる。
7 計算上の注意
7.1 数値誤差
実際の計算では、丸め誤差のために理論上の直交性が完全には保たれない。特に、互いにほぼ平行なベクトルが多いと、差を取った結果が不安定になりやすい。誤差は段階的に蓄積するため、検算が重要である。
7.2 逐次計算の不安定性
古典的な逐次手順では、先に得たベクトルの誤差が後続の段階へ伝わる。これにより、出力の直交性が徐々に崩れることがある。理論的には簡潔でも、実装では注意深い処理が必要となる。
7.3 修正版グラム・シュミット法
修正版では、直交化の補正を追加し、失われた直交性を回復しやすくする。しばしば同じ射影除去を複数回行い、誤差の影響を抑える。古典版よりも数値安定性が高いとされる。
7.4 実装上の工夫
実装では、内積の順序、正規化のタイミング、ゼロに近い量の扱いが重要である。ベクトルの並べ替えや停止条件の設定も精度に関わる。高速化と安定性の両立が、実務上の設計課題となる。
8 関連する概念
8.1 シュール分解との関係
シュール分解は、正方行列を上三角行列とユニタリ行列の積に分ける方法である。正規直交化は、そのような分解を支える基本技法の一つとして現れる。行列の逐次的な直交化という点で、考え方に近い部分がある。
8.2 直交射影
直交射影は、ある部分空間への最も近い近似を与える操作である。グラム・シュミット法では、各段階でこの射影を用いて不要な成分を取り除く。したがって、射影の理解は手続き全体の核心にある。
8.3 直交補空間
直交補空間は、ある部分空間に属するすべてのベクトルと直交するベクトル全体からなる。正規直交化では、既存の方向の補集合を順次取り出すように見なせる。空間の分解を考えるうえで、重要な補助概念である。
8.4 直交基底
直交基底は、互いに直交する基底であり、正規直交基底はその各ベクトルの長さが1である場合をいう。座標計算、距離の評価、展開の簡略化に広く使われる。グラム・シュミット法は、この基底を構成する標準的な方法として知られる。