# Documentation

Mathlib.Analysis.Matrix

# Matrices as a normed space #

In this file we provide the following non-instances for norms on matrices:

• The elementwise norm:

• Matrix.seminormedAddCommGroup
• Matrix.normedAddCommGroup
• Matrix.normedSpace
• The Frobenius norm:

• Matrix.frobeniusSeminormedAddCommGroup
• Matrix.frobeniusNormedAddCommGroup
• Matrix.frobeniusNormedSpace
• Matrix.frobeniusNormedRing
• Matrix.frobeniusNormedAlgebra
• The $L^\infty$ operator norm:

• Matrix.linftyOpSeminormedAddCommGroup
• Matrix.linftyOpNormedAddCommGroup
• Matrix.linftyOpNormedSpace
• Matrix.linftyOpNonUnitalSemiNormedRing
• Matrix.linftyOpSemiNormedRing
• Matrix.linftyOpNonUnitalNormedRing
• Matrix.linftyOpNormedRing
• Matrix.linftyOpNormedAlgebra

These are not declared as instances because there are several natural choices for defining the norm of a matrix.

### The elementwise supremum norm #

def Matrix.seminormedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Seminormed group instance (using sup norm of sup norm) for matrices over a seminormed group. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
theorem Matrix.norm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A = fun i j => A i j
theorem Matrix.nnnorm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A‖₊ = fun i j => A i j‖₊
theorem Matrix.norm_le_iff {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] {r : } (hr : 0 r) {A : Matrix m n α} :
A r ∀ (i : m) (j : n), A i j r
theorem Matrix.nnnorm_le_iff {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] {r : NNReal} {A : Matrix m n α} :
A‖₊ r ∀ (i : m) (j : n), A i j‖₊ r
theorem Matrix.norm_lt_iff {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] {r : } (hr : 0 < r) {A : Matrix m n α} :
A < r ∀ (i : m) (j : n), A i j < r
theorem Matrix.nnnorm_lt_iff {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] {r : NNReal} (hr : 0 < r) {A : Matrix m n α} :
A‖₊ < r ∀ (i : m) (j : n), A i j‖₊ < r
theorem Matrix.norm_entry_le_entrywise_sup_norm {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) {i : m} {j : n} :
theorem Matrix.nnnorm_entry_le_entrywise_sup_nnnorm {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) {i : m} {j : n} :
@[simp]
theorem Matrix.nnnorm_map_eq {m : Type u_3} {n : Type u_4} {α : Type u_5} {β : Type u_6} [] [] (A : Matrix m n α) (f : αβ) (hf : ∀ (a : α), f a‖₊ = a‖₊) :
@[simp]
theorem Matrix.norm_map_eq {m : Type u_3} {n : Type u_4} {α : Type u_5} {β : Type u_6} [] [] (A : Matrix m n α) (f : αβ) (hf : ∀ (a : α), f a = a) :
@[simp]
theorem Matrix.nnnorm_transpose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.norm_transpose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.nnnorm_conjTranspose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.norm_conjTranspose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.nnnorm_col {m : Type u_3} {α : Type u_5} [] (v : mα) :
@[simp]
theorem Matrix.norm_col {m : Type u_3} {α : Type u_5} [] (v : mα) :
@[simp]
theorem Matrix.nnnorm_row {n : Type u_4} {α : Type u_5} [] (v : nα) :
@[simp]
theorem Matrix.norm_row {n : Type u_4} {α : Type u_5} [] (v : nα) :
@[simp]
theorem Matrix.nnnorm_diagonal {n : Type u_4} {α : Type u_5} [] [] (v : nα) :
@[simp]
theorem Matrix.norm_diagonal {n : Type u_4} {α : Type u_5} [] [] (v : nα) :
def Matrix.normedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Normed group instance (using sup norm of sup norm) for matrices over a normed group. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.normedSpace {R : Type u_1} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] :
NormedSpace R (Matrix m n α)

