【NumPy】行列のQR分解 linalg.qr

スポンサーリンク

この記事では、Python言語とNumPyを用いて、行列の固有値・固有ベクトルを求める方法をソースコード付きで解説します。

スポンサーリンク

QR分解

QR分解とは、線形代数において行列を直交行列Qと、上三角行列Rの積に分解する手法です。
【詳細】
QR分解とは(アルゴリズムと例、固有値)

線型最小二乗問題や固有値問題を解く時に利用されます。
QR分解を計算する手法としては、ギブンス回転、ハウスホルダー変換、グラム・シュミット分解などがあります。

NumPyのlinalg.qrを利用すると、簡単に特異値分解することが出来ます。

【書式】
Q, R = numpy.linalg.qr(A)

第1引数(A):任意の行列A
戻り値(Q, R):QR分解により行列Aを分解して得られた直交行列Qと、上三角行列R

ソースコード

サンプルプログラムのソースコードは下記の通りです。

実行結果

サンプルプログラムの実行結果は下記の通りです。

A=
[[ 0.21988645 0.45231549]
[ 0.17618505 0.11629304]]
Q=
[[-0.78039095 -0.62529191]
[-0.62529191 0.78039095]]
R=
[[-0.28176448 -0.42570001]
[ 0. -0.19207518]]
Q*R=
[[ 0.21988645 0.45231549]
[ 0.17618505 0.11629304]]

【おすすめ関連記事】
Python入門 基本文法
NumPy入門 サンプルプログラム集

スポンサーリンク

シェア&フォローお願いします!