toqito.state_props.schmidt_rank
- toqito.state_props.schmidt_rank(rho, dim=None)[source]
Compute the Schmidt rank [WikSR].
For complex Euclidean spaces \(\mathcal{X}\) and \(\mathcal{Y}\), a pure state \(u \in \mathcal{X} \otimes \mathcal{Y}\) possesses an expansion of the form:
\[u = \sum_{i} \lambda_i v_i w_i,\]where \(v_i \in \mathcal{X}\) and \(w_i \in \mathcal{Y}\) are orthonormal states.
The Schmidt coefficients are calculated from
\[A = \text{Tr}_{\mathcal{B}}(u^* u).\]The Schmidt rank is the number of non-zero eigenvalues of \(A\). The Schmidt rank allows us to determine if a given state is entangled or separable. For instance:
If the Schmidt rank is 1: The state is separable,
If the Schmidt rank > 1: The state is entangled.
Compute the Schmidt rank of the input
rho, provided as either a vector or a matrix that is assumed to live in bipartite space, where both subsystems have dimension equal tosqrt(len(vec)).The dimension may be specified by the 1-by-2 vector
dimand the rank in that case is determined as the number of Schmidt coefficients larger thantol.Examples
Computing the Schmidt rank of the entangled Bell state should yield a value greater than one.
>>> from toqito.states import bell >>> from toqito.state_props import schmidt_rank >>> rho = bell(0).conj().T * bell(0) >>> schmidt_rank(rho) 2
Computing the Schmidt rank of the entangled singlet state should yield a value greater than \(1\).
>>> from toqito.states import bell >>> from toqito.state_props import schmidt_rank >>> u = bell(2).conj().T * bell(2) >>> schmidt_rank(u) 2
Computing the Schmidt rank of a separable state should yield a value equal to \(1\).
>>> from toqito.states import basis >>> from toqito.state_props import schmidt_rank >>> import numpy as np >>> e_0, e_1 = basis(2, 0), basis(2, 1) >>> e_00 = np.kron(e_0, e_0) >>> e_01 = np.kron(e_0, e_1) >>> e_10 = np.kron(e_1, e_0) >>> e_11 = np.kron(e_1, e_1) >>> >>> rho = 1 / 2 * (e_00 - e_01 - e_10 + e_11) >>> rho = rho.conj().T * rho >>> schmidt_rank(rho) 1
References
[WikSR]Wikipedia: Schmidt rank https://en.wikipedia.org/wiki/Schmidt_decomposition#Schmidt_rank_and_entanglement
- Parameters:
rho – A bipartite vector or matrix to have its Schmidt rank computed.
dim – A 1-by-2 vector or matrix.
- Returns:
The Schmidt rank of
rho.