Consider an $N\times N$ (real or complex) matrix $A$, and some $n<N$. Is there a good numerical algorithm that finds the set consisting of an $n\times n$ matrix $B$, an $n\times N$ matrix $I$, and an $N\times n$ matrix $I^-$ such that $I^-I=\mathbb{1}$, which minimizes $$ \|A-IBI^-\|^2\;,$$ where $\|X\|^2 = \mathop{Tr}(XX^\dagger)$ is the (squared) Hilbert-Schmidt norm?

If yes, I'd like to know the same for a finite collection $A^j$, $0\leq j<J$. That is, find $B^j$, $I$ and $I^-$ minimizing $$ \sum_{0\leq j<J}\|A^j-IB^jI^-\|^2\;.$$

If it helps, I'd be fine with the following modifications to the problem:

- I'm not super insistant about the precise choice of norm. $A^j-IB^jI^-$ can be considered a $3$-index array in the vector space $\mathbb{C}^{NNJ}$, and if you have an answer for other norms in that vector space than the $2$-norm I'd be very happy, too. In the use-cases I have in mind, the underlying assumption is that the minimum is very close to $0$ such that the precise choice of norm is not super important.
- It should be fine to restrict $I$ to be an isometry.
- One might consider minimizing something like $$ \|A-IBI^-\|^2\ + \|I^-I-\mathbb{1}\|^2$$ instead of demanding $I^-I=\mathbb{1}$.