Normed space instance (using sup norm of sup norm) for matrices over a normed space. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For

### The $L_\infty$ operator norm #

This section defines the matrix norm $|A|_\infty = \operatorname{sup}i (\sum_j |A{ij}|)$.

Note that this is equivalent to the operator norm, considering $A$ as a linear map between two $L^\infty$ spaces.

def Matrix.linftyOpSeminormedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Seminormed group instance (using sup norm of L1 norm) for matrices over a seminormed group. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.linftyOpNormedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Normed group instance (using sup norm of L1 norm) for matrices over a normed ring. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.linftyOpNormedSpace {R : Type u_1} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] :
NormedSpace R (Matrix m n α)

Normed space instance (using sup norm of L1 norm) for matrices over a normed space. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
theorem Matrix.linfty_op_norm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A = ↑(Finset.sup Finset.univ fun i => Finset.sum Finset.univ fun j => A i j‖₊)
theorem Matrix.linfty_op_nnnorm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A‖₊ = Finset.sup Finset.univ fun i => Finset.sum Finset.univ fun j => A i j‖₊
@[simp]
theorem Matrix.linfty_op_nnnorm_col {m : Type u_3} {α : Type u_5} [] (v : mα) :
@[simp]
theorem Matrix.linfty_op_norm_col {m : Type u_3} {α : Type u_5} [] (v : mα) :
@[simp]
theorem Matrix.linfty_op_nnnorm_row {n : Type u_4} {α : Type u_5} [] (v : nα) :
= Finset.sum Finset.univ fun i => v i‖₊
@[simp]
theorem Matrix.linfty_op_norm_row {n : Type u_4} {α : Type u_5} [] (v : nα) :
= Finset.sum Finset.univ fun i => v i
@[simp]
theorem Matrix.linfty_op_nnnorm_diagonal {m : Type u_3} {α : Type u_5} [] [] (v : mα) :
@[simp]
theorem Matrix.linfty_op_norm_diagonal {m : Type u_3} {α : Type u_5} [] [] (v : mα) :
theorem Matrix.linfty_op_nnnorm_mul {l : Type u_2} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] (A : Matrix l m α) (B : Matrix m n α) :
theorem Matrix.linfty_op_norm_mul {l : Type u_2} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] (A : Matrix l m α) (B : Matrix m n α) :
theorem Matrix.linfty_op_nnnorm_mulVec {l : Type u_2} {m : Type u_3} {α : Type u_5} [] [] (A : Matrix l m α) (v : mα) :
theorem Matrix.linfty_op_norm_mulVec {l : Type u_2} {m : Type u_3} {α : Type u_5} [] [] (A : Matrix l m α) (v : mα) :

Seminormed non-unital ring instance (using sup norm of L1 norm) for matrices over a semi normed non-unital ring. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
instance Matrix.linfty_op_normOneClass {n : Type u_4} {α : Type u_5} [] [] [] [] [] :

The L₁-L∞ norm preserves one on non-empty matrices. Note this is safe as an instance, as it carries no data.

def Matrix.linftyOpSemiNormedRing {n : Type u_4} {α : Type u_5} [] [] [] :

Seminormed ring instance (using sup norm of L1 norm) for matrices over a semi normed ring. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For

Normed non-unital ring instance (using sup norm of L1 norm) for matrices over a normed non-unital ring. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.linftyOpNormedRing {n : Type u_4} {α : Type u_5} [] [] [] :

Normed ring instance (using sup norm of L1 norm) for matrices over a normed ring. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.linftyOpNormedAlgebra {R : Type u_1} {n : Type u_4} {α : Type u_5} [] [] [] [] [] :

Normed algebra instance (using sup norm of L1 norm) for matrices over a normed algebra. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For

### The Frobenius norm #

This is defined as $|A| = \sqrt{\sum_{i,j} |A_{ij}|^2}$. When the matrix is over the real or complex numbers, this norm is submultiplicative.

