Espaces vectoriels normés#

L’infini est la patrie où ne règnent ni la différentielle ni l’intégrale, où tout est fini et pourtant sans bornes.

Stefan Banach

Introduction#

Un espace métrique est un ensemble muni d’une distance. Lorsque cet ensemble est aussi un espace vectoriel, il est naturel d’exiger que la distance soit compatible avec les opérations algébriques. C’est le rôle de la norme, qui enrichit l’espace vectoriel d’une notion de « taille ». Ce chapitre établit deux résultats fondamentaux : l”équivalence de toutes les normes en dimension finie, et le théorème de Riesz qui caractérise la dimension finie par la compacité de la boule unité.

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

fig, axes = plt.subplots(3, 1, figsize=(9, 14))

# --- Boules unités pour différentes normes Lp ---
ax = axes[0]
theta = np.linspace(0, 2*np.pi, 1000)
ps = [1, 1.5, 2, 3, np.inf]
colors = plt.cm.plasma(np.linspace(0.1, 0.9, len(ps)))

for p, c in zip(ps, colors):
    if p == np.inf:
        xs = np.array([-1, 1, 1, -1, -1])
        ys = np.array([-1, -1, 1, 1, -1])
        lbl = '$\\ell_\\infty$'
    elif p == 1:
        xs = np.array([0, 1, 0, -1, 0])
        ys = np.array([1, 0, -1, 0, 1])
        lbl = '$\\ell_1$'
    else:
        # |cos(t)|^p + |sin(t)|^p = 1 => r such that |r cos(t)|^p + |r sin(t)|^p = 1
        r = (np.abs(np.cos(theta))**p + np.abs(np.sin(theta))**p)**(-1/p)
        xs = r * np.cos(theta)
        ys = r * np.sin(theta)
        lbl = f'$\\ell_{{{p}}}$'
    ax.plot(xs, ys, '-', color=c, lw=2, label=lbl)

ax.set_xlim(-1.5, 1.5); ax.set_ylim(-1.5, 1.5)
ax.set_aspect('equal')
ax.axhline(0, color='k', lw=0.5); ax.axvline(0, color='k', lw=0.5)
ax.legend(fontsize=8, loc='upper right')
ax.set_title('Boules unités $\\ell_p$ dans $\\mathbb{R}^2$\n(de losange à carré)', fontsize=10)
ax.text(0, 0, '$0$', ha='center', va='center', fontsize=12)

# --- Inégalités entre normes sur R^n ---
ax = axes[1]
n_vals = [2, 5, 10, 20, 50]
colors2 = plt.cm.viridis(np.linspace(0.1, 0.9, len(n_vals)))

for n, c in zip(n_vals, colors2):
    np.random.seed(42)
    samples = np.random.randn(500, n)
    # Normalize to l2 norm 1
    samples = samples / np.linalg.norm(samples, axis=1, keepdims=True)
    ratio_inf_2 = np.linalg.norm(samples, ord=np.inf, axis=1)  # = max(|x_i|) on unit l2 sphere
    ax.hist(ratio_inf_2, bins=20, alpha=0.5, density=True, color=c, label=f'$n={n}$')

ax.set_xlabel('$\\|x\\|_\\infty$ pour $x$ sur sphère $\\|x\\|_2 = 1$')
ax.set_ylabel('Densité')
ax.set_title('Rapport $\\|\\cdot\\|_\\infty / \\|\\cdot\\|_2$\nsur la sphère unité', fontsize=10)
ax.legend(fontsize=7)
ax.text(0.02, ax.get_ylim()[1]*0.8 if ax.get_ylim()[1] > 0 else 1,
        'En dim. finie : $\\|x\\|_\\infty \\leq \\|x\\|_2 \\leq \\sqrt{n}\\|x\\|_\\infty$',
        fontsize=8, bbox=dict(boxstyle='round', facecolor='lightyellow'))

# --- Norme d'opérateur ---
ax = axes[2]
np.random.seed(3)
# Transformation linéaire T : R^2 -> R^2
T = np.array([[2.0, 0.5], [0.3, 1.5]])
singular_vals = np.linalg.svd(T, compute_uv=False)
op_norm = singular_vals[0]  # norme d'opérateur = plus grande valeur singulière

