# slicot\_mb03rd

Reduction of a real Schur form matrix to a block-diagonal form.

## Syntax

* \[A\_OUT, X\_OUT, NBLCKS, BLSIZE, WR, WI, INFO] = slicot\_mb03rd(JOBX, SORT, PMAX, A\_IN, X\_IN, TOL)

## Input argument

* JOBX - Specifies whether or not the transformations are accumulated, as follows: = 'N': The transformations are not accumulated; = 'U': The transformations are accumulated in X (the given matrix X is updated)
* SORT - Specifies whether or not the diagonal blocks of the real Schur form are reordered, as follows: = 'N': The diagonal blocks are not reordered; = 'S': The diagonal blocks are reordered before each step of reduction, so that clustered eigenvalues appear in the same block; = 'C': The diagonal blocks are not reordered, but the "closest-neighbour" strategy is used instead of the standard "closest to the mean" strategy. = 'B': The diagonal blocks are reordered before each step of reduction, and the "closest-neighbour" strategy is used.
* PMAX - An upper bound for the infinity norm of elementary submatrices of the individual transformations used for reduction
* A\_IN - the leading N-by-N part of this array must contain the matrix A to be block-diagonalized, in real Schur form.
* X\_IN - if JOBX = 'U', the leading N-by-N part of this array must contain a given matrix X.
* TOL - The tolerance to be used in the ordering of the diagonal blocks of the real Schur form matrix.

## Output argument

* A\_OUT - the leading N-by-N part of this array contains the computed block-diagonal matrix, in real Schur canonical form. The non-diagonal blocks are set to zero.
* X\_OUT - if JOBX = 'U', the leading N-by-N part of this array contains the product of the given matrix X and the transformation matrix that reduced A to block-diagonal form. The transformation matrix is itself a product of non-orthogonal similarity transformations having elements with magnitude less than or equal to PMAX. If JOBX = 'N', this array is not referenced
* NBLCKS - The number of diagonal blocks of the matrix A.
* BLSIZE - The first NBLCKS elements of this array contain the orders of the resulting diagonal blocks of the matrix A.
* WR - real parts of the eigenvalues of the matrix A.
* WI - imaginary parts of the eigenvalues of the matrix A.
* INFO - = 0: successful exit;

## Description

To reduce a matrix A in real Schur form to a block-diagonal form using well-conditioned non-orthogonal similarity transformations. The condition numbers of the transformations used for reduction are roughly bounded by PMAX\*PMAX, where PMAX is a given value. The transformations are optionally postmultiplied in a given matrix X. The real Schur form is optionally ordered, so that clustered eigenvalues are grouped in the same block.

Used function(s)

MB03RD

Bibliography

http://slicot.org/objects/software/shared/doc/MB03RD.html

## Example

```matlab
N = 8;
PMAX = 1.D03;
TOL = 1.D-2;
JOBX = 'U';
SORT = 'S';
A_IN = [1.   -1.    1.    2.    3.    1.    2.    3.;
   1.    1.    3.    4.    2.    3.    4.    2.;
   0.    0.    1.   -1.    1.    5.    4.    1.;
   0.    0.    0.    1.   -1.    3.    1.    2.;
   0.    0.    0.    1.    1.    2.    3.   -1.;
   0.    0.    0.    0.    0.    1.    5.    1.;
   0.    0.    0.    0.    0.    0.    0.99999999   -0.99999999;
   0.    0.    0.    0.    0.    0.    0.99999999    0.99999999];
X_IN = zeros(N, N);
[A_OUT, X_OUT, NBLCKS, BLSIZE, WR, WI, INFO] = slicot_mb03rd(JOBX, SORT, PMAX, A_IN, X_IN, TOL)
```

## History

| Version | Description     |
| ------- | --------------- |
| 1.0.0   | initial version |

## Author

SLICOT Documentation
