# KpNormDual

 Other toolboxes required kpNormDual Computes the dual of the (k,p)-norm of a vector or matrix none kpNormKyFanNormSchattenNormTraceNorm Norms yes (convex)

kpNormDual is a function that computes the dual of the (k,p)-norm of a vector or matrix. More explicitly, the (k,p)-norm of a vector $x = (x_1,x_2,\ldots,x_n)$ is $\|x\|_{(k,p)} := \left(\sum_{j=1}^k \big|x_i^\downarrow\big|^p \right)^{1/p},$ where $(x_1^\downarrow,x_2^\downarrow,\ldots,x_n^\downarrow)$ is a rearrangement of the vector $x$ with the property that $|x_1^\downarrow| \geq |x_2^\downarrow| \geq \cdots \geq |x_n^\downarrow|$. Similarly, the (k,p)-norm of a matrix is the (k,p)-norm of its vector of singular values. This function computes the dual of this norm, which is fairly complicated and was derived in. This function works with both full and sparse vectors and matrices.

## Syntax

• NRM = kpNormDual(X,K,P)

## Argument descriptions

• X: A vector or matrix to have its norm computed.
• K: A positive integer.
• P: A real number ≥ 1, or Inf.

## Examples

### A simple 4-by-4 example

The (k,p)-norm of a matrix when k = 1 is simply the operator norm. The dual of the operator norm is the trace norm, so when k = 1 this function just returns the trace norm (regardless of p):

>> X = [1 1 1 1;1 2 3 4;1 4 9 16;1 8 27 64];
>> [kpNormDual(X,1,1), TraceNorm(X)]

ans =

77.0015   77.0015

Similarly, if K = min(size(X)) and P = 2 then kpNorm(X,K,P) is the Frobenius norm, which is its own dual. Thus kpNormDual(X,K,2) decreases from the trace norm of X to its Frobenius norm as K increases:

>> [kpNormDual(X,1,2), TraceNorm(X)]

ans =

77.0015   77.0015

>> kpNormDual(X,2,2)

ans =

72.6903

>> kpNormDual(X,3,2)

ans =

72.6505

>> [kpNormDual(X,4,2), norm(X,'fro')]

ans =

72.6498   72.6498