内積空間とグラム・シュミット直交化:長さと角度を線形代数に持ち込む
Prerequisite:対角化とジョルダン標準形:変換が一番簡単に見える座標を探す
This content is not available in your language yet.
0. この記事の要点
Section titled “0. この記事の要点”- ベクトル空間の公理には「長さ」も「角度」も入っていません。それらを追加で与える構造が内積であり、内積を持つベクトル空間を内積空間と呼びます。
- 内積さえあれば、ノルム と、コーシー・シュワルツの不等式を経由して角度 が定義できます。三角不等式もピタゴラスの定理も、そこから証明される定理になります。
- 正規直交基底を使うと、ベクトルの座標が と内積だけで書けます。連立一次方程式を解く必要がなくなり、内積とノルムの計算が座標の言葉に翻訳されます。
- グラム・シュミットの直交化は、任意の一次独立系から、各段階での張る空間を保ったまま正規直交系を作る手続きです。結果として、有限次元の内積空間には必ず正規直交基底が存在します。行列の言葉では 分解にあたります。
- 有限次元部分空間 に対して が成り立ち、直交射影 は の中で に最も近い点を与えます。最小二乗法も主成分分析も、この一つの定理の応用です。
1. 動機 — ベクトル空間には、まだ「ものさし」がない
Section titled “1. 動機 — ベクトル空間には、まだ「ものさし」がない”ベクトル空間と線形変換 で見たとおり、ベクトル空間の公理(Definition 3.1[Vector Spaces and Linear Maps])に登場する演算は和とスカラー倍だけです。この二つからは、一次独立・基底・次元・部分空間・線形写像といった概念がすべて出てきます。しかしそこには、高校で扱った「ベクトルの大きさ」や「なす角」は一度も現れていません。
これは欠陥ではなく、意図的な設計です。公理を弱くしておけば、多項式の空間・数列の空間・行列の空間・関数の空間といった、見た目のまったく違う対象を同じ言葉で扱えます。その代償として、公理だけでは次のような問いに答えられません。
- 2 本のベクトルが「垂直」とはどういうことか。
- 与えられた部分空間 の中で、点 に最も近い点はどれか。
- ある基底が「使いやすい」とはどういうことか。
3 つ目の問いは、直前の章と直結しています。対角化とジョルダン標準形 では、線形変換を対角行列で表す基底を探しました。対角化できる場合でも、得られる固有ベクトルの基底は一般には「斜め」で、基底ベクトル同士の角度もばらばらです。基底が直交していれば、座標を求める計算も、逆行列の計算も劇的に簡単になります。実対称行列がいつでも直交する固有ベクトルの基底を持つ、というのが次章の スペクトル定理(Corollary 4.3[スペクトル定理])ですが、そこへ進むには、まず「直交」という言葉を定義しなければなりません。
歴史的には、内積は のベクトル解析(ギブス、ヘヴィサイド)で「仕事 」を表す道具として定着し、その後、フーリエ級数と積分方程式の研究を通じて関数の空間へ持ち込まれました。この記事の主役である直交化の手続きは、グラム(1883 年、最小二乗法の研究)とシュミット(1907 年、積分方程式論の研究)の名前で呼ばれますが、同じ計算はそれ以前のラプラスやコーシーの仕事にも現れています。名前よりも重要なのは、有限次元でも無限次元でも、内積さえあれば同じ手続きが動くという一般性です。
flowchart LR A["内積 ⟨x, y⟩"] --> B["ノルム ‖x‖<br/>長さ・距離"] A --> C["直交性 ⟨x,y⟩ = 0<br/>角度"] B --> D["正規直交基底"] C --> D D --> E["直交射影<br/>最良近似・最小二乗法"] D --> F["直交行列・QR 分解<br/>スペクトル定理・主成分分析"]
2. 準備 — 記号と約束
Section titled “2. 準備 — 記号と約束”この記事を通じて は実数体 または複素数体 を表し、 は 上のベクトル空間とします。複素数 の複素共役を と書き、 のときは と読んでください。 や の元は列ベクトルとみなし、 のように書きます。行列 の転置を 、共役転置(随伴)を と書きます。
部分集合 が張る部分空間を と書きます。有限次元性・基底・次元(Definition 5.6[Vector Spaces and Linear Maps])については ベクトル空間と線形変換 の内容を仮定します。連立一次方程式の解空間や行列の階数(Definition 8.1[Matrices and Linear Systems])については 行列と連立一次方程式 を参照してください。
3. 内積の公理
Section titled “3. 内積の公理”まず「長さと角度を測る道具」が満たすべき性質を公理として書き下します。 の内積 から抽出したのが、次の 3 条件です。
Definition 3.1(内積空間)
を 上のベクトル空間とする。写像
が次の 3 条件を満たすとき、 を 上の内積といい、組 を内積空間という。
- (IP1)(第 1 変数についての線形性)任意の と に対して 。
- (IP2)(共役対称性)任意の に対して 。 のときはこれは対称性 を意味する。
- (IP3)(正定値性)任意の に対して であり、さらに となるのは のときに限る。
(IP3) の「」という不等式が意味を持つのは、(IP2) で とすると 、すなわち が実数だとわかるからです。公理の順序には理由があります。
第 2 変数については、線形ではなく共役線形になります。実際 (IP2) と (IP1) を続けて使うと
となります。 なら共役は何もしないので、実内積は両方の変数について線形(双線形)です。また (IP1) で とすれば が従います。
Example 3.2(標準内積)
に対し
と定める。(IP1) は和と定数倍が各項ごとに分配されることから、(IP2) は から従う。(IP3) については
であり、非負実数の和が になるのは各項が のとき、つまり全ての で 、すなわち のときに限る。 のときはよく知られた そのものである。
Example 3.3(正定値対称行列が定める内積)
とし、 に対して と定めると、これは 上の内積である。
(IP1) は行列とベクトルの積が線形であることから、(IP2) は と、 行列が転置で不変であることから
と従う。(IP3) は平方完成で確かめる。
であり、等号が成り立つのは かつ 、すなわち のときに限る。
一般に、実対称行列 が を満たすとき を正定値といい、このとき は内積になる。逆に 上の任意の内積はこの形に書ける(演習で扱う考え方を一般化すればよい)。正定値性が「 の固有値がすべて正」と同値であることは、スペクトル定理 の主軸定理(Theorem 6.3[スペクトル定理])で示します。統計学のマハラノビス距離は、共分散行列の逆行列を にとったこの内積から来る距離です。
Example 3.4(連続関数の空間の 内積)
閉区間 ()上の実数値連続関数全体 は 上のベクトル空間である。
と定めると、これは内積である。(IP1)(IP2) は積分の線形性と積の可換性から直ちに従う。(IP3) の非負性は である。
問題は「」で、ここで連続性が効きます。対偶を示す。 となる があるとすると、 に対し、 の での連続性から、ある が存在して かつ ならば となる。 は長さ の区間を含むので、 とあわせて
よって である。
Example 3.4 で連続性を落とし、たとえば「区分的に連続な関数」まで広げると (IP3) は壊れます。 上で のときだけ 、他では という関数 は ですが です。可測関数まで広げて内積空間を作るには、「ほとんど至るところ一致する関数を同一視する」という商をとる必要があり、そうしてできるのがルベーグ空間 です。正定値性は、単なる技術的条件ではなく「空間をどこまで大きくできるか」を決めています。
4. ノルム、コーシー・シュワルツの不等式、角度
Section titled “4. ノルム、コーシー・シュワルツの不等式、角度”内積が決まれば長さが決まります。
Definition 4.1(ノルムと距離)
内積空間 に対し、 のノルムを
で定める((IP3) より根号の中は非負なので定義できる)。また の距離を で定める。 のとき を単位ベクトルという。
定義から直ちに、 に対して
が成り立ちます((IP1) と第 2 変数の共役線形性を使いました)。また (IP3) より です。残る「三角不等式」は自明ではなく、次の不等式を経由して証明されます。
Theorem 4.2(コーシー・シュワルツの不等式)
を 上の内積空間とする。任意の に対して
が成り立つ。さらに等号が成り立つのは、 と が一次従属であるとき、かつそのときに限る。
Proof(Theorem 4.2)
まず の場合。第 2 変数の共役線形性から なので左辺は 、右辺も より で、等号が成り立つ。このとき なので は一次従属であり、主張と整合する。
以下 とする。(IP3) より なので
とおける。(IP3) より である。この量を展開する。(IP1) と第 2 変数の共役線形性から
ここに の定義を代入します。 は正の実数なので共役をとっても変わらないことに注意すると、
(2 つめでは (IP2) を使って としました)。また です。以上を代入すると 3 つの項のうち 2 つが打ち消し合って
となります。両辺に を掛けて移項すれば 、平方根をとって(両辺とも非負なので向きは変わらない) を得ます。
等号条件を見ます。上の計算から
(最後の同値は (IP3))。 なら は一次従属です。逆に が一次従属で なら と書けて、 となり等号が成り立ちます。
Corollary 4.3(三角不等式)
内積空間 の任意の に対して が成り立つ。したがって は 上のノルムであり、 は距離である。
Proof(Corollary 4.3)
((IP2))に注意して展開すると
任意の複素数 について なので、Theorem 4.2 より
両辺は非負なので平方根をとって結論を得ます。距離の公理のうち は (IP3)、対称性は 、三角不等式 は に上の不等式を適用すれば従います。
Remark 4.4(ピタゴラスの定理と平行四辺形則)
のとき、上の展開式の中央の項が消えて
が成り立ちます。これがピタゴラスの定理です。より一般に、 が互いに直交すれば が同じ計算で従います。また と の展開式を足すと交差項が消えて
(平行四辺形則)が得られます。逆に、この等式を満たすノルムは必ずある内積から来ることが知られています(ジョルダン・フォン・ノイマンの定理)。つまり平行四辺形則は「そのノルムが角度を測れるか」を判定する条件になっています。
コーシー・シュワルツの不等式は、実内積空間で のとき
を意味します。この値が区間 に入ることが保証されて初めて、次の定義が意味を持ちます。
Definition 4.5(角度と直交性)
を実内積空間とし、 をともに でないベクトルとする。 を満たす を と のなす角という(余弦関数は から への全単射なので は一意に定まる)。
また が でも でも、 のとき と は直交するといい と書く。部分集合 に対し、 のすべての元と直交するベクトル全体
を の直交補空間という。
は常に の部分空間です。実際 であり、、 なら (IP1) より任意の に対して だからです。 が部分空間である必要はないことに注意してください。
Remark 4.6(相関係数はコサインである)
個の観測値の組 から平均を引いた中心化データを 、 とすると、ピアソンの相関係数は
と書けます。つまり相関係数は中心化データのなす角の余弦です。 は Theorem 4.2 そのものであり、 となるのは等号条件から と が一次従属のとき、つまり 2 つの変量が完全な一次関係にあるときです。統計の教科書で天下り的に示される事実が、内積の言葉では一行の系になります。
5. 正規直交基底
Section titled “5. 正規直交基底”直交という言葉が使えるようになったので、「使いやすい基底」を定義します。
Definition 5.1(正規直交系・正規直交基底)
内積空間 のベクトルの族 が
を満たすとき、正規直交系という(互いに直交し、かつすべて単位ベクトルである、という意味)。正規直交系が の基底でもあるとき、正規直交基底という。
Proposition 5.2(直交系は一次独立)
内積空間 のベクトル が互いに直交し()、かつすべて でないならば、 は一次独立である。特に正規直交系は一次独立である。
Proof(Proposition 5.2)
とする。各 に対し、この等式の両辺と との内積をとる。(IP1) より
仮定 と (IP3) より なので 。 は任意だったので、すべての係数が です。正規直交系は を満たすので、この場合に含まれます。
Theorem 5.3(正規直交基底による展開)
を 上の内積空間、 を の正規直交基底とする。このとき次が成り立つ。
- 任意の に対し である。すなわち基底 に関する の第 座標は で与えられる。
- 任意の に対し である。
- 任意の に対し (パーセバルの等式)。
Proof(Theorem 5.3)
(1) は基底なので、 となる が(一意に)存在します。両辺と の内積をとると、(IP1) と正規直交性から
となり、係数が内積で書けることがわかります。
(2) (1) の表示を両方に代入し、(IP1) と第 2 変数の共役線形性で二重和に展開します。
なので の項だけが残り、主張の式を得ます。
(3) (2) で とすると なので、 です。
この定理が正規直交基底の存在意義です。一般の基底 について の座標を求めるには、連立一次方程式 を解かねばなりません( の掃き出しで の計算量)。正規直交基底なら、座標は内積を 回計算するだけ()で得られ、しかも各座標が他の座標と独立に求まります。さらに (3) より、ノルムの計算が座標の二乗和に化けます。 の言葉でいえば、基底ベクトルを列に並べた行列 が を満たす(ユニタリ行列・直交行列)ということで、逆行列を求める代わりに転置をとればよい、ということです。
数値で確かめます。 の標準内積に関して
を考えます。、、 であり、
なので正規直交系です。Proposition 5.2 より一次独立で、 本あるので の正規直交基底になります。 の座標を Theorem 5.3 で求めると
となり、連立方程式を一つも解かずに座標が求まりました。検算としてパーセバルの等式を確かめると
で、確かに一致します。この 3 本がどこから来たのかは、次の節で明らかになります。
6. グラム・シュミットの直交化
Section titled “6. グラム・シュミットの直交化”正規直交基底は便利ですが、そもそも存在するのでしょうか。存在するとして、どう作るのでしょうか。答えは、任意の基底から機械的に作れる、です。
考え方は単純です。 を に直交させたければ、 から「 方向の成分」 を引けばよい。残りは に直交します。この操作を順に繰り返します。
Theorem 6.1(グラム・シュミットの直交化)
を 上の内積空間とし、 を一次独立なベクトルとする。次の漸化式
は矛盾なく実行でき(すなわち各 で )、得られる は次を満たす。
- は正規直交系である。
- すべての に対して 。
- すべての に対して 。
さらに、条件 1・2・3 を満たす正規直交系 はこれ以外に存在しない。
Proof(Theorem 6.1)
についての数学的帰納法で、「 であり、 が正規直交系で、条件 2・3 が まで成り立つ」ことを示します。
のとき。 は一次独立なので 、よって であり、(IP3) より で が定義できます。 です。 かつ なので、互いに他のスカラー倍であり 。また 。
まで成り立つとして を示す。 帰納法の仮定より は正規直交系で、 です。
() の右辺の和は の元です。もし なら となり、 が の一次結合で書けてしまうので、 の一次独立性に反します。よって で、(IP3) から 、 が定義できます。
(1 正規直交性) とすると、(IP1) と帰納法の仮定 より
両辺を で割れば 。また なので、 は正規直交系です。
(2 張る空間) は と の一次結合であり、帰納法の仮定より なので、。よって 。逆に、漸化式を について解くと
であり、 なので逆向きの包含も成り立ちます。したがって両者は一致します。
(3) 上の の表示と との内積をとり、正規直交性を使うと 。
一意性。 も条件 1・2・3 を満たすとし、 を仮定して を示します( のときは仮定は空です)。条件 2 より なので と書けます。 に対し、条件 1()と帰納法の仮定 から
(Theorem 5.3 の (1) と同じ計算)。よって で、 より 。さらに条件 3 より
であり、 なので は正の実数。 とあわせて 、すなわち です。
Corollary 6.2(正規直交基底の存在)
を 上の 次元内積空間()とすると、 は正規直交基底を持つ。より一般に、 の任意の正規直交系 ()は の正規直交基底 に拡張できる。
Proof(Corollary 6.2)
前半。 の基底 を一つ取り(有限次元なので存在する)、Theorem 6.1 を適用して を得ます。これは正規直交系であり、条件 2 で とすれば なので、 を張る 本のベクトルです。Proposition 5.2 より一次独立でもあるので、基底です。
後半。 は Proposition 5.2 より一次独立なので、基底の延長定理(Proposition 5.7[Vector Spaces and Linear Maps])によりこれを含む の基底 が取れます。この列にグラム・シュミットを適用すると、最初の 本については となって( がすでに正規直交系なので、 に対し となり引くべき項がすべて 、かつ )、 はそのまま残ります。残りから作られる を加えたものが求める正規直交基底です。
Example 6.3( での具体的な直交化)
標準内積の で 、、 を直交化する。この 3 本は一次独立である(3 次の行列式が だから。行列式とその性質 の Theorem 7.1[Determinants and Their Properties] 参照)。
第 1 段。 、 なので 。
第 2 段。 なので
より 、したがって
第 3 段。 、 なので
(第 1 成分は 、第 2 成分は 、第 3 成分は 。) より 、したがって
これは §5 の末尾で正規直交基底であることを確かめた組と一致する。つまりあの 3 本は、標準的でない基底 を直交化して作られたものだった。
分解として読む。 Theorem 6.1 の証明中に現れた を行列にまとめると、、 として
となる。 は対角成分が正の上三角行列、 は を満たす直交行列である。Theorem 6.1 の一意性の主張は、この分解が一意であることに他ならない。
Example 6.4(多項式の直交化 — ルジャンドル多項式)
に Example 3.4 の内積 を入れ、一次独立な , , を直交化する。奇関数の 上の積分が になることを繰り返し使う。
第 1 段。 なので 。
第 2 段。 (被積分関数が奇関数)。よって で、 より 。
第 3 段。 、(奇関数)。よって
ノルムを計算する。
なので
現れた , , はルジャンドル多項式 そのもの( という正規化を採用したもの)であり、 という関係になっている。ルジャンドル多項式は微分方程式の解として導入されることが多いが、実体は「 を 内積で直交化しただけ」である。重み関数付きの内積 に同じ手続きを適用すると、 ならエルミート多項式、(区間 )ならラゲール多項式が同様に現れる。
7. 直交補空間と直交射影
Section titled “7. 直交補空間と直交射影”最後に、内積の最も実用的な帰結である「最良近似」を示します。鍵は、空間を部分空間とその直交補空間に分解することです。
Theorem 7.1(直交分解定理)
を 上の内積空間、 を有限次元の部分空間とする。このとき次が成り立つ。
- 。すなわち任意の は (、)の形にただ一通りに書ける。
- の正規直交基底を とすると、上の は で与えられる。この を と書き、 の への直交射影という。写像 は線形で、、、 を満たす。
- 。
- さらに が有限次元ならば 。
Proof(Theorem 7.1)
のときは で主張はすべて明らかなので( と読む)、 とします。 は有限次元の内積空間( の内積を制限したもの)なので、Corollary 6.2 より正規直交基底 が取れます。
(存在) に対し 、 とおきます。各 について、(IP1) と正規直交性から
の任意の元 は と書けるので、第 2 変数の共役線形性より 。よって であり、 という分解ができました。
(一意性) (、)とすると は と の両方に属します。 かつ から 、(IP3) より 。よって 、 です。これで (1) と、(2) の表示式が示せました。
( の性質) 写像 は (IP1) より線形なので、 も について線形です。定義より 。逆に なら、 は の正規直交基底なので Theorem 5.3 (1) を に適用して 、よって かつ です。核については、 なら 、逆に なら が全ての で成り立つので 。ゆえに 。
(3) まず 。実際 と に対し、(IP2) より だからです。逆を示します。 を取り、(1) により (、)と分解します。 と より 、また 、 より 。したがって
となり、(IP3) から 、すなわち 。
(4) が有限次元なら、直和分解 の次元を数えて を得ます。
Theorem 7.2(最良近似)
を内積空間、 を有限次元部分空間、 とする。任意の に対して
が成り立ち、等号が成立するのは のとき、かつそのときに限る。すなわち は の中で に最も近い点であり、そのような点は一意である。
Proof(Theorem 7.2)
を任意に取り、 を次のように分けます。
第 1 項が に属するのは Theorem 7.1 の (1) による分解そのもので、第 2 項は が部分空間で だからです。したがってこの 2 項は直交し、Remark 4.4 のピタゴラスの定理より
両辺の平方根をとって不等式を得ます。等号が成り立つのは 、すなわち (IP3) より のときに限ります。
Remark 7.3(ベッセルの不等式)
Theorem 7.2 の証明の途中式で とおくと です。 の正規直交基底を とし、(Theorem 5.3 の (3) を に適用)を代入すると
が得られます。これがベッセルの不等式です。 のときは等号(パーセバルの等式)になり、そうでなければ差 だけ足りない、という形で「取りこぼした情報量」を測っています。
Theorem 7.1 で「 は有限次元」という仮定は落とせません。 に 内積を入れ、 とします。 は部分空間で (定数関数 は に入りません)。ところが です。実際 とすると、 は連続で すなわち なので
となります。被積分関数は 上で連続かつ非負なので、Example 3.4 と同じ議論により 、よって 上で 、 の連続性から も従い です。したがって となり、分解は成り立ちません。無限次元では、 が閉であることと空間の完備性(ヒルベルト空間であること)が必要になります。
Example 7.5(最小二乗法 — 直線あてはめ)
データ に直線 をあてはめる。誤差の二乗和 を最小にする を求めたい。これは の標準内積で、
とおき、 に対して を の範囲で最小化する問題そのもの()である。Theorem 7.2 より、答えは である。
まず の正規直交基底をグラム・シュミットで作る。 より 。次に なので
より 。
次に の係数を求める。
よって
これを の形に読み直す。 の係数から の寄与を見ると なので 、そして第 1 成分から 、すなわち である。検算すると で となり一致する。
残差 は に直交していなければならない。実際
であり、Theorem 7.1 の主張どおりである。最小の残差二乗和は 。
なお、統計学の公式 、 に代入すると、、、、 から 、 となり、同じ答えを与える。回帰分析の公式は、この直交射影を成分で書き下したものにすぎない。
という条件を ( の列が を張る)と書き直すと 、すなわち正規方程式 が得られます。 と分解しておけば という上三角の連立方程式に帰着し、後退代入だけで解けます。これが数値計算で 分解が使われる主な理由の一つです。
主成分分析(PCA)も同じ枠組みです。中心化したデータ点 に対して、 を最小にする 次元部分空間 を探す、という問題が PCA です。Theorem 7.2 は「 を固定したときの最良近似」を与え、残る「 自体の最適化」を解くのが共分散行列の固有値問題であり、その最大化の中身は レイリー商の評価(Theorem 7.1)[スペクトル定理] です。そこでは実対称行列が直交する固有ベクトルの基底を持つこと(スペクトル定理)が本質的に効きます。固有値と固有ベクトル で導入した固有値が、この章の直交性と結び付く場所です。
上で と定める。
- これが内積であることを示せ。
- 標準基底 、 にグラム・シュミットを適用し、この内積に関する正規直交基底を求めよ。
Solution
1. とおくと です。 は実対称なので、Example 3.3 と同じ議論で (IP1)(IP2) が成り立ちます。(IP3) は平方完成により
で、等号は かつ 、すなわち のときに限ります。
2. なので 。次に なので であり、
このノルムは、この内積で測らねばなりません。
よって で、。
検算します。、また
となり、確かに正規直交基底です。標準内積では直交していた が、内積を変えると直交しなくなる(そして は「斜め」になる)ことに注意してください。直交性は内積に依存する概念です。
をすべて正の実数とする。コーシー・シュワルツの不等式を用いて
を示し、等号が成り立つ条件を求めよ。
Solution
の標準内積を考え、 を使って
とおきます( なので平方根も逆数も定義できます)。すると
Theorem 4.2 を二乗の形で使うと となり、求める不等式を得ます。
等号条件は Theorem 4.2 より と が一次従属であること。 なので と書け、成分で 、すなわち がすべての で成り立つこと、つまり です。逆に全部等しく なら左辺は となり等号が成立します。
に標準内積を入れ、
とおく。 の正規直交基底を求め、 の への直交射影 を計算せよ。
Solution
、 とおくと、 の定義は かつ 、すなわち ()と書けます。 は一次独立なので 、 は有限次元なので Theorem 7.1 の (3) が使えて
ここで なので であり、グラム・シュミットは正規化するだけで済みます。 より
が の正規直交基底です。
について 、 なので
Theorem 7.1 の (1) より なので
検算します。、 なので確かに です。
Example 6.4 の続きとして、 の 内積で を に直交化し、正規化した を求めよ。
Solution
は を正規化したものです。 と は偶関数、 は奇関数なので 、 はともに奇関数であり、 上の積分は です。したがって 。残るのは
よって
ノルムを計算します。
したがって であり、
これは 、すなわち規格化された 3 次のルジャンドル多項式です。Example 6.4 と同じパターン が続いていることが確認できます。
(補足)ここで使った「偶奇性から内積が になる」という観察は、計算量を大きく減らします。一般に、内積が対称性を持つとき、その対称性で分類されたベクトルは自動的に直交することがあり、直交化の手間が減ります。これは物理でいう選択則の原型です。
- Sheldon Axler, Linear Algebra Done Right, 3rd ed., Springer, 2015 — Chapter 6 “Inner Product Spaces”。行列式を使わずに内積空間を扱う構成で、この記事の定理の並びに最も近い。
- Gilbert Strang, Introduction to Linear Algebra, 5th ed., Wellesley-Cambridge Press, 2016 — Chapter 4 “Orthogonality”。射影・最小二乗法・グラム・シュミットを行列の言葉で扱う。
- 齋藤正彦『線型代数入門』東京大学出版会、1966 — 計量ベクトル空間の章。日本語の標準的な教科書。
- Lloyd N. Trefethen and David Bau III, Numerical Linear Algebra, SIAM, 1997 — Lecture 7–8( 分解とグラム・シュミット直交化)。古典版と修正版の違いを数値例で扱う。
- Åke Björck, “Solving linear least squares problems by Gram-Schmidt orthogonalization”, BIT Numerical Mathematics 7 (1967), 1–21. DOI: 10.1007/BF01934122 — 修正グラム・シュミットの誤差解析の原典。
Appendix: 数値計算では順序を変える
Section titled “Appendix: 数値計算では順序を変える”古典版の弱点。 Theorem 6.1 の漸化式は、 番目の係数をすべて元の から計算します(古典的グラム・シュミット、CGS)。これは数学的には正しいのですが、浮動小数点演算では、 が既に作った の張る空間にほぼ含まれるとき、引き算で激しい桁落ちが起こり、得られる の直交性が壊れます。
修正版。 これを避けるには、引き算を一度にまとめず、 で引いた結果から 方向の成分を引く、という逐次的な順序にします(修正グラム・シュミット、MGS)。数学的には同じ量を計算していますが、丸め誤差の伝わり方が違います。次のコードは両者を実装し、直交性の崩れ を比べます。
import numpy as np
def cgs(A): """古典的グラム・シュミット: 係数をすべて元の列から作る""" m, n = A.shape Q = np.zeros((m, n)) for k in range(n): v = A[:, k] - Q[:, :k] @ (Q[:, :k].T @ A[:, k]) Q[:, k] = v / np.linalg.norm(v) return Q
def mgs(A): """修正グラム・シュミット: 引いた結果から次を引く""" m, n = A.shape V = A.astype(float).copy() Q = np.zeros((m, n)) for k in range(n): Q[:, k] = V[:, k] / np.linalg.norm(V[:, k]) V[:, k + 1:] -= np.outer(Q[:, k], Q[:, k] @ V[:, k + 1:]) return Q
eps = 1e-8A = np.array([[1.0, 1.0, 1.0], [eps, 0.0, 0.0], [0.0, eps, 0.0], [0.0, 0.0, eps]])
for name, Q in (("classical", cgs(A)), ("modified", mgs(A))): err = np.linalg.norm(Q.T @ Q - np.eye(3)) print(f"{name:>10}: ||Q^T Q - I|| = {err:.3e}")この (レウヒリ行列と呼ばれる例)は条件数が 程度で、倍精度(機械イプシロン )では境界的な難しさです。理論的には、直交性の崩れは古典版で 、修正版で の大きさになることが知られています(Björck 1967)。 を代入すると、古典版では 、つまり直交性がほぼ完全に失われるのに対し、修正版では 程度にとどまる、という桁の差が出ます。実行して確かめてください。
実務では。 さらに安定な方法として、直交化を「引き算」ではなく鏡映変換(ハウスホルダー変換)の積として実行する方法があり、LAPACK の 分解(dgeqrf)はこれを使っています。理論の道具としてはグラム・シュミットが最も見通しがよく、数値の道具としてはハウスホルダー変換が標準、と役割が分かれています。ただし、列を左から順に処理して途中で打ち切れるという性質(Theorem 6.1 の条件 2)はグラム・シュミットに固有の利点で、部分空間を少しずつ広げていく反復解法(クリロフ部分空間法)では今も修正グラム・シュミットが使われています。
Report an error in this article ・Operated by: Mugen Giken LLC ・Pricing ・Terms ・Legal notice
© 2026 夢現技研合同会社 ・Feeding the text to an LLM is welcome. Code samples are MIT licensed.