InducedMatrixNorm

InducedMatrixNorm is a function that computes a randomized lower bound of the induced p&rarr;q norm of a matrix, defined as follows:
 * $$\|B\|_{p\rightarrow q} := \max\big\{\|B\mathbf{x}\|_q : \|\mathbf{x}\|_p = 1 \big\},$$

where
 * $$\|\mathbf{x}\|_{p} := \left(\sum_i|x_i|^p\right)^{1/p}$$

is the vector p-norm.

When p = q = 2, this is the usual operator norm, returned by MATLAB's built-in norm function. Similarly, when p = q = 1 or p = q = Inf, this is the maximum absolute column sum or maximum absolute row sum of the matrix, respectively, and for the matrix X it can be computed via the built-in MATLAB function norm(X,1) or norm(X,Inf). However, it most other cases this norm is hard to compute, and this function provides a randomized lower bound of it.

The lower bound is found via the algorithm described here, which starts with a random vector and performs a local optimization based on that starting vector.

Syntax

 * NRM = InducedMatrixNorm(X,P)</tt>
 * NRM = InducedMatrixNorm(X,P,Q)</tt>
 * NRM = InducedMatrixNorm(X,P,Q,TOL)</tt>
 * NRM = InducedMatrixNorm(X,P,Q,TOL,V0)</tt>
 * [NRM,V] = InducedMatrixNorm(X,P,Q,TOL,V0)</tt>

Input arguments

 * X</tt>: A matrix to have its induced (P</tt>&rarr;Q</tt>)-norm computed.
 * P</tt>: A real number &ge; 1, or Inf</tt>.
 * Q</tt> (optional, default equals P</tt>): A real number &ge; 1, or Inf</tt>.
 * TOL</tt> (optional, default equals sqrt(eps)</tt>): Numerical tolerance used throughout the script.
 * V0</tt> (optional, default is randomly-generated): A vector to start the numerical search from.

Output arguments

 * <tt>NRM</tt>: A lower bound on the norm of <tt>X</tt>.
 * <tt>V</tt> (optional): A vector with <tt>norm(V,P) = 1</tt> such that <tt>norm(X*V,Q) = NRM</tt> (i.e., a vector that attains the local maximum that was found).

Induced norms of the identity matrix
The n-by-n identity matrix has induced p&rarr;q-norm equal to $\max\{n^{1/q - 1/p}, 1\}$, which this function finds exactly: