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.