theta_u = np.linspace(0, 2*np.pi, 200)
unit_circ = np.array([np.cos(theta_u), np.sin(theta_u)])
image = T @ unit_circ

ax.plot(unit_circ[0], unit_circ[1], 'b-', lw=2, label='Sphère unité $\\|u\\|=1$')
ax.plot(image[0], image[1], 'r-', lw=2, label='Image $Tu$ (ellipse)')
ax.fill(image[0], image[1], alpha=0.1, color='red')
ax.fill(unit_circ[0], unit_circ[1], alpha=0.1, color='blue')

# Vecteur réalisant la norme d'opérateur
v1 = np.linalg.svd(T)[2][0]
ax.annotate('', xy=T@v1, xytext=(0,0),
            arrowprops=dict(arrowstyle='->', color='green', lw=2.5))
ax.annotate('', xy=v1, xytext=(0,0),
            arrowprops=dict(arrowstyle='->', color='darkblue', lw=2.5))
ax.text(*(T@v1*1.1), f'$\\|T\\|={op_norm:.2f}$', fontsize=9, color='green')

ax.set_xlim(-2.8, 2.8); ax.set_ylim(-2, 2)
ax.set_aspect('equal')
ax.axhline(0, color='k', lw=0.5); ax.axvline(0, color='k', lw=0.5)
ax.legend(fontsize=8)
ax.set_title('Norme d\'opérateur $\\|T\\| = \\sup_{\\|u\\|=1}\\|Tu\\|$\n= rayon de l\'ellipse image', fontsize=9)

plt.suptitle('Espaces vectoriels normés : normes, équivalence, opérateurs', fontsize=13, fontweight='bold')
plt.tight_layout()
plt.show()
_images/6a35f4e3e2ba7a83395c44bfc161ef5c092607677785b13f7cefd0b721e1fd90.png

Normes#

Définition 209 (Norme)

Soit \(E\) un \(\mathbb{K}\)-espace vectoriel. Une norme sur \(E\) est \(\|\cdot\| : E \to \mathbb{R}_+\) vérifiant :

  1. Séparation : \(\|x\| = 0 \Leftrightarrow x = 0\)

  2. Homogénéité : \(\|\lambda x\| = |\lambda| \cdot \|x\|\)

  3. Inégalité triangulaire : \(\|x + y\| \leq \|x\| + \|y\|\)

Le couple \((E, \|\cdot\|)\) est un espace vectoriel normé (EVN). Toute norme induit la distance \(d(x,y) = \|x-y\|\) (invariante par translation).

Exemple 102

Sur \(\mathbb{K}^n\) :

  • Norme \(\ell_p\) (\(p \geq 1\)) : \(\|x\|_p = \left(\sum_i |x_i|^p\right)^{1/p}\) ; norme \(\ell_\infty\) : \(\|x\|_\infty = \max_i |x_i|\)

  • Inclusions : \(\|x\|_\infty \leq \|x\|_2 \leq \|x\|_1 \leq \sqrt{n}\|x\|_2 \leq n\|x\|_\infty\)

Sur \(\mathcal{C}([a,b])\) :

  • \(\|f\|_\infty = \sup_{t}|f(t)|\), \(\|f\|_1 = \int|f|\), \(\|f\|_2 = \sqrt{\int f^2}\)

Sur \(\mathcal{M}_n(\mathbb{R})\) : norme de Frobenius \(\|A\|_F = \sqrt{\operatorname{tr}(A^TA)} = \sqrt{\sum_{i,j} a_{ij}^2}\)

Proposition 287 (Inégalité triangulaire inverse)

\(\big|\|x\| - \|y\|\big| \leq \|x - y\|\)

Proof. \(\|x\| = \|(x-y)+y\| \leq \|x-y\| + \|y\|\) donne \(\|x\|-\|y\| \leq \|x-y\|\). Par symétrie.

Normes équivalentes#

Définition 210 (Équivalence de normes)

