lp_norm: lp norm of a vector

View source: R/lp_norm.R

lp_normR Documentation

lp norm of a vector

Description

Computes the \ell^p norm of an n-dimensional (real/complex) vector \mathbf{x} \in \mathbf{C}^n

\left|\left| \mathbf{x} \right|\right|_p = \left( \sum_{i=1}^n \left| x_i \right|^p \right)^{1/p}, p \in [0, \infty],

where \left| x_i \right| is the absolute value of x_i. For p=2 this is Euclidean norm; for p=1 it is Manhattan norm. For p=0 it is defined as the number of non-zero elements in \mathbf{x}; for p = \infty it is the maximum of the absolute values of \mathbf{x}.

The norm of \mathbf{x} equals 0 if and only if \mathbf{x} = \mathbf{0}.

Usage

lp_norm(x, p = 2)

Arguments

x

n-dimensional vector (possibly complex values)

p

which norm? Allowed values p \geq 0 including Inf. Default: 2 (Euclidean norm).

Value

Non-negative float, the norm of \mathbf{x}.

Examples


kRealVec <- c(3, 4)
# Pythagoras
lp_norm(kRealVec)
# did not know Manhattan,
lp_norm(kRealVec, p = 1)

# so he just imagined running in circles.
kComplexVec <- exp(1i * runif(20, -pi, pi))
plot(kComplexVec)
sapply(kComplexVec, lp_norm)


LambertW documentation built on May 29, 2024, 4:30 a.m.