# remove_a12

Basis change to remove the (1, 2) block of the block-ordered real Schur matrix $$\mathbf{A}$$

Being $$\mathbf{A}_s\in\mathbb{R}^{m\times m}$$ a matrix of the form

$\begin{split}\mathbf{A}_s = \begin{bmatrix} A_{11} & A_{12} \\ 0 & A_{22} \end{bmatrix}\end{split}$

the (1,2) block is removed by solving the Sylvester equation

$\mathbf{A}_{11}\mathbf{X} - \mathbf{X}\mathbf{A}_{22} + \mathbf{A}_{12} = 0$

used to build the change of basis

$\begin{split}\mathbf{T} = \begin{bmatrix} \mathbf{I}_{s,s} & -\mathbf{X}_{s,u} \\ \mathbf{0}_{u, s} & \mathbf{I}_{u,u} \end{bmatrix}\end{split}$

where $$s$$ and $$u$$ are the respective number of stable and unstable eigenvalues, such that

$\begin{split}\mathbf{TA}_s\mathbf{T}^\top = \begin{bmatrix} A_{11} & \mathbf{0} \\ 0 & A_{22} \end{bmatrix}.\end{split}$
param As:

Block-ordered real Schur matrix (can be built using sharpy.rom.utils.krylovutils.schur_ordered()).

type As:

np.ndarray

param n_stable:

Number of stable eigenvalues in As.

type n_stable:

int

returns:

Basis transformation $$\mathbf{T}\in\mathbb{R}^{m\times m}$$.

rtype:

np.ndarray

References

Jaimoukha, I. M., Kasenally, E. D.. Implicitly Restarted Krylov Subspace Methods for Stable Partial Realizations SIAM Journal of Matrix Analysis and Applications, 1997.