\(\|\cdot\|_a\) et \(\|\cdot\|_b\) sont équivalentes si \(\exists c, C > 0\) : \(c\|x\|_a \leq \|x\|_b \leq C\|x\|_a\) pour tout \(x\).

Deux normes équivalentes définissent les mêmes ouverts, fermés, suites convergentes, fonctions continues.

Théorème 15 (Équivalence en dimension finie)

Sur un espace vectoriel de dimension finie, toutes les normes sont équivalentes.

Proof. Il suffit de montrer que toute norme \(\|\cdot\|\) est équivalente à \(\|\cdot\|_\infty\) dans une base \((e_1, \ldots, e_n)\).

Majoration (inégalité triangulaire) :

\[\|x\| = \left\|\sum_i x_i e_i\right\| \leq \sum_i |x_i| \|e_i\| \leq \underbrace{\left(\sum_i \|e_i\|\right)}_{C} \|x\|_\infty\]

Minoration : l’application \(\varphi : (\mathbb{K}^n, \|\cdot\|_\infty) \to \mathbb{R}\), \(x \mapsto \|x\|\), est continue (car \(|\varphi(x)-\varphi(y)| \leq \|x-y\| \leq C\|x-y\|_\infty\)). La sphère \(S = \{x : \|x\|_\infty = 1\}\) est compacte. Donc \(\varphi|_S\) atteint son minimum \(c > 0\) (car \(x \in S \Rightarrow x \neq 0 \Rightarrow \|x\| > 0\)). Pour \(x \neq 0\) : \(\|x/\|x\|_\infty\| \geq c\), soit \(\|x\| \geq c\|x\|_\infty\).

Remarque 110

Ce théorème est propre à la dimension finie. Sur \(\mathcal{C}([0,1])\), les normes \(\|\cdot\|_\infty\), \(\|\cdot\|_1\), \(\|\cdot\|_2\) ne sont pas équivalentes : \(\|f_n\|_1 = 1/n \to 0\) mais \(\|f_n\|_\infty = 1\) pour \(f_n = \mathbf{1}_{[0,1/n]}\).

Topologie des EVN de dimension finie#

Théorème 16 (Propriétés en dimension finie)

Soit \(E\) un EVN de dimension finie \(n\). Alors :

  1. \(E\) est complet (espace de Banach)

  2. \(K \subset E\) est compact \(\Leftrightarrow\) \(K\) est fermé et borné

  3. Tout sous-espace vectoriel de \(E\) est fermé

Proof. 1. Par équivalence des normes, on se ramène à \((\mathbb{K}^n, \|\cdot\|_\infty)\). Une suite de Cauchy l’est composante par composante, et chaque composante converge dans \(\mathbb{K}\) (complet).

2. Suit de Heine-Borel par équivalence des normes.

3. Soit \(F\) sous-espace de dimension \(p < n\) et \((x_k)\) une suite de \(F\) convergeant vers \(\ell \in E\). En base \((e_1,\ldots,e_n)\) avec \((e_1,\ldots,e_p)\) base de \(F\), écrire \(x_k = \sum_{i=1}^p x_k^{(i)}e_i\). La convergence implique \(x_k^{(i)} \to \ell_i\) pour \(i \leq p\) et \(0 \to \ell_i\) pour \(i > p\). Donc \(\ell \in F\).

Espaces de Banach#

Définition 211 (Espace de Banach)

Un EVN complet est un espace de Banach.

Exemple 103

Banach : \((\mathbb{K}^n, \|\cdot\|_p)\), \((\mathcal{C}([a,b]), \|\cdot\|_\infty)\), \((\ell^p, \|\cdot\|_p)\) (suites de puissance \(p\) sommable).

