Home | Categories | Alphabetical | Classes | All Contents | [ < ] | [ > ]

NORM


Syntax | Return Value | Arguments | Keywords | Examples | Version History | See Also

The NORM function computes the norm of a vector or a two-dimensional array.

By default, NORM computes the L2 (Euclidean) norm for vectors, and the L¥ norm for arrays. You may use the LNORM keyword to specify different norms.

This routine is written in the IDL language. Its source code can be found in the file norm.pro in the lib subdirectory of the IDL distribution.

Syntax

Result = NORM( A [, /DOUBLE] [, LNORM={0 | 1 | 2 | n}])

Return Value

Returns the Euclidean or infinity norm of a vector or an array.

Arguments

A

A can be either a real or complex vector, or a real or complex two-dimensional array.

Keywords

DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

LNORM

Set this keyword to indicate which norm to compute. If A is a vector, then the possible values of this keyword are:

Value
Description
0
Compute the norm, defined as MAX(ABS(A)).
1
Compute the L1 norm, defined as TOTAL(ABS(A)).
2
Compute the L2 norm, defined as SQRT(TOTAL(ABS(A)^2)). This is the default.
n
Compute the Ln norm, defined as (TOTAL(ABS(A)^n))^(1/n) where n is any number, float-point or integer.

If A is a two-dimensional array, then the possible values of this keyword are:

Value
Description
0
Compute the L¥ norm (the maximum absolute row sum norm), defined as MAX(TOTAL(ABS(A), 1)). This is the default.
1
Compute the L1 norm (the maximum absolute column sum norm), defined as MAX(TOTAL(ABS(A), 2)).
2
Compute the L2 norm (the spectral norm) defined as the largest singular value, computed from LA_SVD.

Examples

; Define an n-element complex vector A: 
A = [COMPLEX(1, 0), COMPLEX(2,-2), COMPLEX(-3,1)] 
 
; Compute the Euclidean norm of A and print: 
PRINT, 'Euclidian Norm of A =', NORM(A) 
 
; Define an m by n complex array B:  
B = [[COMPLEX(1, 0), COMPLEX(2,-2), COMPLEX(-3,1)], $ 
     [COMPLEX(1,-2), COMPLEX(2, 2), COMPLEX(1, 0)]] 
 
;Compute the Infinity norm of B and print. 
PRINT, 'Infinity Norm of B =', NORM(B, /DOUBLE) 

IDL prints:

Euclidian Norm of A =    4.35890 
Infinity Norm of B =    6.9907048 

Version History

Introduced: Pre 4.0

See Also

COND, LA_SVD


Home | Categories | Alphabetical | Classes | All Contents | [ < ] | [ > ]