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.
However, this page did not exist in the previous stable version.

Scilab help >> Linear Algebra > gschur

gschur

一般化Schur分解 (古い関数).

呼び出し手順

[As,Es]=gschur(A,E)
[As,Es,Q,Z]=gschur(A,E)
[As,Es,Z,dim] = gschur(A,E,flag)
[As,Es,Z,dim]= gschur(A,E,extern)

説明

この関数は古い関数であり, schur関数に統合されています. 多くの場合, gschur関数は以前と同様に動作しますが, 将来のリリースでは削除される予定です.

最初の3つの構文は以下のように置き換えることができます

[As,Es]=schur(A,E)
[As,Es,Q,Z]=schur(A,E);Q=Q' //NOTE THE TRANPOSITION HERE
[As,Es,Z,dim] = schur(A,E,flag)

最後の構文はさらに若干の調整が必要です:

もし,

extern が Scilab関数の場合, 新しい呼び出し手順は, Nextern を以下のように定義するとき, [As,Es,Z,dim]= schur(A,E,Nextern) となります:

function t=Nextern(R)
if R(2)==0 then
  t=extern([1,R(1),R(3)])==1
else
  c=(R(1)+%i*R(2))/R(3)
  t=extern([2,real(c+c'),real(c*c')])==1
end
endfunction
if

extern は,Fortran または Cで記述された外部関数の名前です. 新しい呼び出し手順は, nextern を以下のように定義すると [As,Es,Z,dim]= schur(A,E,'nextern') のようになります:

logical function nextern(ar, ai, beta)
double precision ar,ai,beta
integer r,extern
if (ai.eq.0.0d0) then
  r=extern(1,ar,beta,0.0d0,0.0d0)
else
  r=extern(2,0.0d0,0.0d0,2.0d0*ar,ar*ar+ai*ai)
endif
nextern=r.eq.1
end

参照

  • external — Scilabオブジェクト, 外部関数またはルーチン
  • schur — 行列およびペンシルの[ソートされた] Schur 分解
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Mar 03 11:00:51 CET 2011