$\newcommand{\ket}[1]{|{#1}\rangle}\newcommand{\bra}[1]{\langle{#1}|}$ Considere un fotón con polarización lineal modelado por el estado $\rho=\ket{\theta}\bra{\theta}$, donde $\ket{\theta} = \bigl[\begin{smallmatrix}\cos(\theta)\\\sin(\theta)\end{smallmatrix}\bigr]$.
import numpy as np
def foton(theta): # Matriz de densidad de probabilidad de un foton polarizado
ket_theta = np.array([np.cos(theta), np.sin(theta)])
rho = np.outer(ket_theta, ket_theta)
return rho
Este fotón se transmite por una fibra óptica cuyo efecto se modela con la transformación \begin{align*} U_{\alpha} = \left[\begin{matrix} \cos(\alpha)& -\sin(\alpha)\\\sin(\alpha)& \cos(\alpha) \end{matrix}\right]. \end{align*}
def fibra(alpha): # Transformación unitaria de una fibra optica
U = np.array([[np.cos(alpha), -np.sin(alpha)], [np.sin(alpha), np.cos(alpha)]])
return U
Esta transformación es una operación unitaria, dado que $U_{\alpha}U_{\alpha}^H = U_{\alpha}^H U_{\alpha} = \boldsymbol{I}$.
print("Comprobamos que se trata de una matriz unitaria para un parámetro dado:\n")
alpha = 0.2;
U = fibra(alpha)
print("U =\n", str(U), "\n")
print(U @ U.conj().T)
print(U.conj().T @ U)
Comprobamos que se trata de una matriz unitaria para un parámetro dado: U = [[ 0.98006658 -0.19866933] [ 0.19866933 0.98006658]] [[ 1.00000000e+00 -1.23079293e-17] [-1.23079293e-17 1.00000000e+00]] [[1.00000000e+00 1.23079293e-17] [1.23079293e-17 1.00000000e+00]]
La matriz de densidad de probabilidad del fotón a la salida de la fibra está dada por \begin{align*} \sigma &= U_{\alpha} \rho U_{\alpha}^H. \end{align*}
Por ejemplo, para un fotón con $\theta=0$ (polarización horizontal) y una fibra óptica con parámetro $\alpha=\pi/4$, se tiene que \begin{align*} \sigma &= \left[\begin{matrix} \cos(\pi/4)& -\sin(\pi/4)\\\sin(\pi/4)& \cos(\pi/4) \end{matrix}\right] \left[\begin{matrix} 1&0\\0&0 \end{matrix}\right] \left[\begin{matrix} \cos(\pi/4)& \sin(\pi/4)\\-\sin(\pi/4)& \cos(\pi/4) \end{matrix}\right] = \frac{1}{2}\left[\begin{matrix} 1&1\\1&1 \end{matrix}\right]. \end{align*}
rho = foton(0)
U = fibra(np.pi/4)
sigma = U @ rho @ U.conj().T
print("rho =\n", str(rho), "\nsigma =\n", str(sigma))
rho = [[1. 0.] [0. 0.]] sigma = [[0.5 0.5] [0.5 0.5]]
Este estado se corresponde a una fotón $\sigma =\ket{\phi}\bra{\phi}$ con $\phi=\pi/4$. En general, se puede comprobar que la transformación $U_{\alpha}$ definida en este ejemplo introduce una rotación de la polarización lineal del fotón de entrada por un ángulo $\alpha$: