« [R]インストールされているパッケージを一覧で確認する | トップページ | [GNU Fortran]ファイル(ディレクトリ)の存在を確認 »

2020年8月15日 (土)

[Octave]QR分解を行う

行列AをQR分解で行列Qと行列Rに分解することを考える。

A = Q R

行列QはQTQ=I(Iは単位行列)となる直交行列。行列Rは上三角行列(対角成分はすべて0以外で、対角成分より下の要素はすべて0)。

qr関数を使うと、それぞれQR分解した際の行列Qと行列Rが得られる。

>> a = [1, 2, 3; 4, 5, 6; 9, 9, 8]
a =
1 2 3
4 5 6
9 9 8
>> [q, r] = qr(a)
q =
-0.10102 -0.71841 -0.68825
-0.40406 -0.60254 0.68825
-0.90914 0.34762 -0.22942
r =
-9.89949 -10.40457 -10.00051
0.00000 -1.32095 -2.98951
0.00000 0.00000 0.22942

QTQ = I となるか試す。

>> q' * q
ans =
1.0000e+00 -9.5469e-17 3.7850e-17
-9.5469e-17 1.0000e+00 7.4583e-17
3.7850e-17 7.4583e-17 1.0000e+00

« [R]インストールされているパッケージを一覧で確認する | トップページ | [GNU Fortran]ファイル(ディレクトリ)の存在を確認 »

Octave」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]インストールされているパッケージを一覧で確認する | トップページ | [GNU Fortran]ファイル(ディレクトリ)の存在を確認 »

無料ブログはココログ

■■

■■■