コンテンツにスキップ
Wikipedia

グラム・シュミットの正規直交化法

出典: フリー百科事典『ウィキペディア(Wikipedia)』

グラム・シュミットの正規直交化法(グラム・シュミットのせいきちょっこうかほう、: Gram–Schmidt orthonormalization)とは、計量ベクトル空間に属する線型独立な有限個のベクトルが与えられたとき、それらと同じ部分空間張る 正規直交系を作り出すアルゴリズムの一種[1] シュミットの直交化(ちょっこうか、orthogonalization)ともいう。ヨルゲン・ペダーセン・グラムおよびエルハルト・シュミットに因んで名付けられた。変換行列は上三角行列に取ることができる。正規化する工程を省略すると、必ずしも正規でない直交系を得ることができる。

アルゴリズム

[編集 ]

V計量ベクトル空間とし、V のベクトル v, u内積を (v, u) と表すことにする。与えられたベクトルの線型独立系を {v1, v2, ..., vn} とする。

直交化
u 1 := v 1 u 2 := v 2 ( u 1 , v 2 ) ( u 1 , u 1 ) u 1 u 3 := v 3 ( u 1 , v 3 ) ( u 1 , u 1 ) u 1 ( u 2 , v 3 ) ( u 2 , u 2 ) u 2 u n := v n ( u 1 , v n ) ( u 1 , u 1 ) u 1 ( u 2 , v n ) ( u 2 , u 2 ) u 2 ( u n 1 , v n ) ( u n 1 , u n 1 ) u n 1 := v n i = 1 n 1 ( u i , v n ) ( u i , u i ) u i {\displaystyle {\begin{aligned}{\boldsymbol {u}}_{1}&:={\boldsymbol {v}}_{1}\\{\boldsymbol {u}}_{2}&:={\boldsymbol {v}}_{2}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{2})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}\\{\boldsymbol {u}}_{3}&:={\boldsymbol {v}}_{3}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{3})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}-{\frac {({\boldsymbol {u}}_{2},{\boldsymbol {v}}_{3})}{({\boldsymbol {u}}_{2},{\boldsymbol {u}}_{2})}}{\boldsymbol {u}}_{2}\\&\vdots \\{\boldsymbol {u}}_{n}&:={\boldsymbol {v}}_{n}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}-{\frac {({\boldsymbol {u}}_{2},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{2},{\boldsymbol {u}}_{2})}}{\boldsymbol {u}}_{2}-\dotsb -{\frac {({\boldsymbol {u}}_{n-1},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{n-1},{\boldsymbol {u}}_{n-1})}}{\boldsymbol {u}}_{n-1}\\&:={\boldsymbol {v}}_{n}-\textstyle \sum \limits _{i=1}^{n-1}{\dfrac {({\boldsymbol {u}}_{i},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{i},{\boldsymbol {u}}_{i})}}{\boldsymbol {u}}_{i}\end{aligned}}} {\displaystyle {\begin{aligned}{\boldsymbol {u}}_{1}&:={\boldsymbol {v}}_{1}\\{\boldsymbol {u}}_{2}&:={\boldsymbol {v}}_{2}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{2})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}\\{\boldsymbol {u}}_{3}&:={\boldsymbol {v}}_{3}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{3})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}-{\frac {({\boldsymbol {u}}_{2},{\boldsymbol {v}}_{3})}{({\boldsymbol {u}}_{2},{\boldsymbol {u}}_{2})}}{\boldsymbol {u}}_{2}\\&\vdots \\{\boldsymbol {u}}_{n}&:={\boldsymbol {v}}_{n}-{\frac {({\boldsymbol {u}}_{1},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{1},{\boldsymbol {u}}_{1})}}{\boldsymbol {u}}_{1}-{\frac {({\boldsymbol {u}}_{2},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{2},{\boldsymbol {u}}_{2})}}{\boldsymbol {u}}_{2}-\dotsb -{\frac {({\boldsymbol {u}}_{n-1},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{n-1},{\boldsymbol {u}}_{n-1})}}{\boldsymbol {u}}_{n-1}\\&:={\boldsymbol {v}}_{n}-\textstyle \sum \limits _{i=1}^{n-1}{\dfrac {({\boldsymbol {u}}_{i},{\boldsymbol {v}}_{n})}{({\boldsymbol {u}}_{i},{\boldsymbol {u}}_{i})}}{\boldsymbol {u}}_{i}\end{aligned}}}

によって順に新しいベクトルを作っていくと、{u1, u2, ..., un} は新しい線型独立系になる。構成から、互いに直交していることは容易に分かる。

正規化
e i := u i ( u i , u i ) 1 / 2 {\displaystyle {\boldsymbol {e}}_{i}:={\frac {{\boldsymbol {u}}_{i}}{({\boldsymbol {u}}_{i},{\boldsymbol {u}}_{i})^{1/2}}}} {\displaystyle {\boldsymbol {e}}_{i}:={\frac {{\boldsymbol {u}}_{i}}{({\boldsymbol {u}}_{i},{\boldsymbol {u}}_{i})^{1/2}}}}

とおけば {e1, e2, ..., en} が求める性質を満たす正規直交系であることが分かる。

脚注

[編集 ]

参考文献

[編集 ]

関連項目

[編集 ]

外部リンク

[編集 ]
連立一次方程式
ベクトル
ベクトル空間
計量ベクトル空間
行列線型写像
演算・操作
不変量
クラス
行列式
多重線型代数
数値線形代数
基本的な概念
ソフトウェア
ライブラリ
反復法・技法
人物
行列値関数
その他
カテゴリ カテゴリ

AltStyle によって変換されたページ (->オリジナル) /