Negativity
Negativity | |
Computes the negativity of a bipartite density matrix | |
Other toolboxes required | none |
---|---|
Related functions | PartialTranspose TraceNorm |
Function category | Entanglement measures |
Usable within CVX? | yes (convex) |
Negativity is a function that computes the negativity of a bipartite density matrix, which is defined as follows: \[\mathcal{N}(\rho) := \frac{1}{2}\big( \|\rho^\Gamma\|_1 - 1 \big),\] where $\rho^\Gamma$ is the partial transpose of $\rho$ and $\|\cdot\|_1$ is the trace norm. Equivalently, the negativity of $\rho$ is the absolute value of the sum of the negative eigenvalues of $\rho^\Gamma$.
Syntax
- NEG = Negativity(RHO)
- NEG = Negativity(RHO,DIM)
Argument descriptions
- RHO: A bipartite density matrix.
- DIM (optional, by default has both subsystems of equal dimension): A specification of the dimensions of the subsystems that RHO acts on. DIM can be provided in one of two ways:
- If DIM is a scalar, it is assumed that the first subsystem has dimension DIM and the second subsystem has dimension length(RHO)/DIM.
- If $X \in M_{n_1} \otimes M_{n_2}$ then DIM should be a row vector containing the dimensions (i.e., DIM = [n_1, n_2]).
Examples
PPT states have zero negativity
States with positive partial transpose have zero negativity. The following code verifies this fact for one particular Chessboard state:
>> rho = ChessboardState(1,2,3,4,5,6);
>> Negativity(rho)
ans =
1.1102e-16
Can be used with CVX
This function is convex and can be used in the objective function or constraints of a CVX optimization problem. For example, the following code finds the maximum overlap of a density matrix $\rho$ with the maximally-entangled pure state, subject to the constraint that its negativity is no larger than 1/2:
>> d = 3;
>> phi = MaxEntangled(d);
>> phi = phi*phi'; % the maximally-entangled pure state, represented as a rank-1 density matrix
>> cvx_begin sdp quiet
variable rho(d^2,d^2) hermitian;
maximize trace(phi*rho);
subject to
trace(rho) == 1;
rho >= 0;
Negativity(rho) <= 1/2;
cvx_end
cvx_optval
cvx_optval =
0.6667
Source code
Click here to view this function's source code on github.