# rowcomp

行圧縮, 範囲

## 呼び出し手順

    [W,rk]=rowcomp(A [,flag [,tol]])

## パラメータ

A

  実数または複素数の行列

flag

  オプションの文字列, 指定可能な値は `'svd'` または `'qr'`です. デフォルト値 `'svd'`はです.

tol

  オプションの非負の実数. デフォルト値は `sqrt(%eps)*norm(A,1)`.

W

  正方正則行列 (基底の変更)

rk

  整数 (`A`のランク)

## 説明

`A`の行圧縮. `Ac = W*A` は行圧縮された行列です: すなわち, `Af`を行フルランクとして `Ac=[Af;0]` となります.

`flag` および `tol` はオプションのパラメータです: `flag='qr'` または `'svd'` (デフォルト `'svd'`).

`tol` は許容誤差パラメータです.

`W'`の最初の`rk` 列には, `A`の範囲が広がります.

`W`の最初の(上側の)`rk` 行には, `A`の行範囲が広がります.

非ゼロベクトル `x` は, `W*x`が`Ac`に基づき行圧縮された場合, すなわち,その最後の要素のノルムが最初の要素に対して小さい場合に限り, range(`A`)に属します.

## 例

    A=rand(5,2)*rand(2,4);              // 4 列ベクトル, 2 つは独立.
    [X,dim]=rowcomp(A);Xp=X';
    svd([Xp(:,1:dim),A])                //span(A) = span(Xp(:,1:dim)
    x=A*rand(4,1);                      //x は span(A)に属します
    y=X*x
    norm(y(dim+1:$))/norm(y(1:dim))     // 小さい

## 参照

- colcomp
- fullrf
- fullrfk

## 使用される関数

`rowcomp` 関数はsvd または qr 分解d.