The operator norm of a matrix: matrix_norm l1norm l2norm norm specnorm linfnorm

### 6.50.6 The operator norm of a matrix: matrix_norm l1norm l2norm norm specnorm linfnorm

#### Operator norms

In mathematics, particularly functional analysis, a linear function between two normed spaces f:E → F is continuous exactly when there is a number K such that ||f(x)||F ≤ K ||x|| for all x in E. (See Section 6.42.1 for norms on ℝn.) For this reason, they are also called bounded linear functions. The infimum of all such K is defined to be the operator norm of f, and it depends on the norms of E and F. There are other characterizations of the operator norm of f, such as the supremum of ||f(x)||F over all x in E with ||x||E ≤ 1.

If E and F are finite dimensional, then any linear function f:E→ F will be bounded.

Any m× n matrix A = (ajk) corresponds to a linear function f:ℝn → ℝm defined by f(x) = Ax. The operator norm of A will be the operator norm of f.

- If ℝn and ℝm both have the ℓ1 norm, namely for x = (x1,x2,…) the norm is ||x|| = ∑j |xj|, the operator norm of A is

  max
  k
  | ( |
  ∑
  j
  | |ajk|.

  This is the column norm given by colnorm(A) (see Section 6.50.5).
- If ℝn and ℝm both have the ℓ2 norm, namely for x = (x1,x2,…) the norm is ||x|| = √∑j xj2 (the usual Euclidean norm), the operator norm of A is the largest eigenvalue of f*∘ f, where f* is the transpose of f, and so the largest singular value of f. This is given by l2norm (see Section 6.50.2) or max(SVL(A)) (see Section 6.49.7).
- If ℝn and ℝm both have the ℓ∞ norm, namely for x = (x1,x2,…) the norm is |x| = maxj |xj|, the operator norm of A is

  max
  j
  | ( |
  ∑
  k
  | |ajk|.

  This is given by rownorm(A) (see Section 6.50.4).

#### Computing operator norms

The matrix_norm command is a command which can find any of the above operator norms.

- matrix_norm takes two arguments:
  - A, a matrix.
  - arg, which can be 1, 2 or inf.
- matrix_norm(A,arg) returns an operator norm of the operator associated to the matrix, the norm is determined by arg.
  - If arg is 1, it is based on the ℓ1 norm on ℝn.
    matrix_norm(A,1) is the same as colnorm(A) and l1norm(A).
  - If arg is 2, it is based on the ℓ2 norm on ℝn.
    matrix_norm(A,2) is the same as l2norm(A) and norm(A).
  - If arg is inf, it is based on the ℓ∞ norm on ℝn.
    matrix_norm(A,inf) is the same as rownorm(A) and linfnorm(A).

Examples.

- Input:
  B:= [[1,2,3],[3,-9,6],[4,5,6]]
  then:
  matrix_norm(B,1)
  or:
  l1norm(B)
  or:
  colnorm(B)
  Output:

  16

  since max(1+3+4, 2+9+5, 3+6+6)=16.
- Input:
  matrix_norm(B,2)
  or:
  l2norm(B)
  Output:

  11.2449175989

- Input:
  matrix_norm(B,inf)
  or:
  linfnorm(B)
  or:
  rowNorm(B)
  Output:

  18

  since max(1+2+3, 3+9+6, 4+5+6)=18.