norm
Computes the norm of a number, vector, or matrix.
Syntax
-
norm(x[, kind[, param]])
-
x
is a number, a vector, or a matrix -
kind
is a string -
param
is an integer
-
Description
If x
is a number, a vector, or a matrix, then norm(x, kind, param)
returns the norm of x
. kind
specifies the kind of norm, and if it denotes a parameterised norm type, then param
specifies the value of the parameter.
The following norm kinds are supported (with abbreviations):
-
Euclidean norm (Euclidean)
-
Frobenius norm (Frobenius)
-
p-norm (p) *
-
max norm (max)
-
sum norm (sum)
-
k-norm (k) *
-
max column sum norm (max column sum)
-
max row sum norm (max row sum)
-
spectral norm (spectral)
An asterisk (*) indicates that the norm accepts a parameter.
The Euclidean and Frobenius norms are equal for numbers, vectors, and matrices. The p
-norm is a generalisation that sums the entries’ absolute values raised to the power of p
and then computes the p
th root of the sum. The k
-norm, on the other hand, computes the sum of the k
greatest absolute values. The spectral norm returns the greatest singular value.
If omitted, kind
defaults to "Euclidean"
and the parameter to 2
.
If x
is a (real or complex) number, norm(x, kind, param)
is always equal to abs(x)
. If x
is a vector, the spectral norm is not applicable. For other norms, a vector is treated like a column matrix.
Examples
A ≔ ❨❨5, 0, 1, 2❩, ❨−3, 2, 3, 4❩, ❨4, 2, 0, 1❩, ❨3, 6, 2, 0❩❩
⎛ 5 0 1 2⎞ ⎜−3 2 3 4⎟ ⎜ 4 2 0 1⎟ ⎝ 3 6 2 0⎠
NormTypes ≔ '("Euclidean", "Frobenius", "p", "max", "sum", "k", "max column sum", "max row sum", "spectral");
NormTypes @ (x ↦ norm(A, x))
11.7473401245 11.7473401245 11.7473401245 6 38 11 15 12 8.79887871437