rankqr
QR分解に基づく階数
呼び出し手順
[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])
引数
- A
実数または複素数の行列
- RCOND
A
の実効階数(ランク)を定義するために使用される実数です. この階数は,A
のピボット選択付きのQR分解の中の 最大の先頭の部分三角行列R11
の次数として定義されます. その推定された条件数は <1/RCOND
となります.- JPVT
エントリの整数ベクトル,
JPVT(i)
が 0でない場合,A
のi
列目はAP
の先頭と交換され, それ以外の場合,i
は自由な列となります. 処理終了時にJPVT(i) = k
の場合,A*P
のi
列目は,A
のk
列目となっています.- RANK
A
の実効ランク,すなわち, 部分行列R11
の次数. これは,A
の完全な直交分解における 部分行列T1
の次数と同じです.- SVAL
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.
Report an issue | ||
<< qr | Factorization | schur >> |