def Matrix.frobeniusSeminormedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Seminormed group instance (using frobenius norm) for matrices over a seminormed group. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.frobeniusNormedAddCommGroup {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] :

Normed group instance (using frobenius norm) for matrices over a normed group. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.frobeniusNormedSpace {R : Type u_1} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] :
NormedSpace R (Matrix m n α)

Normed space instance (using frobenius norm) for matrices over a normed space. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
theorem Matrix.frobenius_nnnorm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A‖₊ = (Finset.sum Finset.univ fun i => Finset.sum Finset.univ fun j => A i j‖₊ ^ 2) ^ (1 / 2)
theorem Matrix.frobenius_norm_def {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
A = (Finset.sum Finset.univ fun i => Finset.sum Finset.univ fun j => A i j ^ 2) ^ (1 / 2)
@[simp]
theorem Matrix.frobenius_nnnorm_map_eq {m : Type u_3} {n : Type u_4} {α : Type u_5} {β : Type u_6} [] [] (A : Matrix m n α) (f : αβ) (hf : ∀ (a : α), f a‖₊ = a‖₊) :
@[simp]
theorem Matrix.frobenius_norm_map_eq {m : Type u_3} {n : Type u_4} {α : Type u_5} {β : Type u_6} [] [] (A : Matrix m n α) (f : αβ) (hf : ∀ (a : α), f a = a) :
@[simp]
theorem Matrix.frobenius_nnnorm_transpose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.frobenius_norm_transpose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.frobenius_nnnorm_conjTranspose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix m n α) :
@[simp]
theorem Matrix.frobenius_norm_conjTranspose {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix m n α) :
instance Matrix.frobenius_normedStarGroup {m : Type u_3} {α : Type u_5} [] [] [] :
@[simp]
theorem Matrix.frobenius_norm_row {m : Type u_3} {α : Type u_5} [] (v : mα) :
= (WithLp.equiv 2 (mα)).symm v
@[simp]
theorem Matrix.frobenius_nnnorm_row {m : Type u_3} {α : Type u_5} [] (v : mα) :
= (WithLp.equiv 2 (mα)).symm v‖₊
@[simp]
theorem Matrix.frobenius_norm_col {n : Type u_4} {α : Type u_5} [] (v : nα) :
= (WithLp.equiv 2 (nα)).symm v
@[simp]
theorem Matrix.frobenius_nnnorm_col {n : Type u_4} {α : Type u_5} [] (v : nα) :
= (WithLp.equiv 2 (nα)).symm v‖₊
@[simp]
theorem Matrix.frobenius_nnnorm_diagonal {n : Type u_4} {α : Type u_5} [] [] (v : nα) :
= (WithLp.equiv 2 (nα)).symm v‖₊
@[simp]
theorem Matrix.frobenius_norm_diagonal {n : Type u_4} {α : Type u_5} [] [] (v : nα) :
= (WithLp.equiv 2 (nα)).symm v
theorem Matrix.frobenius_nnnorm_one {n : Type u_4} {α : Type u_5} [] [] [One α] :
theorem Matrix.frobenius_nnnorm_mul {l : Type u_2} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix l m α) (B : Matrix m n α) :
theorem Matrix.frobenius_norm_mul {l : Type u_2} {m : Type u_3} {n : Type u_4} {α : Type u_5} [] [] [] [] (A : Matrix l m α) (B : Matrix m n α) :
def Matrix.frobeniusNormedRing {m : Type u_3} {α : Type u_5} [] [] [] :

Normed ring instance (using frobenius norm) for matrices over ℝ or ℂ. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For
def Matrix.frobeniusNormedAlgebra {R : Type u_1} {m : Type u_3} {α : Type u_5} [] [] [] [] [] :

Normed algebra instance (using frobenius norm) for matrices over ℝ or ℂ. Not declared as an instance because there are several natural choices for defining the norm of a matrix.

Instances For