今回はベクトル y として x1 軸上のベクトルを考えます。
x と y は長さが等しくなければならなかったので y の第一成分は x の長さ(ノルム)に等しくなっています。
つまり、任意のベクトル x を第一軸上のベクトルへ変換してしまおうという訳です。
このようなベクトルは2通り存在し得ます。2次元萌えの場合
で、一般には、 x の第一軸成分の符号と逆符号のものが選ばれます。
つまり
と置いた時
として
Householder変換にはベクトル x - y の長さ(ノルム)の逆数を掛けるところがありますが、この長さがなるべく大きくなる(0 にならない)よう x の第一軸成分と逆符号(逆方向)の鏡映が選ばれます。
そうすると前回の式(1)は、上の y を用いると
式(1)’
となります。
ここで
式(2)
です。
式(1)’の分母は
ここで β^2 = ( -sign (α) | x | )^2 = | x |^2、 e1 ・ x = x1 から
となります。
こうして式(1)’は
式(3)
となります。
ここで以下の様な ν を考えます。
式(4)
式(2)から、最右辺の様に ν は第一成分が 1 のベクトルになります。
この ν を用いて式(3)は
式(5)
となります。
この ν をハウスホルダーベクトルと言うそうです。
GSL の ハウスホルダー変換の関数
double gsl_linalg_householder_transform (gsl_vector *v)
は、入力されたベクトル gsl_vector *v から式(4)に従ってハウスホルダーベクトルを求め、同時に式(5)の τ の値を返します。