Scilab Function

schur - [ordered] Schur decomposition of matrix and pencils

Calling Sequence

[U,T] = schur(A)
[U,dim [,T] ]=schur(A,flag)
[U,dim [,T] ]=schur(A,extern1)
[As,Es [,Q,Z]]=schur(A,E)
[As,Es [,Q],Z,dim] = schur(A,E,flag)
[Z,dim] = schur(A,E,flag)
[As,Es [,Q],Z,dim]= schur(A,E,extern2)
[Z,dim]= schur(A,E,extern2)

Parameters

Description

Schur forms, ordered Schur forms of matrices and pencils

  • MATRIX SCHUR FORM
  • Usual schur form:

    [U,T] = schur(A) produces a Schur matrix T and a unitary matrix U so that A = U*T*U' and U'*U = eye(U). By itself, schur(A) returns T. If A is complex, the Complex Schur Form is returned in matrix T. The Complex Schur Form is upper triangular with the eigenvalues of A on the diagonal. If A is real, the Real Schur Form is returned. The Real Schur Form has the real eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks on the diagonal.

  • Ordered Schur forms

    [U,dim]=schur(A,'c') returns an unitary matrix U which transforms A into schur form. In addition, the dim first columns of U make a basis of the eigenspace of A associated with eigenvalues with negative real parts (stable "continuous time" eigenspace).

    [U,dim]=schur(A,'d') returns an unitary matrix U which transforms A into schur form. In addition, the dim first columns of U span a basis of the eigenspace of A associated with eigenvalues with magnitude lower than 1 (stable "discrete time" eigenspace).

    [U,dim]=schur(A,extern1) returns an unitary matrix U which transforms A into schur form. In addition, the dim first columns of U span a basis of the eigenspace of A associated with the eigenvalues which are selected by the external function extern1 (see external for details). This external can be described by a Scilab function or by C or Fortran procedure:

  • a Scilab function

    If extern1 is described by a Scilab function, it should have the following calling sequence: s=extern1(Ev), where Ev is an eigenvalue and s a boolean.

  • a C or Fortran procedure

    If extern1 is described by a C or Fortran function it should have the following calling sequence: int extern1(double *EvR, double *EvI) where EvR and EvI are eigenvalue real and complex parts. a true or non zero returned value stands for selected eigenvalue.

  • PENCIL SCHUR FORMS
  • Usual Pencil Schur form

    [As,Es] = schur(A,E) produces a quasi triangular As matrix and a triangular Es matrix which are the generalized Schur form of the pair A, E.

    [As,Es,Q,Z] = schur(A,E) returns in addition two unitary matrices Q and Z such that As=Q'*A*Z and Es=Q'*E*Z.

  • Ordered Schur forms:

    [As,Es,Z,dim] = schur(A,E,'c') returns the real generalized Schur form of the pencil s*E-A. In addition, the dim first columns of Z span a basis of the right eigenspace associated with eigenvalues with negative real parts (stable "continuous time" generalized eigenspace).

    [As,Es,Z,dim] = schur(A,E,'d')

    returns the real generalized Schur form of the pencil s*E-A. In addition, the dim first columns of Z make a basis of the right eigenspace associated with eigenvalues with magnitude lower than 1 (stable "discrete time" generalized eigenspace).

    [As,Es,Z,dim] = schur(A,E,extern2)

    returns the real generalized Schur form of the pencil s*E-A. In addition, the dim first columns of Z make a basis of the right eigenspace associated with eigenvalues of the pencil which are selected according to a rule which is given by the function extern2. (see external for details). This external can be described by a Scilab function or by C or Fortran procedure:

  • A Scilab function

    If extern2 is described by a Scilab function, it should have the following calling sequence: s=extern2(Alpha,Beta), where Alpha and Beta defines a generalized eigenvalue and s a boolean.

  • C or Fortran procedure

    if external extern2 is described by a C or a Fortran procedure, it should have the following calling sequence:

    int extern2(double *AlphaR, double *AlphaI, double *Beta)

    if A and E are real and

    int extern2(double *AlphaR, double *AlphaI, double *BetaR, double *BetaI)

    if A or E are complex. Alpha, and Beta defines the generalized eigenvalue. a true or non zero returned value stands for selected generalized eigenvalue.

  • REFERENCES

    Examples

    See Also