Main Content

bdschur

Block-diagonal Schur factorization

Syntax

[T,B,BLKS] = bdschur(A,CONDMAX)
[T,B] = bdschur(A,[],BLKS)

Description

[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.

Input Arguments

  • 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.

Output Arguments

  • T: Transformation matrix.

  • B: Matrix B = T \ A * T.

  • BLKS: Vector of block sizes.

See Also

|

Introduced in R2008a