Navigation

Operators and Keywords

Function List:

C++ API

schur.cc File Reference

#include <string>
#include "CmplxSCHUR.h"
#include "dbleSCHUR.h"
#include "fCmplxSCHUR.h"
#include "floatSCHUR.h"
#include "defun-dld.h"
#include "error.h"
#include "gripes.h"
#include "oct-obj.h"
#include "utils.h"
Include dependency graph for schur.cc:

Functions

 DEFUN_DLD (schur, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{S} =} schur (@var{A})\n\ @deftypefnx {Loadable Function} {@var{S} =} schur (@var{A}, \"complex\")\n\ @deftypefnx {Loadable Function} {[@var{U}, @var{S}] =} schur (@var{A}, @var{opt})\n\ @cindex Schur decomposition\n\ The Schur@tie{}decomposition is used to compute eigenvalues of a\n\ square matrix, and has applications in the solution of algebraic\n\ Riccati equations in control (see @code{are} and @code{dare}).\n\ @code{schur} always returns\n\ @tex\n\ $S = U^T A U$\n\ @end tex\n\ @ifnottex\n\ @code{@var{S} = @var{U}' * @var{A} * @var{U}}\n\ @end ifnottex\n\ where\n\ @tex\n\ $U$\n\ @end tex\n\ @ifnottex\n\ @var{U}\n\ @end ifnottex\n\ is a unitary matrix\n\ @tex\n\ ($U^T U$ is identity)\n\ @end tex\n\ @ifnottex\n\ (@code{@var{U}'* @var{U}} is identity)\n\ @end ifnottex\n\ and\n\ @tex\n\ $S$\n\ @end tex\n\ @ifnottex\n\ @var{S}\n\ @end ifnottex\n\ is upper triangular. The eigenvalues of\n\ @tex\n\ $A$ (and $S$)\n\ @end tex\n\ @ifnottex\n\ @var{A} (and @var{S})\n\ @end ifnottex\n\ are the diagonal elements of\n\ @tex\n\ $S$.\n\ @end tex\n\ @ifnottex\n\ @var{S}.\n\ @end ifnottex\n\ If the matrix\n\ @tex\n\ $A$\n\ @end tex\n\ @ifnottex\n\ @var{A}\n\ @end ifnottex\n\ is real, then the real Schur@tie{}decomposition is computed, in which the\n\ matrix\n\ @tex\n\ $U$\n\ @end tex\n\ @ifnottex\n\ @var{U}\n\ @end ifnottex\n\ is orthogonal and\n\ @tex\n\ $S$\n\ @end tex\n\ @ifnottex\n\ @var{S}\n\ @end ifnottex\n\ is block upper triangular\n\ with blocks of size at most\n\ @tex\n\ $2\\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ along the diagonal. The diagonal elements of\n\ @tex\n\ $S$\n\ @end tex\n\ @ifnottex\n\ @var{S}\n\ @end ifnottex\n\ (or the eigenvalues of the\n\ @tex\n\ $2\\times 2$\n\ @end tex\n\ @ifnottex\n\ @code{2 x 2}\n\ @end ifnottex\n\ blocks, when\n\ appropriate) are the eigenvalues of\n\ @tex\n\ $A$\n\ @end tex\n\ @ifnottex\n\ @var{A}\n\ @end ifnottex\n\ and\n\ @tex\n\ $S$.\n\ @end tex\n\ @ifnottex\n\ @var{S}.\n\ @end ifnottex\n\ \n\ A complex decomposition may be forced by passing \"complex\" as @var{opt}.\n\ \n\ The eigenvalues are optionally ordered along the diagonal according to\n\ the value of @var{opt}. @code{@var{opt} = \"a\"} indicates that all\n\ eigenvalues with negative real parts should be moved to the leading\n\ block of\n\ @tex\n\ $S$\n\ @end tex\n\ @ifnottex\n\ @var{S}\n\ @end ifnottex\n\ (used in @code{are}), @code{@var{opt} = \"d\"} indicates that all eigenvalues\n\ with magnitude less than one should be moved to the leading block of\n\ @tex\n\ $S$\n\ @end tex\n\ @ifnottex\n\ @var{S}\n\ @end ifnottex\n\ (used in @code{dare}), and @code{@var{opt} = \"u\"}, the default, indicates\n\ that no ordering of eigenvalues should occur. The leading\n\ @tex\n\ $k$\n\ @end tex\n\ @ifnottex\n\ @var{k}\n\ @end ifnottex\n\ columns of\n\ @tex\n\ $U$\n\ @end tex\n\ @ifnottex\n\ @var{U}\n\ @end ifnottex\n\ always span the\n\ @tex\n\ $A$-invariant\n\ @end tex\n\ @ifnottex\n\ @var{A}-invariant\n\ @end ifnottex\n\ subspace corresponding to the\n\ @tex\n\ $k$\n\ @end tex\n\ @ifnottex\n\ @var{k}\n\ @end ifnottex\n\ leading eigenvalues of\n\ @tex\n\ $S$.\n\ @end tex\n\ @ifnottex\n\ @var{S}.\n\ @end ifnottex\n\ @end deftypefn")
 DEFUN_DLD (rsf2csf, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Function File} {[@var{U}, @var{T}] =} rsf2csf (@var{UR}, @var{TR})\n\ Convert a real, upper quasi-triangular Schur@tie{}form @var{TR} to a complex,\n\ upper triangular Schur@tie{}form @var{T}.\n\ \n\ Note that the following relations hold: \n\ \n\ @code{@var{UR} * @var{TR} * @var{UR}' = @var{U} * @var{T} * @var{U}'} and\n\ @code{@var{U}' * @var{U}} is the identity matrix I.\n\ \n\ Note also that @var{U} and @var{T} are not unique.\n\ @seealso{schur}\n\ @end deftypefn")

Function Documentation

DEFUN_DLD ( schur  ,
args  ,
nargout   
)
DEFUN_DLD ( rsf2csf  ,
args  ,
nargout   
)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines