# fullrf

フルランク分解

## 呼び出し手順

    [Q,M,rk]=fullrf(A,[tol])

## パラメータ

A

  実数または複素数の行列

tol

  実数 (ランク定義時の閾値)

Q,M

  実数または複素数の行列

rk

  整数 (`A`のランク)

## 説明

フルランク分解 : `fullrf` は, `A = Q*M`となるような `Q` および `M`を返します. ただし, range(`Q`)=range(`A`) および ker(`M`)=ker(`A`), `Q` フル列ランク , `M` フル行ランク, `rk = rank(A) = #columns(Q) = #rows(M)`です.

`tol` はオプションの実数パラメータです (デフォルト値は `sqrt(%eps)`です). `A`のランク`rk`は `norm(A)*tol`より大きな 特異値の数として定義されます.

Aが対称の場合, `fullrf` は `M=Q'`を返します.

## 例

    A=rand(5,2)*rand(2,5);
    [Q,M]=fullrf(A);
    norm(Q*M-A,1)
    [X,d]=rowcomp(A);Y=X';
    svd([A,Y(:,1:d),Q])        //span(Q) = span(A) = span(Y(:,1:2))

## 参照

- svd
- qr
- fullrfk
- rowcomp
- colcomp