グラムシュミットの直交化法
グラムシュミットの正規直交化法(Gram–Schmidt orthonormalization)とは基底Xを用いて正規直交行列Uを作る方法である。
以下では
https://manabitimes.jp/math/1149
基底Xを用いて正規直交行列Uを作るとは、以下の意味であるとする。
u_1 を x_1 の線形結合、\\
u_2 を x_1とx_2の線形結合、\\
u_3 を x_1, x_2, とx_3の線形結合。
ここで$u_i$は行列Uの列、$x_i$は行列Xの列である。
グラムシュミットの直交化法は、まさにこの条件で直交する正規ベクトルを順次計算する。
グラムシュミットの直交化法のmatlabコード
以下のmatlabコードは正規乱数を用いて4x4の行列xを生成し、グラムシュミットの正規直交化法により正規直交行列を得る。結果が正規直交行列であることを確認するため、行列式の値が1であること、$uu'$が単位行列であることを数値計算により示す。
N = 4;
x = randn( N );
u = gram( x );
det( u )
u*u'
%
% グラムシュミットの直交化法
%
function u = gram(x)
u = zeros( size( x ) );
for i = 1:size( x, 2 )
tp = x( :,i );
for j = 1:(i-1)
tp = tp - tp'*u(:,j)*u(:,j);
end
u(:,i) = tp/norm(tp);
end
end
以上