MATLAB Function Reference    
qrupdate

詳細

オリジナル行列にランク1の行列を加えたもののQR分解

表示

詳細

[Q1,R1] = qrupdate(Q,R,u,v) は、[Q,R] = qr(A) がオリジナルのA のQR分解のとき、A + u*v'のQR分解を出力します。このとき、uvは、適切な長さの列ベクトルです。

注意

qrupdate は、フル行列に対してのみ機能します。

例題

行列

は、A'*Aの作成での危険性を示す最小二乗で良く知られた例です。代わりに、直交行列Qと上三角行列RへのQR分解を使います。

予想した通り、Rは上三角行列になります。

この場合、最初の行を除くRの上三角要素はsqrt(eps)の大きさです。

アップデートベクトルを、つぎのように考えます。

つぎのように、Aにランク1の行列を加えたQR分解を計算する代わりに、

qrupdate を使うことができます。

両方の分解は異なっていても、正しいことに注意してください。

アルゴリズム

qrupdate は、Golub and van Loanの、Matrix Computationsの第3版の12.5.1節のアルゴリズムを使用します。N = max(m,n) の場合、何もない場合から新規のQR分解を計算するのは、ほぼ 、のアルゴリズムで、この方法で既存の因子にランク1の行列を加えるのは、 アルゴリズムであるため、qrupdate は有効です。

参考文献

Golub, Gene H. and Charles Van Loan, Matrix Computations, Third Edition, Johns Hopkins University Press, Baltimore, 1996

参考

cholupdate, qr


 qrinsert quad, quad8