spaninter 共通部分空間

## 呼び出し手順

    [X,dim]=spaninter(A,B [,tol])

## 引数

A, B

  同数の行を有する実数または複素数の行列

X

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

dim

  整数, range(`A`) および range(`B`)間の共通部分空間の次元

## 説明

range(`A`) および range(`B`)の 共通部分を計算します.

`X`の最初の`dim`列は,この共通部分に展開します. すなわち,`X(:,1:dim)`は, range(`A`) と range(`B`)の間の直交基底です.

`X`の基底では, `A` および `B`がそれぞれ次のように 表されます:

`X'*A` および `X'*B`.

`tol` は閾値です (`sqrt(%eps)` がデフォルト値です).

## 例

    A=rand(5,3)*rand(3,4);     // A は 5 x 4, rank=3です.
    B=[A(:,2),rand(5,1)]*rand(2,2);
    [X,dim]=spaninter(A,B);
    X1=X(:,1:dim);    //共通部分
    svd(A),svd([X1,A])   // span(A) の X1
    svd(B),svd([B,X1])   // span(B) の X1

## 参照

- spanplus
- spantwo