L’ensemble \(\mathbb{R}\)#

Le continu est une notion qui s’est peu à peu clarifiée, mais qui n’a jamais cessé d’être un objet de méditation pour les mathématiciens.

Richard Dedekind

Construction par coupures de Dedekind#

Définition 55 (Coupure de Dedekind)

Une coupure de Dedekind est une partie \(\alpha \subset \mathbb{Q}\) telle que :

  1. \(\alpha \neq \varnothing\) et \(\alpha \neq \mathbb{Q}\)

  2. \(\alpha\) est initiale : \(r \in \alpha\) et \(s < r \implies s \in \alpha\)

  3. \(\alpha\) n’a pas de maximum : \(r \in \alpha \implies \exists s \in \alpha,\ r < s\)

\(\mathbb{R}\) est l’ensemble de toutes les coupures de Dedekind.

Remarque 27

Intuition : \(\alpha\) représente l’ensemble des rationnels « strictement à gauche » du réel \(x\). L’absence de maximum correspond au fait que \(x\) n’est pas atteint dans \(\alpha\).

Exemples :

  • La coupure rationnelle \(q^* = \{r \in \mathbb{Q} \mid r < q\}\) représente \(q \in \mathbb{Q}\).

  • La coupure \(\{r \in \mathbb{Q} \mid r < 0 \text{ ou } r^2 < 2\}\) représente \(\sqrt{2}\).

Proposition 64 (Axiome de la borne supérieure)

Toute partie non vide et majorée de \(\mathbb{R}\) admet une borne supérieure dans \(\mathbb{R}\).

Proof. Soit \(\mathcal{A}\) un ensemble non vide de coupures, majoré par une coupure \(\beta\). La réunion \(\sigma = \bigcup_{\alpha \in \mathcal{A}} \alpha\) est une coupure (vérification des 3 propriétés), et c’est le plus petit majorant de \(\mathcal{A}\).

Remarque 28

Cet axiome est la propriété fondamentale qui distingue \(\mathbb{R}\) de \(\mathbb{Q}\). Il est équivalent (dans un corps ordonné) au principe de la borne inférieure, au théorème de la limite monotone, au théorème de Bolzano-Weierstrass, et à la complétude au sens des suites de Cauchy.

Propriétés fondamentales de \(\mathbb{R}\)#

Proposition 65 (Propriété d’Archimède)

\(\forall x \in \mathbb{R},\ \exists n \in \mathbb{N},\ n > x\)

Proof. Si \(\mathbb{N}\) était majoré dans \(\mathbb{R}\), \(s = \sup \mathbb{N}\) existerait. Alors \(s - 1\) n’est pas un majorant, donc \(\exists n \in \mathbb{N},\ n > s - 1\), soit \(n + 1 > s\). Or \(n + 1 \in \mathbb{N}\), contradiction.

Proposition 66 (Densité de \(\mathbb{Q}\) et des irrationnels dans \(\mathbb{R}\))

\(\forall x < y \in \mathbb{R}\), il existe \(r \in \mathbb{Q}\) et \(s \in \mathbb{R} \setminus \mathbb{Q}\) tels que \(x < r < y\) et \(x < s < y\).

Proof. Densité de \(\mathbb{Q}\) : Par Archimède, \(\exists n \in \mathbb{N}^*,\ n(y - x) > 1\). L’intervalle \(]nx, ny[\) a longueur \(> 1\), donc contient un entier \(m\). Poser \(r = m/n\).

Densité des irrationnels : Entre \(x\) et \(y\), il existe \(r \in \mathbb{Q}\). Poser \(s = r + \frac{\sqrt{2}}{n}\) avec \(n\) assez grand : c’est irrationnel et dans \(]x, y[\).

Partie entière et partie fractionnaire#

Définition 56 (Partie entière)

Pour \(x \in \mathbb{R}\), la partie entière \(\lfloor x \rfloor\) (ou \(E(x)\)) est l’unique entier \(n \in \mathbb{Z}\) tel que \(n \leq x < n + 1\).

