计算两个量子态保真度的公式
F ( ρ , σ ) = ( Tr ρ σ ρ ) 2 = ( Tr σ ρ σ ) 2 = F ( σ , ρ ) F(\rho,\sigma)=\left(\text{Tr}\sqrt{\sqrt{\rho}\sigma\sqrt{\rho}}\right)^2=\left(\text{Tr}\sqrt{\sqrt{\sigma}\rho\sqrt{\sigma}}\right)^2=F(\sigma,\rho) F(ρ,σ)=(Trρσρ)2=(Trσρσ)2=F(σ,ρ)
纯态之间的保真度(两个状态向量)
if rho.ndim == 1 and sigma.ndim == 1:
return np.abs(np.inner(rho.conj().T, sigma)) ** 2
F ( ρ , σ ) = ∣ ⟨ ψ ρ ∣ ψ σ ⟩ ∣ 2 F(\rho,\sigma)=\left|\langle\psi_\rho|\psi_\sigma\rangle\right|^2 F(ρ,σ)=∣⟨ψρ∣ψσ⟩∣2
纯态与混态之间的保真度(状态向量与密度矩阵)
if rho.ndim == 1 and sigma.ndim == 2:
return np.real(rho.conj().T @ sigma @ rho)
F ( ρ , σ ) = T r ( ⟨ ψ ρ ∣ σ ∣ ψ ρ ⟩ ) F(\rho,\sigma)=\mathrm{Tr}(\langle\psi_\rho|\sigma|\psi_\rho\rangle) F(ρ,σ)=Tr(⟨ψρ∣σ∣ψρ⟩)
混态与纯态之间的保真度(密度矩阵与状态向量)
if rho.ndim == 2 and sigma.ndim == 1:
return np.real(sigma.conj().T @ rho @ sigma)
F ( ρ , σ ) = T r ( ⟨ ψ σ ∣ ρ ∣ ψ σ ⟩ ) F(\rho,\sigma)=\mathrm{Tr}(\langle\psi_\sigma|\rho|\psi_\sigma\rangle) F(ρ,σ)=Tr(⟨ψσ∣ρ∣ψσ⟩)
混态之间的保真度(两个密度矩阵)
return np.real(np.trace(rho @ sigma) + 2 * np.sqrt(det(rho) * det(sigma)))
F
(
ρ
,
σ
)
=
Tr
(
ρ
σ
)
+
2
∗
∣
ρ
∣
∣
σ
∣
F(\rho,\sigma)=\text{Tr}(\rho\sigma)+2*\sqrt{|\rho||\sigma|}
F(ρ,σ)=Tr(ρσ)+2∗∣ρ∣∣σ∣
|*|表示矩阵表示的行列式的值