norm

0th

Percentile

Compute the Norm of a Matrix

Computes a matrix norm of x using LAPACK. The norm can be the one ("O") norm, the infinity ("I") norm, the Frobenius ("F") norm, the maximum modulus ("M") among elements of a matrix, or the “spectral” or "2"-norm, as determined by the value of type.

Keywords
math
Usage
norm(x, type = c("O", "I", "F", "M", "2"))
Arguments
x
numeric matrix; note that packages such as \href{https://CRAN.R-project.org/package=#1}{\pkg{#1}}MatrixMatrix define more norm() methods.
type
character string, specifying the type of matrix norm to be computed. A character indicating the type of norm desired.
"O", "o" or "1"
specifies the one norm, (maximum absolute column sum);

"I" or "i"
specifies the infinity norm (maximum absolute row sum);

"F" or "f"
specifies the Frobenius norm (the Euclidean norm of x treated as if it were a vector);

"M" or "m"
specifies the maximum modulus of all the elements in x; and

"2"
specifies the “spectral” or 2-norm, which is the largest singular value (svd) of x.

The default is "O". Only the first character of type[1] is used.

Details

The base method of norm() calls the Lapack function dlange.

Note that the 1-, Inf- and "M" norm is faster to calculate than the Frobenius one.

Unsuccessful results from the underlying LAPACK code will result in an error giving a positive error code: these can only be interpreted by detailed study of the FORTRAN code.

Value

The matrix norm, a non-negative number.

Source

Except for norm = "2", the LAPACK routine DLANGE. LAPACK is from http://www.netlib.org/lapack.

References

Anderson, E., et al (1994). LAPACK User's Guide, 2nd edition, SIAM, Philadelphia.

rcond for the (reciprocal) condition number.
library(base) (x1 <- cbind(1, 1:10)) norm(x1) norm(x1, "I") norm(x1, "M") stopifnot(all.equal(norm(x1, "F"), sqrt(sum(x1^2)))) hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") } h9 <- hilbert(9) ## all 5 types of norm: (nTyp <- eval(formals(base::norm)\$type)) sapply(nTyp, norm, x = h9)