グラム・シュミットの直交化法について述べる前に, 線形代数の基礎として内積空間,線型独立と線型従属,直交基底について説明する. 内積空間†2つの実ベクトルに対して, の演算を内積(inner product)という.内積はとも表記される. 内積の性質を以下に示す.
ここで,である. この性質はから容易に導出できる. 実ベクトルだけでなく複素ベクトルに拡張する. に対して, を内積という.はの複素共役ベクトル(を要素とすると,その共役で構成されるベクトル)である. 複素ベクトルの内積の性質を以下に示す.
ここで,であり, は各要素の複素共役をとり,転置したものである(). これらの内積が定義されたベクトル空間を内積空間(inner product space)という. 線型独立と線型従属†内積空間内のベクトルについて, をベクトルの線型結合(linear combination)と呼ぶ. ただし,である. 線型結合がとなる,つまり, を線型関係という. 線型関係となるのが,すべての係数がとなる場合(自明な線型関係)のみのとき, ベクトルは線型独立(linearly independent),もしくは,1次独立であるという. それに対して,以外の解を持つとき,線型従属(linearly dependent)であるという. このような係数の組み合わせによる線型関係を非自明な線型関係という.
方向が同じで,大きさが異なる2つのベクトルがあるとき, その関係は, と表される.よって, となり,係数で線型結合が0となるので, 非自明な線型関係が存在し,この2つのベクトルは線型従属であるといえる.
方向が異なる2つのベクトルがあるとき, その線型結合は, となる.これが非自明な線型関係をもつとすると, となり,とが同じ方向になってしまう. これは最初の仮定と矛盾する. よって,は線型独立である. 正規直交基底†2つのベクトルの内積が0であるとき,とは直交する(orthogonal)といい, と表す. そして,ベクトルの組がすべて互いに直交するとき, これを直交系(orthogonal system)という.式で表すと以下となる. また,がすべて単位ベクトルのとき,正規直交系という. さて,体K上のベクトル空間Vのベクトルの線型結合全体の集合を, と表し,これをベクトルによって張られる部分空間(もしくは,生成される部分空間)という (と表される). ベクトル空間Vが線型独立なベクトルで張られる空間とする. このとき,ベクトルの組をVの基底(basis)という. がすべて単位ベクトルのとき正規基底(normal basis)といい, 直交系のとき直交基底(orthogonal basis),単位ベクトルでかつ直交系のとき 正規直交基底(orthonormal basis)という. また,基本ベクトルで構成される基底は標準基底(standard basis)という. まとめると,
グラム・シュミットの直交化法†内積空間Vにおいて,ある基底を直交基底にすることを直交化(orthogonalize)という. 正規直交基底にするときは正規直交化(orthonormalize)という. 基底に対して, 以下の処理を行うことで,正規直交基底を得る. このアルゴリズムをグラム・シュミットの正規直交化法(Gram-Schmidt orthonormalization)という. グラム・シュミットの直交化では,
の処理をnまで進めることで直交なベクトル群を得ている. この方法は1つの式で直接を求められるので便利だが,一方で誤差の累積が起こる. これを軽減するのが次の修正グラム・シュミット法である. 修正グラム・シュミット法†グラム・シュミット法の手順をC言語のプログラム風に書くと,
となる. 誤差の累積を軽減するために以下のように処理を修正する.
例えば,i=3のとき,グラム・シュミット法では, としていたのを,修正グラム・シュミットでは, と逐次更新したを使っている. もともとのはずなので, 本来上記二つの結果は変わらない. ただしこれはを求めるときに誤差がなければという前提条件付である. 例えば,もともととが直交に近いと, がに比べて非常に小さくなり,丸め誤差が発生してしまう. 修正グラム・シュミットを使った場合,少なくともにはその誤差が影響しない. |