TraceNorm
From QETLAB
TraceNorm | |
Computes the trace norm of an operator | |
Other toolboxes required | none |
---|---|
Related functions | kpNorm KyFanNorm SchattenNorm |
Function category | Norms |
Usable within CVX? | yes (convex) |
TraceNorm is a function that computes the trace norm of an operator (i.e., the sum of its singular values). It works with both full and sparse matrices.
Contents
Syntax
- NRM = TraceNorm(X)
Argument descriptions
- X: An operator to have its trace norm computed.
Examples
Trace norm of a density matrix
Density matrices all have trace norm equal to 1:
>> rho = RandomDensityMatrix(100); >> TraceNorm(rho) ans = 1.0000
Can be used with CVX
This function can be used in the objective function or constraints of a CVX optimization problem. For example, the following code computes the minimum value of $\mathrm{Tr}(S\rho)$ over all density matrices $\rho$ with the property that the trace norm of their realignment is no larger than 1 (this set of state approximates the set of separable states), where $S$ is the swap operator:
>> cvx_begin sdp quiet variable rho(9,9) hermitian; minimize trace(rho*SwapOperator(3)); subject to trace(rho) == 1; rho >= 0; TraceNorm(Realignment(rho)) <= 1; cvx_end cvx_optval cvx_optval = -0.3333
Source code
Click on "expand" to the right to view the MATLAB source code for this function.
%% TRACENORM Computes the trace norm of an operator
% This function has one required argument:
% X: an operator
%
% NRM = TraceNorm(X) is the trace norm of X.
%
% URL: http://www.qetlab.com/TraceNorm
% requires: kpNorm.m
% author: Nathaniel Johnston (nathaniel@njohnston.ca)
% package: QETLAB
% last updated: October 22, 2014
function nrm = TraceNorm(X)
nrm = kpNorm(X,min(size(X)),1);