La partie fractionnaire est \(\{x\} = x - \lfloor x \rfloor \in [0, 1[\).

Proof. Existence : Par Archimède, l’ensemble \(\{n \in \mathbb{Z} \mid n \leq x\}\) est non vide et majoré, donc admet un maximum.

Unicité : Si \(n \leq x < n+1\) et \(m \leq x < m+1\) avec \(n \neq m\), supposons \(n < m\), alors \(n + 1 \leq m \leq x\), contradiction avec \(x < n + 1\).

Proposition 67 (Propriétés de la partie entière)

  • \(\lfloor x \rfloor \leq x < \lfloor x \rfloor + 1\)

  • \(\lfloor x + n \rfloor = \lfloor x \rfloor + n\) pour \(n \in \mathbb{Z}\)

  • \(\lfloor x + y \rfloor \in \{\lfloor x \rfloor + \lfloor y \rfloor,\ \lfloor x \rfloor + \lfloor y \rfloor + 1\}\)

  • \(\lfloor -x \rfloor = -\lceil x \rceil\)\(\lceil x \rceil = -\lfloor -x \rfloor\) est la partie entière supérieure

  • Pour \(q \in \mathbb{N}^*\) : nombre de multiples de \(q\) dans \(\{1, \ldots, n\}\) est \(\lfloor n/q \rfloor\)

Exemple 23

\(\lfloor 3.7 \rfloor = 3\), \(\lfloor -2.3 \rfloor = -3\), \(\lceil 2.1 \rceil = 3\).

Nombre de multiples de 7 dans \(\{1, \ldots, 100\}\) : \(\lfloor 100/7 \rfloor = 14\).

La valuation \(p\)-adique de \(n!\) : \(v_p(n!) = \sum_{k=1}^{\infty} \lfloor n/p^k \rfloor\) (formule de Legendre).

Proposition 68 (Formule de Legendre)

\[v_p(n!) = \sum_{k=1}^{\infty} \left\lfloor \frac{n}{p^k} \right\rfloor = \frac{n - s_p(n)}{p - 1}\]

\(s_p(n)\) est la somme des chiffres de \(n\) en base \(p\).

Proof. \(\lfloor n/p^k \rfloor\) compte les multiples de \(p^k\) dans \(\{1, \ldots, n\}\). Chaque multiple de \(p^k\) (mais pas \(p^{k+1}\)) est compté exactement \(k\) fois, ce qui est bien la valuation.

Suites de Cauchy et complétude de \(\mathbb{R}\)#

Définition 57 (Suite de Cauchy)

Une suite \((u_n)\) est de Cauchy si

\[\forall \varepsilon > 0,\ \exists N \in \mathbb{N},\ \forall m, n \geq N,\ |u_m - u_n| < \varepsilon\]

Proposition 69 (Caractérisation de la complétude)

Une suite réelle converge si et seulement si elle est de Cauchy.

Proof. \((\implies)\) Si \(u_n \to \ell\) : pour \(\varepsilon > 0\), \(\exists N,\ \forall n \geq N,\ |u_n - \ell| < \varepsilon/2\). Alors \(|u_m - u_n| \leq |u_m - \ell| + |u_n - \ell| < \varepsilon\).

\((\impliedby)\) Si \((u_n)\) est de Cauchy : elle est bornée (car \(|u_n| \leq |u_N| + 1\) pour \(n \geq N\)), donc admet une sous-suite convergente \((u_{\varphi(n)}) \to \ell\) par Bolzano-Weierstrass. Alors \(|u_n - \ell| \leq |u_n - u_{\varphi(n)}| + |u_{\varphi(n)} - \ell| \to 0\).

Remarque 29

Complétude signifie que toute suite de Cauchy converge. \(\mathbb{R}\) est complet, \(\mathbb{Q}\) ne l’est pas : la suite \(u_n = \sum_{k=0}^n \frac{1}{k!}\) est de Cauchy dans \(\mathbb{Q}\) mais converge vers \(e \notin \mathbb{Q}\).

On peut aussi construire \(\mathbb{R}\) comme la complétion de \(\mathbb{Q}\), i.e. l’ensemble des classes d’équivalence de suites de Cauchy de rationnels (deux suites de Cauchy sont équivalentes si leur différence tend vers 0).

Intervalles et topologie de la droite réelle#

Définition 58 (Intervalles)

Un intervalle de \(\mathbb{R}\) est une partie \(I\) telle que \(\forall x, y \in I,\ \forall z,\ x \leq z \leq y \implies z \in I\).

Les intervalles sont : \(]a, b[\), \([a, b]\), \([a, b[\), \(]a, b]\), \(]a, +\infty[\), \([a, +\infty[\), \(]-\infty, a[\), \(]-\infty, a]\), \(\mathbb{R}\).

Définition 59 (Voisinage, ouvert, fermé)

  • Un voisinage de \(x\) est un ensemble contenant un intervalle ouvert centré en \(x\).

  • \(U\) est ouvert si tout point de \(U\) est intérieur : \(\forall x \in U,\ \exists \varepsilon > 0,\ ]x-\varepsilon, x+\varepsilon[ \subseteq U\).

  • \(F\) est fermé si son complémentaire est ouvert, ou équivalently si \(F\) contient toutes ses valeurs d’adhérence.

Proposition 70 (Propriétés topologiques de \(\mathbb{R}\))

  • \(\mathbb{R}\) et \(\varnothing\) sont à la fois ouverts et fermés.

  • Toute union d’ouverts est ouverte ; toute intersection finie d’ouverts est ouverte.

  • Tout intervalle fermé borné \([a, b]\) est compact (toute suite a une sous-suite convergente dans \([a, b]\)).

Valeur absolue et inégalités#

Proposition 71 (Inégalité triangulaire)

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

Proposition 72 (Inégalité de Cauchy-Schwarz (version réelle))

Pour tous \(a_i, b_i \in \mathbb{R}\) :

\[\left(\sum_{i=1}^n a_i b_i\right)^2 \leq \left(\sum_{i=1}^n a_i^2\right)\left(\sum_{i=1}^n b_i^2\right)\]

avec égalité si et seulement si \((a_i)\) et \((b_i)\) sont proportionnels.

Proof. Pour tout \(t \in \mathbb{R}\), \(\sum_i (a_i + t b_i)^2 \geq 0\), soit \(At^2 + 2Bt + C \geq 0\) avec \(A = \sum b_i^2\), \(B = \sum a_i b_i\), \(C = \sum a_i^2\). Le discriminant est \(\leq 0\) : \(B^2 \leq AC\).

Hide code cell source

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

sns.set_theme(style="whitegrid", palette="muted", font_scale=1.1)

Hide code cell source

# Partie entière et partie fractionnaire
fig, axes = plt.subplots(3, 1, figsize=(9, 14))

x = np.linspace(-3, 3, 1000)

# Partie entière
ax = axes[0]
ax.plot(x, np.floor(x), 'b-', lw=2, label=r'$\lfloor x \rfloor$')
ax.plot(x, x, 'r--', alpha=0.5, label='$y = x$')
# Points fermés/ouverts
for n in range(-3, 4):
    ax.plot(n, n, 'bo', markersize=6)
    if n < 3:
        ax.plot(n + 1, n, 'bo', markersize=6, markerfacecolor='white')
ax.set_xlabel('$x$'); ax.set_ylabel(r'$\lfloor x \rfloor$')
ax.set_title('Partie entière $\\lfloor x \\rfloor$\n(fonction en escalier)', fontsize=10)
ax.legend(); ax.grid(True, alpha=0.3)
ax.set_xlim(-3, 3); ax.set_ylim(-4, 4)

# Partie fractionnaire
ax2 = axes[1]
ax2.plot(x, x - np.floor(x), 'g-', lw=2, label=r'$\{x\} = x - \lfloor x \rfloor$')
ax2.axhline(0, color='black', lw=0.5)
ax2.axhline(1, color='gray', linestyle='--', alpha=0.5)
for n in range(-3, 4):
    ax2.plot(n, 0, 'go', markersize=6)
    if n < 3:
        ax2.plot(n, 1, 'go', markersize=6, markerfacecolor='white')
ax2.set_xlabel('$x$'); ax2.set_ylabel(r'$\{x\}$')
ax2.set_title('Partie fractionnaire $\\{x\\}$\n(périodique de période 1)', fontsize=10)
ax2.legend(); ax2.grid(True, alpha=0.3)
ax2.set_xlim(-3, 3); ax2.set_ylim(-0.1, 1.2)

# Formule de Legendre : v_p(n!)
ax3 = axes[2]
p_leg = 3
n_range = range(1, 30)

v_p_fact = []
for n_val in n_range:
    v = 0
    pk = p_leg
    while pk <= n_val:
        v += n_val // pk
        pk *= p_leg
    v_p_fact.append(v)

ax3.step(list(n_range), v_p_fact, where='post', color='#e74c3c', lw=2,
         label=f'$v_{{{p_leg}}}(n!)$')
ax3.bar(list(n_range), v_p_fact, alpha=0.3, color='#e74c3c')
ax3.set_xlabel('$n$'); ax3.set_ylabel(f'$v_{{{p_leg}}}(n!)$')
ax3.set_title(f'Formule de Legendre : $v_{{{p_leg}}}(n!) = \\sum_k \\lfloor n/{p_leg}^k \\rfloor$', fontsize=10)
ax3.legend()

plt.tight_layout()
plt.show()
_images/90397cc35680e4793bb1c470c67fdb8be331e60b8df507475a3d99b18a83368a.png

Hide code cell source

# Suites de Cauchy et complétude
fig, axes = plt.subplots(2, 1, figsize=(9, 9))

# Suite de Cauchy convergente vs divergente dans Q
n_max = 30
n_arr = np.arange(1, n_max + 1)

# Approximations de sqrt(2) par Newton
u = np.zeros(n_max)
u[0] = 1.5
for k in range(1, n_max):
    u[k] = 0.5 * (u[k-1] + 2 / u[k-1])

sqrt2 = np.sqrt(2)
gaps = np.abs(u[1:] - u[:-1])

ax = axes[0]
ax.plot(n_arr, u, 'o-', color='#3498db', markersize=5, lw=2, label=r'$u_n \to \sqrt{2}$')
ax.axhline(sqrt2, color='red', linestyle='--', lw=2, label=f'$\\sqrt{{2}} \\approx {sqrt2:.6f}$')

# Bandes epsilon
for eps, col in [(0.01, '#2ecc71'), (0.001, '#f39c12')]:
    N_eps = next(k for k in range(n_max) if all(abs(u[j] - sqrt2) < eps for j in range(k, n_max)))
    ax.axvline(x=N_eps, color=col, linestyle=':', alpha=0.7, label=f'$N$ pour $\\varepsilon={eps}$')

ax.set_xlabel('$n$'); ax.set_ylabel('$u_n$')
ax.set_title('Suite de Newton-Héron (Cauchy)\n$u_{{n+1}} = (u_n + 2/u_n)/2 \\to \\sqrt{{2}}$', fontsize=10)
ax.legend(fontsize=9)

# Critère de Cauchy : |u_m - u_n| pour m,n >= N
ax2 = axes[1]
N_test = 10
m_vals = range(N_test, n_max)
cauchy_gaps = [max(abs(u[m] - u[k]) for k in range(N_test, m+1)) for m in m_vals]
cauchy_gaps_pos = [max(g, 1e-16) for g in cauchy_gaps]  # éviter log(0)

ax2.semilogy(list(m_vals), cauchy_gaps_pos, 's-', color='#e74c3c', markersize=5, lw=2)
ax2.axhline(1e-6, color='gray', linestyle='--', alpha=0.7, label='$10^{-6}$')
ax2.set_xlabel('$m$'); ax2.set_ylabel(r'$\sup_{k \geq N}|u_m - u_k|$ (log)')
ax2.set_title('Critère de Cauchy\n($\\sup|u_m - u_k| \\to 0$ : la suite est de Cauchy)', fontsize=10)
ax2.legend()

plt.tight_layout()
plt.show()
_images/b02ca3422c03cc6e5f79e78ec9bb092ff9e080581e934c8208bb0664c31f11a7.png

Hide code cell source

# Densité de Q, complétion de R, et hiérarchie des propriétés
fig, axes = plt.subplots(2, 1, figsize=(9, 9))

# Approximation d'un irrationnel par des rationnels
ax = axes[0]
x_target = np.pi
n_denom = 20
fracs_approx = []
for q in range(1, n_denom + 1):
    p = round(x_target * q)
    fracs_approx.append((p / q, abs(p / q - x_target), p, q))

best = [(e, p, q) for (v, e, p, q) in sorted((abs(v-x_target), p, q, v) for v, e, p, q in fracs_approx)]

qs = [f[2] for f in fracs_approx]
errors = [f[1] for f in fracs_approx]

ax.scatter(qs, errors, s=80, color='#3498db', zorder=5)
for i, (_, e, p, q) in enumerate(fracs_approx):
    if errors[i] < 0.02:
        ax.annotate(f'${p}/{q}$', (q, errors[i]),
                   textcoords='offset points', xytext=(5, 3), fontsize=8)

ax.axhline(y=1e-3, color='#e74c3c', linestyle='--', alpha=0.7, label='$10^{-3}$')
ax.set_xlabel('Dénominateur $q$'); ax.set_ylabel('$|p/q - \\pi|$')
ax.set_title('Approximation de $\\pi$ par des rationnels\n$p/q$ avec $q \\leq 20$', fontsize=10)
ax.legend(); ax.set_ylim(0, 0.2)

# Intervalles emboîtés → borne supérieure
ax2 = axes[1]
# Suite d'intervalles emboîtés convergeant vers sqrt(3)
sqrt3 = np.sqrt(3)
intervals = []
a_int, b_int = 1.0, 2.0
for _ in range(8):
    m = (a_int + b_int) / 2
    if m**2 < 3:
        a_int = m
    else:
        b_int = m
    intervals.append((a_int, b_int))

for i, (a, b) in enumerate(intervals):
    y_level = len(intervals) - i
    ax2.plot([a, b], [y_level, y_level], 'b-', lw=3, alpha=0.7)
    ax2.scatter([a, b], [y_level, y_level], s=50, color='#3498db')

ax2.axvline(x=sqrt3, color='#e74c3c', lw=2, linestyle='--', label=f'$\\sqrt{{3}} \\approx {sqrt3:.4f}$')
ax2.set_xlabel('$x$'); ax2.set_ylabel('Profondeur de dichotomie')
ax2.set_title('Intervalles emboîtés → $\\sqrt{3}$\n(preuve de la borne supérieure)', fontsize=10)
ax2.legend()
ax2.set_xlim(1.7, 1.8)

plt.tight_layout()
plt.show()
_images/01e129b1c3344c54ec655e3f575aa687179363d65abea68efa9968c82d64b4c3.png

Indénombrabilité de \(\mathbb{R}\)#

Proposition 73 (\(\mathbb{R}\) est indénombrable (Cantor, 1874))

Il n’existe pas de surjection \(\mathbb{N} \to \mathbb{R}\).

Proof. Argument diagonal de Cantor (voir chapitre 2). Pour tout \(x > 0\) : \(|{[0,1]}| = |\mathbb{R}| = \mathfrak{c} = 2^{\aleph_0}\).

Remarque 30

Conséquence : presque tout réel est irrationnel. Plus précisément, l’ensemble des irrationnels est indénombrable alors que \(\mathbb{Q}\) est dénombrable. Les irrationnels sont la « règle », les rationnels l”« exception » au sens de la cardinalité.

Résumé : la chaîne des constructions#

Ensemble

Construit à partir de

Structure

Problème résolu

Limitation

\(\mathbb{N}\)

Axiomes de Peano

Demi-anneau

Compter

Pas d’opposé

\(\mathbb{Z}\)

\(\mathbb{N}^2/{\sim}\)

Anneau intègre

\(x + n = m\)

Pas d’inverse \(\times\)

\(\mathbb{Q}\)

\(\mathbb{Z} \times \mathbb{Z}^*/{\sim}\)

Corps ordonné

\(bx = a\)

Pas complet

\(\mathbb{R}\)

Coupures / Cauchy

Corps ordonné complet

\(x^2 = 2\)

Pas alg. clos

\(\mathbb{C}\)

\(\mathbb{R}^2\)

Corps algébriquement clos

\(x^2 = -1\)

Pas ordonné