Implementação do quantum Uhlmann Fidelity no Mathematica
Eu quero implementar a fidelidade quântica de Uhlmann $$F(\rho, \sigma) := \mathrm{tr} \left[\sqrt{\sqrt{\rho} \sigma \sqrt{\rho}} \right]^2.$$ no Mathematica como uma medida de "proximidade" entre duas matrizes de densidade.
No entanto, acho que minha implementação está errada.
$$fidelity[\rho\_, \sigma\_] := (\mathrm{Tr} \left[\sqrt{(\sqrt{\rho}).\sigma.(\sqrt{\rho})} \right])^2$$
Quando eu testo no teste$\rho$ = {{1/9, 2/3, 2/9}, {1/3, 4/9, 4/9}, {2/9, 4/9, 4/9}};
teste$\sigma$ = {{1/9, 1/3, 2/9}, {1/3, 4/9, 4/9}, {2/9, 4/9, 4/9}};
Obtenho uma fidelidade de 1, o que obviamente não é correto, pois essas matrizes não são iguais. Eu esperaria que a fidelidade fosse 1 se e somente se$\rho=\sigma$.
Respostas
Aqui está uma definição que é insensível à normalização da matriz de densidade:
F[ρ_, σ_] := Tr[MatrixPower[MatrixPower[ρ, 1/2].σ.MatrixPower[ρ, 1/2], 1/2]]^2/(Tr[ρ]*Tr[σ])
Testes com semi-definido positivo $3\times3$ matrizes:
testρ = {{1/5, 1/5, 0}, {1/5, 3/5, 1/5}, {0, 1/5, 1/5}};
testσ = {{1/3, -1/6, 1/6}, {-1/6, 1/3, -1/6}, {1/6, -1/6, 1/3}};
F[testρ, testρ] // FullSimplify
(* 1 *)
F[testρ, testσ] // FullSimplify
(* 8/15 *)
F[testσ, testρ] // FullSimplify
(* 8/15 *)
F[testσ, testσ] // FullSimplify
(* 1 *)