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
[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
CONDMAX: Specifies an upper bound on the condition number of
T. By default,
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.