QR分解に基づく階数
[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])
実数または複素数の行列
A
の実効階数(ランク)を定義するために使用される実数です.
この階数は,
A
のピボット選択付きのQR分解の中の
最大の先頭の部分三角行列R11
の次数として定義されます.
その推定された条件数は < 1/RCOND
となります.
エントリの整数ベクトル, JPVT(i)
が 0でない場合,
A
のi
列目は
AP
の先頭と交換され,
それ以外の場合,i
は自由な列となります.
処理終了時にJPVT(i) = k
の場合,
A*P
のi
列目は,
A
のk
列目となっています.
A
の実効ランク,すなわち,
部分行列R11
の次数.
これは,A
の完全な直交分解における
部分行列T1
の次数と同じです.
3つの要素を有する実数ベクトル;三角分解R
の
特異値の推定値.
SVAL(1)
は,
R(1:RANK,1:RANK)
の最大特異値です;
SVAL(2)
は,
R(1:RANK,1:RANK)
の最小特異値です;
SVAL(3)
は,
RANK
< MIN(M,N)
の場合,
R(1:RANK+1,1:RANK+1)
,
そうでない場合, R(1:RANK,1:RANK)
の最小特異値です.
実数または複素数のM行N列一般行列A
の(オプションで)
ランク出力を伴なうQR分解を計算します.
ランクが不完全になる可能性があり,実効ランクを条件数のインクリメンタル推定により
推定します.
このルーチンは列ピボット選択付きのQR分解を使用します:
A * P = Q * R, where R = [ R11 R12 ], [ 0 R22 ] | ![]() | ![]() |
R11
は,条件数の推定値が1/RCOND
未満となる
最大の部分行列として定義されます.
R11
, RANK
の次数は,
A
の実効階数です.
三角分解が階数出力を伴なう場合 (これは先頭の列が健全(well-conditioned)な場合です),
SVAL(1)
はA
の最大特異値の
推定値となり,SVAL(2)
および
SVAL(3)
は,それぞれ A
の
RANK
番目および(RANK+1)
番目の
特異値の推定値となります.
これらの値を評価することにより,選択したRCOND
の
値により階数が良好に定義されることを確認することができます.
比 SVAL(1)/SVAL(2)
は,
R(1:RANK,1:RANK)
の条件数の推定値です.
Slicot library routines MB03OD, ZB03OD.