Block-diagonal Schur factorization
[T,B,BLKS] = bdschur(A,CONDMAX)
[T,B] = bdschur(A,[],BLKS)
[T,B,BLKS] = bdschur(A,CONDMAX)
computes
a transformation matrix T such that B = T \ A * T is
block diagonal and each diagonal block is a quasi upper-triangular
Schur matrix.
[T,B] = bdschur(A,[],BLKS)
pre-specifies
the desired block sizes. The input matrix A should already be
in Schur form when you use this syntax.
A
: Matrix for block-diagonal Schur
factorization.
CONDMAX
: Specifies an upper bound on the condition number of
T. By default, CONDMAX =
1/sqrt(eps)
. Use CONDMAX
to control the
tradeoff between block size and conditioning of T with
respect to inversion. When CONDMAX
is a larger value, the
blocks are smaller and T
becomes more ill-conditioned.
T
: Transformation matrix.
B
: Matrix B = T \ A * T.
BLKS
: Vector of block sizes.