6 votos

truncamiento ante matriz exponencial: ¿cómo hacerlo bien?

Estoy intentando calcular (numéricamente) las matrices de algunas operaciones ópticas cuánticas sencillas, que en principio son unitarias. Sin embargo, en mi caso son unitarias en un espacio de dimensión infinita, por lo que tengo que truncarlas. El resultado ya no es necesariamente unitario, pero si todas las entradas son correctas hasta el tamaño que yo elija, estoy contento.

Así que calculo el generador, lo trunco al tamaño que me guste y luego lo exponencio, ¿no? Pues no. No funciona así: las entradas pueden ser realmente muy erróneas. En algunos casos son casi correctas, en otros están hechas un lío.

Ejemplo 1 el divisor de haces $\exp[i\theta(a^\dagger b + ab^\dagger)]$ .

  1. calcula $a$ et $a^\dagger$ hasta la dimensión (digamos) $m$ .
  2. multiplícalos por el producto kronecker
  3. exponenciar

resultado: las entradas son casi correctas, excepto la última fila y columna de ambos espacios como en esta figura (para $m=4$ ) :

enter image description here

Las únicas partes correctas son las de los espacios en blanco. En este caso la solución es truncar $a$ et $a^\dagger$ al tamaño $m+1$ y luego desechar las filas/columnas erróneas.

Ejemplo 2 el exprimidor monomodo $\exp[\frac{1}{2}(z^*a^2-z{a^\dagger}^2)]$

Todo esto es un lío: a medida que aumento el tamaño de $a$ las entradas del resultado final (que están colocadas correctamente en un "patrón de tablero de ajedrez") parecen converger a sus valores correctos, pero para que el primer bloque (digamos) 4x4 sea algo correcto tengo que truncar $a$ a $m\approx 50$ y luego truncar el resultado de la exponenciación a un tamaño 4x4.

¿Lo estoy haciendo mal? Eventualmente me gustaría producir las matrices de las operaciones más bien no lineal, donde el $a$ et $a^\dagger$ los operadores se elevan a grandes potencias, ¿cómo sé si lo estoy haciendo bien?

ACTUALIZACIÓN: En el primer caso (el beamsplitter) el unitario está en $SU(2)$ que es compacto y admite irreps finito-dimensionales. Así que puedo exponenciarlos individualmente y a partir de ellos construir el unitario truncado

En el segundo caso (el exprimidor) el unitario está en $SU(1,1)$ que no es compacto y, de hecho, el operador Casimir tiene dos eigenspaces de dimensión infinita: uno correspondiente a los estados pares y otro a los estados Impares de Fock. También para el squeezer bimodal los eigenspaces del Casimir son infinito-dimensionales (aunque contablemente infinitos). Así que no puedo utilizar el método de los multipletes en este caso.

0 votos

Puede que sea demasiado ingenuo, pero si tuviera que hacer algo así intentaría diagonalizar el generador $M=U D U^{-1}$ y luego $exp(M)=U exp(D) U^{-1}$ . ¿Quizás ayude? Mantenme informado, me interesa la respuesta.

0 votos

Esto es precisamente lo que la matriz exponencial hace entre bastidores.

0 votos

No. Echa un vistazo a lo que hace Matlab, por ejemplo.

4voto

Karsten Puntos 2414

He encontrado la respuesta, al menos para algunos de los casos que creía intratables, incluidos mis ejemplos. La herramienta principal es el teorema del desenredo para el grupo correspondiente.

Ejemplo 1 la transformación está en $SU(2)$ por lo que necesitamos el $SU(2)$ teorema del desenredo: $$ \exp(z J_+-z^* J_-) = \exp(\tau_+ J_+)\exp(\tau_ 0J_0)\exp(\tau_-J_-) $$ Aquí $\{J_0,J_\pm\}$ satisfacer las $su(2)$ relaciones de álgebra: $[J_\pm,J_0]=\mp J_\pm,\ [J_-,J_+]=-2J_0$ y si $z=re^{i\phi}$ entonces $\tau_\pm=\pm e^{\pm i\phi}\tan(r),\tau_0=2\log\sec(r)$ . Si aplicamos esto a la transformación beamsplitter de la forma $U(\theta)=\exp[\theta(a^\dagger b-ab^\dagger)]$ obtenemos $$ U(\theta) = \exp(\tan(\theta)a^\dagger b)\exp[\log\sec(\theta)(a^\dagger a-b^\dagger b)]\exp(-\tan(\theta)a b^\dagger) $$ que no tiene problemas de truncamiento.