Non Banach : \((\mathcal{C}([0,1]), \|\cdot\|_1)\) : la suite \(f_n = \mathbf{1}_{[0,1/2-1/n]}\) est de Cauchy pour \(\|\cdot\|_1\) mais sa limite \(\mathbf{1}_{[0,1/2[}\) n’est pas continue.

Proposition 288 (Critère de Banach (convergence absolue))

Un EVN \(E\) est de Banach si et seulement si toute série absolument convergente converge :

\[\sum_{n=0}^\infty \|x_n\| < +\infty \implies \sum_{n=0}^\infty x_n \text{ converge dans } E\]

Proof. \((\Rightarrow)\) \(\|S_p - S_q\| \leq \sum_{n=q+1}^p \|x_n\| \to 0\) (reste d’une série convergente). Donc \((S_N)\) est de Cauchy, converge par complétude.

\((\Leftarrow)\) Soit \((x_n)\) de Cauchy. Extraire une sous-suite \((x_{n_k})\) avec \(\|x_{n_{k+1}}-x_{n_k}\| < 2^{-k}\). La série télescopique \(\sum (x_{n_{k+1}}-x_{n_k})\) converge absolument, donc converge. Ses sommes partielles sont \(x_{n_{k+1}} - x_{n_1}\), donc \((x_{n_k})\) converge vers \(\ell \in E\). Une suite de Cauchy ayant une sous-suite convergente converge.

Applications linéaires continues#

Définition 212 (Norme d’opérateur)

Soit \(u : E \to F\) linéaire entre EVN. \(u\) est continue si et seulement si elle est bornée :

\[\exists M \geq 0,\ \forall x \in E,\ \|u(x)\|_F \leq M\|x\|_E\]

La norme d’opérateur (ou subordonnée) est alors

\[\|u\| = \sup_{x \neq 0} \frac{\|u(x)\|_F}{\|x\|_E} = \sup_{\|x\|_E = 1} \|u(x)\|_F\]

Proposition 289 (Caractérisations équivalentes)

\(u : E \to F\) linéaire. Les assertions suivantes sont équivalentes :

  1. \(u\) est continue (sur \(E\))

  2. \(u\) est continue en \(0\)

  3. \(u\) est bornée (\(\|u\| < +\infty\))

  4. \(u\) est lipschitzienne de constante \(\|u\|\)

  5. \(u\) est bornée sur \(\overline{B}(0,1)\)

Proof. \((2) \Rightarrow (3)\) : par continuité en \(0\), \(\exists \delta > 0\), \(\|x\| < \delta \Rightarrow \|u(x)\| < 1\). Pour \(x \neq 0\) : \(\|\frac{\delta}{2\|x\|}x\| < \delta\) donc \(\|u(\frac{\delta x}{2\|x\|})\| < 1\), soit \(\|u(x)\| < \frac{2}{\delta}\|x\|\).

\((3) \Rightarrow (4)\) : \(\|u(x)-u(y)\| = \|u(x-y)\| \leq \|u\|\cdot\|x-y\|\).

Théorème 17 (Continuité automatique en dimension finie)

En dimension finie, toute application linéaire est continue.

Proof. Soit \((e_i)\) une base de \(E\) et \(\|\cdot\|_\infty\) la norme associée. Pour \(x = \sum x_i e_i\) : \(\|u(x)\| \leq \sum|x_i|\|u(e_i)\| \leq (\sum\|u(e_i)\|)\|x\|_\infty\). Par équivalence des normes en dimension finie, \(u\) est bornée pour toute norme sur \(E\).

Proposition 290 (Norme de la composée)

\(\|v \circ u\| \leq \|v\| \cdot \|u\|\) (sous-multiplicativité).

Remarque 111

L’espace \(\mathcal{L}(E, F)\) muni de \(\|\cdot\|_{op}\) est un EVN. Si \(F\) est de Banach, \(\mathcal{L}(E, F)\) l’est aussi.

Normes matricielles subordonnées :

  • Pour \((\mathbb{K}^n, \|\cdot\|_\infty)\) : \(\|A\|_\infty = \max_i \sum_j |a_{ij}|\) (maximum des sommes de lignes)

  • Pour \((\mathbb{K}^n, \|\cdot\|_1)\) : \(\|A\|_1 = \max_j \sum_i |a_{ij}|\) (maximum des sommes de colonnes)

  • Pour \((\mathbb{K}^n, \|\cdot\|_2)\) : \(\|A\|_2 = \sigma_{\max}(A)\) (plus grande valeur singulière)

Théorème de Riesz#

Théorème 18 (Théorème de Riesz)

Soit \(E\) un EVN. La boule unité fermée \(\overline{B}(0,1)\) est compacte si et seulement si \(\dim E < +\infty\).

Proof. \((\Leftarrow)\) En dimension finie : \(\overline{B}(0,1)\) fermée et bornée \(\Rightarrow\) compacte (Heine-Borel).

\((\Rightarrow)\) En dimension infinie, on construit une suite sans sous-suite de Cauchy.

Lemme de Riesz : Si \(F \subsetneq E\) est un sous-espace fermé strict et \(\varepsilon \in (0,1)\), il existe \(x \in E\) avec \(\|x\| = 1\) et \(d(x, F) \geq 1 - \varepsilon\).

Preuve du lemme : Soit \(y \in E \setminus F\) et \(\delta = d(y, F) > 0\) (car \(F\) fermé). Choisir \(z \in F\) avec \(\|y-z\| < \delta/(1-\varepsilon)\). Poser \(x = (y-z)/\|y-z\|\). Pour tout \(f \in F\) : \(\|x - f\| = \|y-z-\|y-z\|f\|/\|y-z\| \geq \delta/\|y-z\| > 1-\varepsilon\) (car \(z + \|y-z\|f \in F\)).

Application : Construire par récurrence des vecteurs unitaires \(x_1, x_2, \ldots\) avec \(\|x_{n+1} - x_j\| \geq 1/2\) pour \(j \leq n\) (via le lemme avec \(F_n = \overline{\operatorname{Vect}(x_1,\ldots,x_n)} \neq E\)). Alors \((x_n) \subset \overline{B}(0,1)\) n’a aucune sous-suite convergente.

Remarque 112

Ce résultat fondamental sépare la dimension finie de la dimension infinie. En dimension infinie :

  • La boule unité n’est pas compacte

  • La compacité des parties bornées est perdue

  • Il faut introduire la compacité faible et les opérateurs compacts pour retrouver des propriétés similaires

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

fig, axes = plt.subplots(3, 1, figsize=(9, 14))

# --- Norme d'opérateur et valeurs singulières ---
ax = axes[0]
np.random.seed(42)
n_ops = 5
for i in range(n_ops):
    A = np.random.randn(3, 3)
    U, S, Vt = np.linalg.svd(A)
    op_norm = S[0]
    frob = np.linalg.norm(A, 'fro')

    theta = np.linspace(0, 2*np.pi, 100)
    circle = np.array([np.cos(theta), np.sin(theta), np.zeros(100)])
    # Project to 2D for visualization
    ax.scatter([op_norm], [frob], s=60, zorder=5)

ax.set_xlabel('Norme d\'opérateur $\\|A\\|_2 = \\sigma_1$')
ax.set_ylabel('Norme de Frobenius $\\|A\\|_F$')
ax.set_title('Norme d\'opérateur vs Frobenius\n$\\|A\\|_2 \\leq \\|A\\|_F \\leq \\sqrt{n}\\|A\\|_2$', fontsize=10)

# Ligne d'égalité (cas rang 1)
xlim = ax.get_xlim()
x_eq = np.linspace(0, max(xlim[1] if xlim[1] > 0 else 5, 5), 100)
ax.plot(x_eq, x_eq, 'k--', lw=1, label='$\\|A\\|_F = \\|A\\|_2$ (rang 1)')
ax.legend(fontsize=8)

# --- Lemme de Riesz : points séparés dans la sphère ---
ax = axes[1]
np.random.seed(7)
# En dimension 2, construction de points avec distance >= 1/2
n_pts = 8
pts = []
angles = np.linspace(0, 2*np.pi, n_pts, endpoint=False)
for a in angles:
    pts.append(np.array([np.cos(a), np.sin(a)]))

theta = np.linspace(0, 2*np.pi, 200)
ax.plot(np.cos(theta), np.sin(theta), 'b-', lw=2, label='Sphère unité')

colors_p = plt.cm.Set1(np.linspace(0, 1, n_pts))
for i, (pt, c) in enumerate(zip(pts, colors_p)):
    ax.scatter(*pt, color=c, s=100, zorder=5)
    for j, pt2 in enumerate(pts):
        if j > i:
            dist = np.linalg.norm(pt - pt2)
            if dist < 1.0:
                ax.plot([pt[0], pt2[0]], [pt[1], pt2[1]], '-', color='gray', lw=0.5, alpha=0.5)

min_dist = min(np.linalg.norm(pts[i]-pts[j]) for i in range(n_pts) for j in range(i+1, n_pts))
ax.set_title(f'Lemme de Riesz en dim. 2\n{n_pts} points sur sphère, dist. min $\\approx {min_dist:.2f}$', fontsize=10)
ax.set_aspect('equal')
ax.set_xlim(-1.5, 1.5); ax.set_ylim(-1.5, 1.5)
ax.axhline(0, color='k', lw=0.5); ax.axvline(0, color='k', lw=0.5)
ax.legend(fontsize=8)

# --- Convergence absolue dans un Banach ---
ax = axes[2]
# Série de fonctions continues convergeant uniformément
x = np.linspace(0, 2*np.pi, 300)
N_terms = [1, 3, 5, 10, 50]
colors_c = plt.cm.Blues(np.linspace(0.3, 1.0, len(N_terms)))

target = x * (2*np.pi - x) / 10  # fonction cible (arbitraire)

for N, c in zip(N_terms, colors_c):
    # Fourier partielle de la fonction cible
    approx = np.zeros_like(x)
    for k in range(1, N+1):
        # Coefficients de Fourier de x*(2pi-x)/10 sur [0,2pi]
        ak = 2/(2*np.pi) * np.trapezoid(target * np.cos(k*x), x)
        bk = 2/(2*np.pi) * np.trapezoid(target * np.sin(k*x), x)
        approx += ak*np.cos(k*x) + bk*np.sin(k*x)
    norm_err = np.max(np.abs(approx - target))
    ax.plot(x, approx, '-', color=c, lw=1.5, label=f'$N={N}$, $\\|\\cdot\\|_\\infty$-err$\\approx{norm_err:.3f}$')

ax.plot(x, target, 'r--', lw=2.5, label='Cible $f$')
ax.set_xlabel('$x$'); ax.set_ylabel('$S_N f(x)$')
ax.set_title('Convergence uniforme de séries de Fourier\ndans le Banach $(\\mathcal{C}, \\|\\cdot\\|_\\infty)$', fontsize=10)
ax.legend(fontsize=7)

plt.suptitle('Espaces de Banach, normes équivalentes, théorème de Riesz', fontsize=13, fontweight='bold')
plt.tight_layout()
plt.show()
_images/4953bb577d3b09bec77c8877ef6e7e093411fe7241cde46859284eb692471ab8.png

Séries dans un EVN#

Définition 213 (Convergence d’une série)

La série \(\sum x_n\) converge dans un EVN si les sommes partielles \(S_N = \sum_{n=0}^N x_n\) convergent. Elle converge absolument si \(\sum \|x_n\|\) converge.

Dans un Banach : convergence absolue \(\Rightarrow\) convergence (par le critère de Banach).

Proposition 291 (Critère de Cauchy pour les séries)

Dans un Banach : \(\sum x_n\) converge \(\Leftrightarrow\) \(\forall \varepsilon > 0\), \(\exists N\), \(\forall q > p \geq N\), \(\|\sum_{n=p+1}^q x_n\| < \varepsilon\).

Résumé#

Concept

Résultat clé

Norme

Séparation + homogénéité + inégalité triangulaire

Normes équivalentes

Même topologie ; en dim. finie : toutes équivalentes

Banach

EVN complet ; \(\mathbb{K}^n\), \(\mathcal{C}([a,b],|\cdot|_\infty)\)

Critère Banach

Convergence absolue \(\Leftrightarrow\) complétude

Application linéaire cont.

\(\Leftrightarrow\) bornée \(\Leftrightarrow\) lipschitzienne ; automatique en dim. finie

Norme d’opérateur

\(|u| = \sup_{|x|=1}|u(x)|\) ; \(|vu| \leq |v||u|\)

Riesz

\(\overline{B}(0,1)\) compacte \(\Leftrightarrow\) dim. finie