Estoy tratando de entender cómo descomponer una matriz unitaria $U$ en un producto de unitarios $V_1 V_2\dots$ que se eligen de un conjunto $S$ . El algoritmo que tengo en mente funciona con matrices unitarias de dimensión finita (aunque podría mejorarse, por ejemplo, buscando más de una $V$ a la vez): \begin{align} V_1 &=\mathrm{argmin}_{V\in S}||I-V^\dagger U||\\ V_2 &=\mathrm{argmin}_{V\in S}||I-V^\dagger V_1^\dagger U||\\ \mathrm{etc}&\dots \end{align} pero en la práctica mi $U$ es de dimensiones infinitas, por lo que me veo obligado a trabajar con matrices truncadas (permítanme indicar las matrices truncadas con una tilde).
Y aquí está el problema como los unitarios truncados no son necesariamente unitarios, no está garantizado que el $\tilde V$ me acerca a $\tilde I$ que cualquier otra opción en $S$ y el algoritmo puede devolver un error $V$ 's. Un ejemplo trivial es cuando $U=V_1\in S$ : puede haber un elemento $W_1$ en $S$ tal que $$||\tilde I-\tilde{V_1}^\dagger \tilde U||=||\tilde I-\tilde{V_1}^\dagger \tilde V_1|| > ||\tilde I-\tilde{W_1}^\dagger \tilde V_1||$$ y el algoritmo aquí devolvería $W_1$ en lugar de $V_1$ .
¿Hay alguna manera de hacer que esto funcione?
EDITAR (información adicional): Decido dónde truncar mirando los vectores en los que voy a utilizar los unitarios: tienen entradas no nulas hasta la dimensión $D$ y ahí es donde trunco.
Este es un problema de física, donde $U$ es un unitario generado por un hamiltoniano complicado y $S$ contiene algunos unitarios simples generados por hamiltonianos de bajo orden, como $V=\exp[\theta (a^\dagger b+ab^\dagger)]$ o $V=\exp[z {a^\dagger}^2 - z^* a^2]$ . Como los operadores de creación/aniquilación son de dimensión infinita, también lo son todos los $V$ 's.