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 - Русский -
Scilabヘルプ >> Linear Algebra > Subspaces > spantwo

spantwo

部分空間の合計および共通部分

呼び出し手順

[Xp,dima,dimb,dim]=spantwo(A,B, [tol])

引数

A, B

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

Xp

正方正則行列

dima, dimb, dim

整数, 部分空間の次元

tol

非負の実数

説明

同じ行数を有する行列 A および B を指定すると, 以下のような正方行列Xp (正則だが直交である必要はありません) を返します:

[A1, 0]    (dim-dimb )
Xp*[A,B]=[A2,B2]    (dima+dimb-dim )
[0, B3]    (dim-dima )
[0 , 0]

inv(Xp)の最初のdima列は range(A)に展開されます.

inv(Xp)の 列 dim-dimb+1 から dima は range(A) と range(B)の共通部分に展開されます.

inv(Xp)の最初のdim列は, range(A)+range(B)に展開されます.

inv(Xp)の列dim-dimb+1からdim はrange(B)に展開されます.

行列 [A1;A2] は行フルランク(=rank(A))です. 行列[B2;B3]は行フルランク(=rank(B))です. 行列[A2,B2]は行フルランク(=rank(A inter B))です. 行[A1,0;A2,B2;0,B3] は行フルランク(=rank(A+B))です.

A=[1,0,0,4;
   5,6,7,8;
   0,0,11,12;
   0,0,0,16];
B=[1,2,0,0]';C=[4,0,0,1]; 
Sl=ss2ss(syslin('c',A,B,C),rand(A));
[no,X]=contr(Sl('A'),Sl('B'));CO=X(:,1:no);  //可制御部
[uo,Y]=unobs(Sl('A'),Sl('C'));UO=Y(:,1:uo);  //不可観測部
[Xp,dimc,dimu,dim]=spantwo(CO,UO);    //カルマン分解
Slcan=ss2ss(Sl,inv(Xp));

参照

Scilab Enterprises
Copyright (c) 2011-2015 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jun 15 08:35:24 CEST 2016