I am looking for a publicly-available software package (preferably in Python, but I'll take what I can get) capable of performing a decomposition of a real $n\times n$ skew-symmetric (sometimes called anti-symmetric) matrix $\textbf{A} = - \textbf{A}^T$. I have seen this decomposition referred to as the Youla decomposition, for example, in this Wikipedia article. I don't want to assume that this terminology is well-known, so I will describe the decomposition here.

The decomposition consists in finding an orthogonal matrix $\textbf{Q}$ such that $$ \textbf{A} = \textbf{Q} \Sigma \textbf{Q}^T \,,$$

and $\Sigma$ is of the form: \begin{equation}\Sigma = \begin{bmatrix} \begin{matrix} 0 & \lambda_1\\ -\lambda_1 & 0\end{matrix} & 0 & \cdots & 0 \\ 0 & \begin{matrix}0 & \lambda_2\\ -\lambda_2 & 0\end{matrix} & & 0 \\ \vdots & & \ddots & \vdots \\ 0 & 0 & \cdots & \begin{matrix}0 & \lambda_r\\ -\lambda_r & 0\end{matrix} \\ & & & & \begin{matrix}0 \\ & \ddots \\ & & 0 \end{matrix} \end{bmatrix} \,. \end{equation} for real $\lambda_k$.

  • $\begingroup$ If nothing else, you can get this decomposition by leveraging software that does spectral decompositions or singular value decompositions $\endgroup$ – Omnomnomnom Jul 13 '18 at 17:17
  • $\begingroup$ Can you be more specific please? Would this software give me this decomposition directly, or would it give me an intermediate result which I could then use to easily get the decomposition? $\endgroup$ – Surgical Commander Jul 13 '18 at 17:44
  • $\begingroup$ It would give you an intermediate result which you could use to easily get the decomposition $\endgroup$ – Omnomnomnom Jul 13 '18 at 17:46
  • $\begingroup$ It seems like simply applying Schur's algorithm (e.g. in Julia or Mathematica) gives this decomposition automatically. I'm a bit surprised, because the general form of the Schur decomposition returns an upper triangular matrix, not on of this form above. $\endgroup$ – Surgical Commander Jul 17 '18 at 16:07
  • $\begingroup$ Interesting idea. Perhaps the Julia/Mathematica Schur decomposition algorithm is set to give a Real Schur decomposition in certain cases. Because $A$ is normal, any unitary block upper-triangularization will yield a block diagonalization. $\endgroup$ – Omnomnomnom Jul 17 '18 at 16:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.