Ejemplo 2 la transformación está en $SU(1,1)$ por lo que necesitamos el $SU(1,1)$ teorema del desenredo: $$ \exp(z K_+-z^* K_-) = \exp(\sigma_+ K_+)\exp(\sigma_0K_0)\exp(\sigma_-K_-) $$ Aquí $\{K_0,K_\pm\}$ satisfacer las $su(1,1)$ relaciones de álgebra: $[K_\pm,K_0]=\mp K_\pm,\ [K_-,K_+]=2K_0$ y si $z=re^{i\phi}$ entonces $\sigma_\pm=\pm e^{\pm i\phi}\tanh(r),\sigma_0=-2\log\cosh(r)$ . Si aplicamos esto al operador de compresión $S(z)=\exp[z \frac{{a^\dagger}^2}{2}-z^* \frac{{a}^2}{2}]$ obtenemos $$ S(z) = \exp\left(e^{i\phi}\tanh(|z|)\frac{{a^\dagger}^2}{2}\right)\exp\left(-\log\cosh(|z|)(a^\dagger a+\frac{1}{2})\right)\exp\left(-e^{-i\phi}\tanh(|z|)\frac{{a}^2}{2}\right) $$ que no tiene problemas de truncamiento.

Caso general en general podría ser imposible tener un teorema de desenmarañamiento adecuado, pero resultados como este puede ayudar a aproximarla (véanse las ecs. (30)-(35) para los dos ejemplos anteriores).

Espero que esto ayude a los que se tropiecen con mi mismo problema.

1 votos

¿Entiendes por qué no tienes los mismos problemas con esta forma de S(z)? ¿ Se comporta mejor cada nueva matriz exponencial, o es la combinación de las tres la que compensa entre sí los errores de truncamiento ?

0 votos

Es el hecho (supongo) de que en cada exponencial el generador es diagonal ( $K_0$ ) o diagonal superior/inferior ( $K_\pm$ ), por lo que cada exponencial es diagonal o triangular superior/inferior.

3voto

Stas Puntos 282

En la práctica, se espera que la exponenciación converja a medida que aumenta el tamaño de la entrada truncada. Así que, sin saber nada del problema en cuestión, yo

  1. encontrar el tamaño deseado de la matriz de respuesta (digamos, $n\times n$ ),
  2. truncar la matriz de entrada al doble de ese tamaño ( $2n \times 2n$ ) y calcular la exponencial,
  3. calcule de nuevo la exponencial a un ( $[2n+1]\times[2n+1]$ ),
  4. ver si el $n\times n$ matriz ha convergido a la precisión numérica deseada, si lo ha hecho, terminar, si no, doblar de nuevo, etc.

Lo ideal, como mencionó @Adam en un comentario, sería encontrar los vectores propios y los valores propios del operador/matriz en cuestión para hacer el cálculo. Examinar ese enfoque es instructivo para averiguar si el algoritmo anterior puede converger. Si la expresión para el operador original es: $$A_{ij} = \sum_{k} V_{ki}^\star \lambda_k V_{kj},$$ entonces el exponencial es: $$[\exp(A)]_{ij} = \sum_{k} V_{ki}^\star \mathrm{e}^{\lambda_k} V_{kj}.$$

La convergencia de la segunda expresión requiere que los vectores propios no mezclen demasiado los estados, de lo contrario la suma divergirá. Por ejemplo, si los valores propios crecen linealmente con $k$ entonces los vectores propios tienen que caer más rápido que exponencialmente en $i-k$ . En el caso ideal, cada vector propio tendrá un número finito de componentes, lo que garantiza la convergencia, pero no siempre es así.

1voto

gagneet Puntos 128

Si una matriz $A$ no es diagonal ni está en la forma normal de Jordan, entonces hay que truncar el exponencial $B=e^A$ después de calcularla, y no sólo truncar la matriz $A$ y, a continuación, calcular $B$ . Esto se debe a que los elementos de la matriz $A_{nm}$ , $n,m>N$ que usted descuida truncando $A$ a $N\times N$ contribuyen a los elementos de la matriz $B_{nm}$ , $n,m\leq N$ como se puede ver ampliando $B=I+A+\frac{1}{2}A^2+\cdots$ . Las contribuciones a $B_{nm}$ , $n,m\leq N$ de $A^2$ etc. que usted descuida truncando $A$ a $N\times N$ son $\displaystyle \sum_{k=N+1}^{\infty} A_{nk}A_{km}$ etc., que en general no son cero. Lo que se puede hacer es intentar calcular explícitamente los elementos de la matriz $\langle n|B|m\rangle$ en la base de Fock, hasta $N$ . Sin embargo, esto no es práctico y puede hacerse en casos limitados, por ejemplo, para el operador de desplazamiento $D(\alpha)=\text{exp}(\alpha \hat{a}^{\dagger}-\alpha^* \hat{a})$ : $$\langle n|D(\alpha)|m\rangle=(n!/m!)^{1/2} \alpha^{m-n} e^{-|\alpha|^2/2} L_n^{(n-m)}(|\alpha|^2),$$ donde $L$ son polinomios de Laguerre asociados (véase Glauber). Desafortunadamente para el operador de compresión $S(\xi)$ , $\xi=r e^{i\theta}$ puede calcular fácilmente sólo la primera columna y fila, utilizando $$\langle 2n| S(\xi)|0\rangle=\frac{(-\tanh r)^n}{\sqrt{\cosh r}}\frac{\sqrt{(2n)!}}{2^n n!}e^{i n \theta},$$ $$\langle 2n+1| S(\xi)|0\rangle=0$$ para $n=0,..., N$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X