Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Linear Algebra > Linear Equations > qr

qr

QR 分解

呼び出し手順

[Q,R]=qr(X [,"e"])
[Q,R,E]=qr(X [,"e"])
[Q,R,rk,E]=qr(X [,tol])

パラメータ

X

実数または複素数の行列

tol

非負の実数

Q

正方直交またはユニタリ行列

R

Xと同じ次元の行列

E

置換行列

rk

整数 (XのQRランク)

説明

[Q,R] = qr(X)

X= Q*Rとなるような Xと同じ次元の 上三角行列Rおよび直交(複素数の場合はユニタリ)行列 Qを出力します. [Q,R] = qr(X,"e")は次にように "エコノミーサイズ"で出力します: X が m行n列 (m > n)の場合, Qの最初のn列のみが Rの最初のn行と同時に計算されます.

Q*R = X から, 行列 Xのk番目の列は, (係数 R(1,k), ..., R(k,k)を用いて) Qの最初のk列の線形結合で表されます. Qの最初のk列は,Xの最初のk列 に広がる部分空間の直交基底を作成します. Xの列k(すなわち, X(:,k) ) がXの最初のp列の線形結合の場合, エントリR(p+1,k), ..., R(k,k)は 0 となります. この場合,Rは上台形となります. X がランクrkを有する場合, 行 R(rk+1,:), R(rk+2,:), ... は 0 となります.

[Q,R,E] = qr(X)

X*E = Q*Rとなるような (列)置換行列E, 降順の対角要素を有する上三角行列 R, 直交(またはユニタリ)Q を出力します. rkXのランクの場合, Rの主対角項に沿った 最初のrk個のエントリ, すなわち,R(1,1), R(2,2), ..., R(rk,rk)は 全て0以外となります. [Q,R,E] = qr(X,"e") は "エコノミーサイズ"で出力します: X が m行n列 (m > n)の場合, Qの最初のn列のみが Rの最初のn行と同時に計算されます.

[Q,R,rk,E] = qr(X ,tol)

rk = Xのランクの推定値 を返します. すなわち, rkは, 指定した閾値tolより大きな Rの対角要素の数となります.

[Q,R,rk,E] = qr(X)

rk = Xのランクの推定値 を返します. すなわち,rktol=R(1,1)*%eps*max(size(R))より大きな Rの対角要素の数となります. Rの条件数を用いる ランク計算型のQR分解については,rankqrを 参照してください.

// QR factorization, generic case
// X is tall (full rank)
X=rand(5,2);[Q,R]=qr(X); [Q'*X R]

//X is fat (full rank)
X=rand(2,3);[Q,R]=qr(X); [Q'*X R]

//Column 4 of X is a linear combination of columns 1 and 2:
X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4)

//X has rank 2, rows 3 to $ of R are zero:
X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R

//Evaluating the rank rk: column pivoting ==> rk first
//diagonal entries of R are non zero :
A=rand(5,2)*rand(2,5);
[Q,R,rk,E] = qr(A,1.d-10);
norm(Q'*A-R)
svd([A,Q(:,1:rk)])    //span(A) =span(Q(:,1:rk))

参照

  • rankqr — QR分解に基づく階数
  • rank — 階数
  • svd — 特異値分解
  • rowcomp — 行圧縮, 範囲
  • colcomp — 列圧縮,カーネル,ヌル空間

使用する関数

qr 分解はLapack ルーチン DGEQRF, DGEQPF, DORGQR (実数行列)および ZGEQRF, ZGEQPF, ZORGQR (複素数の場合) に基づいています.

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:40:24 CEST 2012