Espace projectif \(\mathbb{P}^n\)#

La géométrie projective est la géométrie des droites ; la géométrie affine n’en est qu’un cas particulier, obtenu en fixant un hyperplan à l’infini.

Jean-Victor Poncelet

Introduction#

La géométrie projective naît d’une intuition simple : deux droites parallèles du plan « se rencontrent à l’infini ». Plutôt que de traiter ce point à l’infini comme un cas limite, on l’incorpore dès le départ dans un espace plus grand — l”espace projectif \(\mathbb{P}^n_K\). Cet espace est construit comme l’ensemble des droites vectorielles de \(K^{n+1}\) : deux vecteurs non nuls représentent le même point s’ils sont proportionnels. Les coordonnées homogènes \([x_0 : x_1 : \cdots : x_n]\) traduisent cette relation d’équivalence. On obtient ainsi un cadre unifié où les propriétés d’incidence — comme l’intersection de deux droites — deviennent universelles, sans exception due aux parallèles. La géométrie projective est au cœur de la géométrie algébrique, de la géométrie différentielle, et de nombreuses applications en vision par ordinateur et en cryptographie.

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns
from matplotlib.patches import FancyArrowPatch

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

fig, axes = plt.subplots(2, 1, figsize=(10, 12))

# ── Figure 1 : Construction de P^2 — droites par l'origine dans R^3
ax = axes[0]
ax.set_xlim(-2.2, 2.2)
ax.set_ylim(-2.2, 2.2)
ax.set_aspect('equal')
ax.axis('off')
ax.set_title("Construction de $\\mathbb{P}^2$ : droites de $\\mathbb{R}^3$\nidentifiées à des points (sphère $S^2 / \\pm 1$)", fontsize=10)

# Dessiner le cercle équatorial (représente S^2 vu de dessus)
theta = np.linspace(0, 2 * np.pi, 300)
ax.plot(np.cos(theta), np.sin(theta), color='steelblue', lw=1.5, alpha=0.5, zorder=1)

# Quelques droites par l'origine : représentées par une paire de points antipodaux
angles = [0, np.pi / 5, 2 * np.pi / 5, 3 * np.pi / 5, 4 * np.pi / 5]
colors_pts = ['tomato', 'goldenrod', 'seagreen', 'mediumpurple', 'steelblue']
labels_pts = ['$P_1$', '$P_2$', '$P_3$', '$P_4$', '$P_5$']
for ang, col, lbl in zip(angles, colors_pts, labels_pts):
    x, y = np.cos(ang), np.sin(ang)
    ax.plot([x, -x], [y, -y], color=col, lw=1.2, alpha=0.6, zorder=2)
    ax.scatter([x], [y], s=90, color=col, zorder=5)
    ax.scatter([-x], [-y], s=90, color=col, marker='s', zorder=5, alpha=0.5)
    ax.annotate(lbl, xy=(x, y), xytext=(x * 1.25, y * 1.25),
                fontsize=9, color=col, ha='center', va='center')
    ax.annotate(lbl + "'", xy=(-x, -y), xytext=(-x * 1.25, -y * 1.25),
                fontsize=8, color=col, ha='center', va='center', alpha=0.6)

# Origine
ax.scatter([0], [0], s=40, color='black', zorder=6)
ax.text(0.08, 0.06, '$O$', fontsize=9)

# Légende
ax.text(0, -1.85, "Chaque droite vectorielle = un point de $\\mathbb{P}^2$\n"
        "($P_i$ et $P_i'$ antipodaux représentent le même point)",
        ha='center', va='center', fontsize=8.5, style='italic',
        bbox=dict(boxstyle='round,pad=0.3', fc='lightyellow', ec='gray', alpha=0.8))

# ── Figure 2 : P^1 = R ∪ {∞} comme cercle (projection stéréographique)
ax2 = axes[1]
ax2.set_xlim(-2.5, 2.5)
ax2.set_ylim(-1.8, 2.5)
ax2.set_aspect('equal')
ax2.axis('off')
ax2.set_title("$\\mathbb{P}^1_\\mathbb{R} = \\mathbb{R} \\cup \\{\\infty\\}$\n"
              "Projection stéréographique depuis le pôle Nord", fontsize=10)

# Cercle S^1
ax2.plot(np.cos(theta), np.sin(theta), color='steelblue', lw=2, alpha=0.7)

# Pôle Nord = point à l'infini
ax2.scatter([0], [1], s=150, color='tomato', zorder=5)
ax2.text(0.12, 1.08, '$\\infty = [0:1]$', fontsize=9, color='tomato')

# Quelques points sur le cercle et leurs projections sur R (axe horizontal)
sample_angles = [np.pi / 6, np.pi / 3, 2 * np.pi / 3, 5 * np.pi / 4, -np.pi / 5]
col_proj = ['seagreen', 'goldenrod', 'mediumpurple', 'darkorange', 'teal']
for ang, col in zip(sample_angles, col_proj):
    xc, yc = np.cos(ang), np.sin(ang)
    # Projection stéréographique : t = x / (1 - y)
    if abs(1 - yc) > 1e-9:
        t = xc / (1 - yc)
    else:
        t = np.inf
    ax2.scatter([xc], [yc], s=70, color=col, zorder=5)
    if np.isfinite(t) and abs(t) < 2.3:
        ax2.scatter([t], [-1.3], s=70, color=col, marker='^', zorder=5)
        ax2.plot([0, xc], [1, yc], color=col, lw=0.8, alpha=0.5, ls='--')
        ax2.plot([xc, t], [yc, -1.3], color=col, lw=0.8, alpha=0.5, ls='--')

# Axe réel
ax2.axhline(-1.3, color='black', lw=1.5, alpha=0.7, xmin=0.02, xmax=0.98)
ax2.text(2.2, -1.3, '$\\mathbb{R}$', fontsize=11, va='center')
ax2.text(-2.1, -1.3, '$-\\infty$', fontsize=8, va='center', color='tomato', alpha=0.6)

plt.show()
_images/5dc5c280e197e36755fd219727972bb704b79aee6ccf871aac5e7350421d8dd8.png

Construction de l’espace projectif#

Définition 59 (Espace projectif \(\mathbb{P}^n_K\))

Soit \(K\) un corps et \(n \geq 0\). L”espace projectif de dimension \(n\) sur \(K\) est l’ensemble quotient

\[\mathbb{P}^n_K = \bigl(K^{n+1} \setminus \{0\}\bigr) / K^*\]

\(K^*\) agit par homothétie : \((x_0, \ldots, x_n) \sim (\lambda x_0, \ldots, \lambda x_n)\) pour tout \(\lambda \in K^*\).

La classe d’équivalence de \((x_0, \ldots, x_n)\) est notée \([x_0 : x_1 : \cdots : x_n]\) et appelée coordonnées homogènes. Un point de \(\mathbb{P}^n_K\) est donc une droite vectorielle de \(K^{n+1}\).

Remarque 31

Les coordonnées homogènes ne sont pas uniques : \([x_0 : \cdots : x_n] = [\lambda x_0 : \cdots : \lambda x_n]\) pour tout \(\lambda \neq 0\). La seule contrainte est que les \(x_i\) ne soient pas tous nuls. Le nombre \(n\) est la dimension projective : \(\mathbb{P}^n_K\) comporte \(n\) degrés de liberté, bien que les coordonnées aient \(n+1\) composantes.

Exemple 43

  • \(\mathbb{P}^0_K\) est réduit à un seul point \([1]\).

  • \(\mathbb{P}^1_K\) : tout point est \([x_0 : x_1]\). Si \(x_1 \neq 0\), on peut écrire \([t : 1]\) avec \(t = x_0/x_1 \in K\). Si \(x_1 = 0\), le seul point est \([1 : 0]\), noté \(\infty\). Ainsi \(\mathbb{P}^1_K \cong K \cup \{\infty\}\) : la droite projective est la droite affine avec un point à l’infini.

  • \(\mathbb{P}^2_K\) est le plan projectif : les points sont les droites vectorielles de \(K^3\).

Définition 60 (Cartes affines et recouvrement)

Pour \(i \in \{0, 1, \ldots, n\}\), la \(i\)-ème carte affine est l’ouvert

\[U_i = \{[x_0 : \cdots : x_n] \in \mathbb{P}^n_K : x_i \neq 0\}\]

muni du difféomorphisme (ou bijectif algébrique) \(\varphi_i : U_i \xrightarrow{\;\sim\;} \mathbb{A}^n_K = K^n\) défini par

\[\varphi_i([x_0 : \cdots : x_n]) = \Bigl(\frac{x_0}{x_i}, \ldots, \widehat{\frac{x_i}{x_i}}, \ldots, \frac{x_n}{x_i}\Bigr)\]

(on omet la \(i\)-ème coordonnée, qui vaut \(1\)). Les ouverts \(U_0, U_1, \ldots, U_n\) forment un recouvrement de \(\mathbb{P}^n_K\).

Proposition 23 (Cardinal de \(\mathbb{P}^n\) sur un corps fini)

Si \(K = \mathbb{F}_q\) est le corps à \(q\) éléments, alors

\[|\mathbb{P}^n_{\mathbb{F}_q}| = \frac{q^{n+1} - 1}{q - 1} = 1 + q + q^2 + \cdots + q^n.\]

Proof. Le nombre de vecteurs non nuls de \(\mathbb{F}_q^{n+1}\) est \(q^{n+1} - 1\). Chaque droite vectorielle contient exactement \(q - 1\) vecteurs non nuls (les multiples \(\lambda v\) avec \(\lambda \neq 0\)). On divise donc par \(q - 1\) pour obtenir le nombre de droites, c’est-à-dire de points projectifs.

Topologie de Zariski projective#

Définition 61 (Polynôme homogène et variété projective)

Un polynôme \(F \in K[x_0, x_1, \ldots, x_n]\) est homogène de degré \(d\) si \(F(\lambda x_0, \ldots, \lambda x_n) = \lambda^d F(x_0, \ldots, x_n)\) pour tout \(\lambda \in K^*\).

Pour un ensemble \(S\) de polynômes homogènes, la variété projective associée est

\[V_+(S) = \{[x_0 : \cdots : x_n] \in \mathbb{P}^n_K : F(x_0, \ldots, x_n) = 0 \;\forall\, F \in S\}.\]

Cette définition est cohérente : si \(F\) est homogène et \(F(x_0, \ldots, x_n) = 0\), alors \(F(\lambda x_0, \ldots, \lambda x_n) = \lambda^d \cdot 0 = 0\), donc la condition d’annulation ne dépend pas du représentant.

Définition 62 (Idéal homogène et idéal d’une variété)

Un idéal \(I \subset K[x_0, \ldots, x_n]\) est homogène si pour tout \(f \in I\), chaque composante homogène de \(f\) appartient à \(I\) (autrement dit, \(I\) est engendré par des polynômes homogènes).

L”idéal homogène d’une variété projective \(V \subset \mathbb{P}^n_K\) est

\[I_+(V) = \{F \in K[x_0, \ldots, x_n] \text{ homogène} : F(p) = 0 \;\forall\, p \in V\}.\]

Remarque 32

La correspondance de Nullstellensatz projectif (version homogène) établit que, sur un corps algébriquement clos, \(I_+(V_+(I))\) est la racine homogène de \(I\), à condition d’exclure l”idéal irrélevant \(\mathfrak{m} = (x_0, \ldots, x_n)\). Cet idéal irrélevant correspond au point \(0 \in K^{n+1}\), qui n’a pas d’image dans \(\mathbb{P}^n_K\).

Exemple 44

Dans \(\mathbb{P}^2_K\), les variétés projectives de dimension \(1\) sont les courbes projectives définies par un polynôme homogène \(F(x_0, x_1, x_2) = 0\) de degré \(d\) :

  • \(d = 1\) : une droite projective, par exemple \(\{x_0 = 0\}\) (la droite à l’infini dans la carte \(U_0\)).

  • \(d = 2\) : une conique, par exemple \(\{x_1^2 - x_0 x_2 = 0\}\) (homogénéisation de la parabole \(y = x^2\)).

  • \(d = 3\) : une cubique, par exemple la cubique de Fermat \(\{x_0^3 + x_1^3 + x_2^3 = 0\}\).

Dualité projective#

Définition 63 (Espace dual \(\mathbb{P}^{n*}\))

L”espace projectif dual \(\mathbb{P}^{n*}\) est l’espace projectif associé à l’espace dual \((K^{n+1})^*\). Ses points sont les hyperplans de \(\mathbb{P}^n_K\) : un hyperplan est défini par une équation linéaire homogène \(a_0 x_0 + a_1 x_1 + \cdots + a_n x_n = 0\), et les coefficients \([a_0 : a_1 : \cdots : a_n]\) sont les coordonnées homogènes du point dual.

La dualité point–hyperplan établit une bijection canonique entre \(\mathbb{P}^n\) et \(\mathbb{P}^{n*}\) : le point \(p = [x_0 : \cdots : x_n]\) correspond à l’hyperplan \(H_p = \{[y_0 : \cdots : y_n] : \sum_i x_i y_i = 0\}\).

Proposition 24 (Principe de dualité en \(\mathbb{P}^2\))

Dans \(\mathbb{P}^2_K\), la dualité échange les rôles des points et des droites :

  • à tout point \(p\) correspond une droite duale \(p^* \subset \mathbb{P}^{2*}\),

  • à toute droite \(\ell\) correspond un point dual \(\ell^* \in \mathbb{P}^{2*}\),

  • \(p \in \ell\) si et seulement si \(\ell^* \in p^*\).

En particulier, les énoncés duaux des théorèmes de la géométrie projective plane sont encore vrais.

Proof. L’isomorphisme canonique \(\mathbb{P}^2 \cong \mathbb{P}^{2*}\) (choix d’une forme bilinéaire non dégénérée) transforme point en droite et droite en point en préservant la relation d’incidence, qui est symétrique : \(\sum_i x_i a_i = 0\) est une condition symétrique en \((x_0, x_1, x_2)\) et \((a_0, a_1, a_2)\).

Définition 64 (Variété duale)

La variété duale d’une variété projective \(V \subset \mathbb{P}^n_K\) est l’ensemble \(V^* \subset \mathbb{P}^{n*}\) des hyperplans tangents à \(V\) en ses points lisses :

\[V^* = \overline{\{H \in \mathbb{P}^{n*} : \exists\, p \in V_{\mathrm{lisse}}, \; T_p V \subset H\}}.\]

Pour une courbe lisse de \(\mathbb{P}^2\), la duale est une courbe de \(\mathbb{P}^{2*}\) dont le degré est lié au degré de \(V\) et à ses singularités.

Transformations projectives#

Définition 65 (Groupe projectif linéaire \(\mathrm{PGL}\))

Le groupe projectif linéaire est le quotient

\[\mathrm{PGL}(n+1, K) = \mathrm{GL}(n+1, K) / K^*\]

\(K^*\) s’identifie aux homothéties scalaires \(\lambda \cdot \mathrm{Id}\).

Une homographie (ou transformation projective) de \(\mathbb{P}^n_K\) est l’action d’un élément \([A] \in \mathrm{PGL}(n+1, K)\) :

\[[A] \cdot [x_0 : \cdots : x_n] = [A(x_0, \ldots, x_n)^T]\]

\(A \in \mathrm{GL}(n+1, K)\). Cette action est bien définie car remplacer \(A\) par \(\lambda A\) ou \((x_0, \ldots, x_n)\) par \(\mu (x_0, \ldots, x_n)\) ne change pas le point projectif résultant.

Définition 66 (Birapport)

Soient \(p_1, p_2, p_3, p_4\) quatre points distincts de \(\mathbb{P}^1_K\), avec \(p_i = [a_i : b_i]\). Le birapport (ou rapport anharmonique) est

\[[p_1, p_2 ; p_3, p_4] = \frac{(a_3 b_1 - a_1 b_3)(a_4 b_2 - a_2 b_4)}{(a_4 b_1 - a_1 b_4)(a_3 b_2 - a_2 b_3)} \in K.\]

En coordonnées affines (\(p_i = t_i \in K\)), cela se simplifie en

\[[t_1, t_2 ; t_3, t_4] = \frac{(t_3 - t_1)(t_4 - t_2)}{(t_4 - t_1)(t_3 - t_2)}.\]

Théorème 41 (Invariance du birapport)

Le birapport est invariant par toute homographie : si \(\varphi \in \mathrm{PGL}(2, K)\), alors

\[[\varphi(p_1), \varphi(p_2) ; \varphi(p_3), \varphi(p_4)] = [p_1, p_2 ; p_3, p_4].\]

De plus, \(\mathrm{PGL}(2, K)\) agit simplement transitivement sur les triplets de points distincts de \(\mathbb{P}^1_K\) : il existe une unique homographie envoyant \((p_1, p_2, p_3)\) sur \((0, \infty, 1)\).

Proof. L’invariance se vérifie par calcul direct : si \(\varphi([a:b]) = [pa + qb : ra + sb]\) avec \(ps - qr \neq 0\), on substitue et les facteurs \(ps - qr\) se simplifient dans le rapport. La transitivité simple sur les triplets découle du fait que la matrice \(A \in \mathrm{GL}(2, K)\) envoyant \((p_1, p_2, p_3)\) sur \((0, \infty, 1)\) est uniquement déterminée à scalaire près.

Proposition 25 (Classification des coniques sur un corps algébriquement clos)

Soit \(K\) algébriquement clos de caractéristique différente de \(2\). Toute conique projective non dégénérée de \(\mathbb{P}^2_K\) est projective-linéairement équivalente à \(\{x_0^2 + x_1^2 + x_2^2 = 0\}\). En particulier, il n’y a qu’une seule classe de coniques lisses sous \(\mathrm{PGL}(3, K)\).

Proof. Toute conique est définie par une forme quadratique \(Q(x) = x^T M x\) avec \(M\) symétrique. Sur \(K\) algébriquement clos, \(M\) est diagonalisable par congruence (changement de base) en \(\mathrm{diag}(1, 1, \ldots, 1, 0, \ldots, 0)\) (théorème de réduction des formes quadratiques). Si la conique est non dégénérée, \(M\) est inversible, donc la forme est \(x_0^2 + x_1^2 + x_2^2\) après changement de base, ce qui donne l’unique classe.

Plongement affine et points à l’infini#

Définition 67 (Plongement affine et hyperplan à l’infini)

Le plongement affine standard est l’injection

\[\iota : \mathbb{A}^n_K \hookrightarrow \mathbb{P}^n_K, \quad (x_1, \ldots, x_n) \mapsto [1 : x_1 : \cdots : x_n].\]

Son image est la carte affine \(U_0 = \{x_0 \neq 0\}\). Le complémentaire \(H_\infty = \mathbb{P}^n_K \setminus U_0 = \{x_0 = 0\}\) est l”hyperplan à l’infini : il est isomorphe à \(\mathbb{P}^{n-1}_K\) et contient les « directions » de l’espace affine.

Définition 68 (Homogénéisation et déhomogénéisation)

Soit \(f(x_1, \ldots, x_n) \in K[x_1, \ldots, x_n]\) de degré \(d\). Son homogénéisé est

\[F(x_0, x_1, \ldots, x_n) = x_0^d \, f\!\left(\frac{x_1}{x_0}, \ldots, \frac{x_n}{x_0}\right) \in K[x_0, \ldots, x_n]_d,\]

qui est homogène de degré \(d\). Réciproquement, la déhomogénéisation d’un polynôme homogène \(F\) par rapport à \(x_0\) est \(f(x_1, \ldots, x_n) = F(1, x_1, \ldots, x_n)\).

Les points à l’infini de la courbe affine \(V(f) \subset \mathbb{A}^n\) sont les points de \(V_+(F) \cap H_\infty\).

Exemple 45

Considérons la parabole affine \(f(x, y) = y - x^2\) dans \(\mathbb{A}^2\). Son homogénéisé dans \(\mathbb{P}^2\) est \(F(x_0, x_1, x_2) = x_0 x_2 - x_1^2\). Les points à l’infini vérifient \(F(0, x_1, x_2) = -x_1^2 = 0\), donc \(x_1 = 0\), ce qui donne l’unique point \([0 : 0 : 1]\). La parabole a un seul point à l’infini, correspondant à la direction verticale.

En revanche, une hyperbole \(xy = 1\) a deux points à l’infini : \([0 : 1 : 0]\) et \([0 : 0 : 1]\) (les deux asymptotes).

Théorème 42 (Complétude projective : intersection de deux droites)

Dans \(\mathbb{P}^2_K\), deux droites projectives distinctes se coupent en exactement un point. En particulier, il n’existe pas de droites parallèles dans \(\mathbb{P}^2_K\).

Proof. Deux droites de \(\mathbb{P}^2_K\) sont définies par deux équations linéaires homogènes \(L_1(x_0, x_1, x_2) = 0\) et \(L_2(x_0, x_1, x_2) = 0\). Le système \(L_1 = L_2 = 0\) dans \(K^3\) a toujours une solution non nulle (espace de solutions de dimension \(\geq 1\) car \(3 - 2 = 1\)). Deux droites distinctes signifient que \(L_1\) et \(L_2\) sont linéairement indépendantes, donc l’espace des solutions est exactement de dimension \(1\), donnant un unique point de \(\mathbb{P}^2_K\).

Corollaire 14

Deux droites parallèles de \(\mathbb{A}^2_K\) (de même direction \([v]\)) se rencontrent dans \(\mathbb{P}^2_K\) au point à l’infini \([0 : v_1 : v_2]\). Ainsi, la géométrie projective résout l’asymétrie de la géométrie euclidienne liée aux parallèles.

Coordonnées de Plücker et droites dans \(\mathbb{P}^3\)#

Définition 69 (Coordonnées de Plücker)

Une droite de \(\mathbb{P}^3_K\) est déterminée par deux points distincts \(p = [p_0 : p_1 : p_2 : p_3]\) et \(q = [q_0 : q_1 : q_2 : q_3]\). Les coordonnées de Plücker sont les six mineurs \(2 \times 2\) du vecteur ligne \((p, q)\) :

\[\pi_{ij} = p_i q_j - p_j q_i, \quad 0 \leq i < j \leq 3.\]

Elles définissent un point \([\pi_{01} : \pi_{02} : \pi_{03} : \pi_{12} : \pi_{13} : \pi_{23}]\) dans \(\mathbb{P}^5_K\). Ce point est bien défini (indépendant du choix des représentants et des deux points sur la droite, à proportionnalité près).

Proposition 26 (Grassmannienne \(\mathrm{Gr}(2, 4)\))

L’ensemble des droites de \(\mathbb{P}^3_K\) (ou, de manière équivalente, des sous-espaces vectoriels de dimension \(2\) de \(K^4\)) est la grassmannienne \(\mathrm{Gr}(2, 4)\). Via les coordonnées de Plücker, \(\mathrm{Gr}(2, 4)\) s’identifie à une quadrique de \(\mathbb{P}^5_K\) définie par la relation de Plücker :

\[\pi_{01}\pi_{23} - \pi_{02}\pi_{13} + \pi_{03}\pi_{12} = 0.\]

C’est une variété projective de dimension \(4\).

Proof. L’équation de Plücker est la condition nécessaire et suffisante pour que le bivecteur \(p \wedge q \in \bigwedge^2 K^4\) soit décomposable (de rang \(1\) comme application bilinéaire alternée sur \((K^4)^*\)). La vérification directe montre que les coordonnées \((\pi_{ij})\) d’une droite satisfont toujours cette relation, et réciproquement tout point de \(\mathbb{P}^5\) satisfaisant cette relation provient d’une droite.

Visualisations : dualité et courbes projectives#

Hide code cell source

fig, axes = plt.subplots(2, 1, figsize=(10, 12))

# ── Figure 1 : Dualité dans P^2 — points et leurs droites duales
ax = axes[0]
ax.set_xlim(-3, 3)
ax.set_ylim(-3, 3)
ax.set_aspect('equal')
ax.set_title("Dualité dans $\\mathbb{P}^2$ : points et droites duales", fontsize=10)
ax.axhline(0, color='gray', lw=0.5, alpha=0.5)
ax.axvline(0, color='gray', lw=0.5, alpha=0.5)

# Trois points dans le plan affine (carte U_0)
pts = np.array([[1.0, 0.5], [-0.5, 1.5], [1.5, -1.0]])
couleurs = ['tomato', 'steelblue', 'seagreen']
noms = ['$A=[1:1:0.5]$', '$B=[1:-0.5:1.5]$', '$C=[1:1.5:-1]$']

x_line = np.linspace(-3, 3, 300)

for (px, py), col, nom in zip(pts, couleurs, noms):
    # Point
    ax.scatter([px], [py], s=100, color=col, zorder=5)
    ax.annotate(nom, xy=(px, py), xytext=(px + 0.15, py + 0.2),
                fontsize=8.5, color=col)
    # Droite duale de [1:px:py] : équation x0 + px*x1 + py*x2 = 0
    # Dans la carte affine (x0=1) : 1 + px*t + py*y = 0 => y = -(1 + px*t)/py
    if abs(py) > 1e-9:
        y_dual = -(1 + px * x_line) / py
        mask = np.abs(y_dual) < 3.5
        ax.plot(x_line[mask], y_dual[mask], color=col, lw=1.5,
                alpha=0.7, label=f'Duale de {nom[:2].strip("$")}')

# Montrer que les trois droites duales se coupent au point dual de chaque droite
# Droite passant par A et B : représentée dans P^2
for i, j, col_ij in [(0, 1, 'goldenrod'), (1, 2, 'mediumpurple'), (0, 2, 'darkorange')]:
    p1, p2 = pts[i], pts[j]
    # Produit vectoriel pour trouver la droite [a0:a1:a2] dans P^2
    # avec p = [1:p1x:p1y] et q = [1:p2x:p2y]
    line = np.cross([1, p1[0], p1[1]], [1, p2[0], p2[1]])
    # Droite : line[0] + line[1]*x + line[2]*y = 0
    if abs(line[2]) > 1e-9:
        y_line = -(line[0] + line[1] * x_line) / line[2]
        mask = np.abs(y_line) < 3.5
        ax.plot(x_line[mask], y_line[mask], color=col_ij, lw=0.9,
                alpha=0.5, ls='--')

ax.set_xlabel('$x_1 / x_0$')
ax.set_ylabel('$x_2 / x_0$')
ax.legend(fontsize=7.5, loc='lower right')

# ── Figure 2 : Parabole affine et son point à l'infini
ax2 = axes[1]
ax2.set_xlim(-2.5, 2.5)
ax2.set_ylim(-0.5, 4.5)
ax2.set_aspect('equal')
ax2.set_title("Parabole $y = x^2$ dans $\\mathbb{A}^2$\net son point à l'infini $[0:0:1]$ dans $\\mathbb{P}^2$", fontsize=10)
ax2.axhline(0, color='gray', lw=0.5, alpha=0.5)
ax2.axvline(0, color='gray', lw=0.5, alpha=0.5)

x_par = np.linspace(-2.2, 2.2, 400)
y_par = x_par ** 2
ax2.plot(x_par, y_par, color='steelblue', lw=2.5, label='$y = x^2$ (affine)')

# Tangentes verticales vers l'infini
for x0 in [-1.8, -1.0, 0.0, 1.0, 1.8]:
    y0 = x0 ** 2
    ax2.annotate('', xy=(x0, 4.3), xytext=(x0, y0),
                 arrowprops=dict(arrowstyle='->', color='tomato', lw=1.0, alpha=0.5))

ax2.scatter([0], [4.3], s=200, color='tomato', marker='*', zorder=6)
ax2.text(0.15, 4.35, "$[0:0:1]$ (point à l'infini)", fontsize=9, color='tomato')

# Quelques points de la parabole
for x0 in [-1.5, -0.8, 0.0, 0.8, 1.5]:
    y0 = x0 ** 2
    ax2.scatter([x0], [y0], s=60, color='seagreen', zorder=5)
    ax2.text(x0 + 0.1, y0 + 0.1,
             f'$[1:{x0:.1f}:{y0:.2f}]$',
             fontsize=7, color='seagreen')

ax2.set_xlabel('$x = x_1/x_0$')
ax2.set_ylabel('$y = x_2/x_0$')
ax2.legend(fontsize=9)

plt.show()
_images/d19f69fb24e4330fff9a9cee4389d6feb199855de57146cb5b9e3a78b969dac3.png

Propriétés géométriques fondamentales#

Proposition 27 (Compacité et projectivité)

Sur \(K = \mathbb{R}\) ou \(\mathbb{C}\), l’espace projectif \(\mathbb{P}^n_K\) est compact (au sens topologique). En effet, \(\mathbb{P}^n_\mathbb{R}\) est l’image continue de la sphère \(S^n\) par la projection \(v \mapsto [v]\), et \(S^n\) est compacte.

En géométrie algébrique, la compacité se traduit par la complétude : toute courbe dans une variété complète vérifie un théorème de type « image compacte est compacte ». Le morphisme de projection \(\mathbb{P}^n \to \mathrm{Spec}(K)\) est propre.

Théorème 43 (Théorème de Bézout (version projective))

Soient \(C\) et \(D\) deux courbes projectives de \(\mathbb{P}^2_K\) (\(K\) algébriquement clos) définies par des polynômes homogènes \(F\) et \(G\) de degrés \(d\) et \(e\) respectivement, sans composante commune. Alors, en comptant les intersections avec multiplicité,

\[|C \cap D| = d \cdot e.\]

Proof. La preuve classique repose sur l’anneau de coordonnées homogènes et la théorie des résultants : l’idéal \((F, G)\) est de codimension \(2\) dans \(K[x_0, x_1, x_2]\) si \(F\) et \(G\) n’ont pas de facteur commun, et l’algèbre de Hilbert montre que la longueur du module quotient vaut \(d \cdot e\) (dimensions des espaces de polynômes homogènes modulo les contraintes). Une preuve plus géométrique utilise la cohomologie des faisceaux ou la théorie des intersections sur les surfaces.

Exemple 46

Le théorème de Bézout explique et unifie plusieurs résultats élémentaires :

  • Une droite (\(d=1\)) et une conique (\(e=2\)) se coupent en \(1 \cdot 2 = 2\) points (comptés avec multiplicité) : tangence si les deux points coïncident.

  • Deux coniques (\(d = e = 2\)) se coupent en \(4\) points : c’est la base d’un faisceau de coniques.

  • Une cubique et une quartique se coupent en \(3 \cdot 4 = 12\) points.

  • Ce résultat échoue dans \(\mathbb{A}^2\) : une droite peut être parallèle à une conique (intersection « à l’infini » manquante). \(\mathbb{P}^2\) rétablit la symétrie.

Remarque 33

Le théorème de Bézout illustre parfaitement l’avantage de la géométrie projective sur la géométrie affine : les résultats d’intersection deviennent uniformes et sans exception. De même, le théorème de Pascal (les trois paires de côtés opposés d’un hexagone inscrit dans une conique sont concourants) et le théorème de Pappus sont des résultats naturels de la géométrie projective de \(\mathbb{P}^2\).

Résumé#

Concept

Définition ou propriété clé

\(\mathbb{P}^n_K\)

\((K^{n+1} \setminus \{0\})/K^*\) ; points = droites vectorielles

Coordonnées homogènes

\([x_0 : \cdots : x_n]\), définies à scalaire non nul près

Carte affine \(U_i\)

\(\{x_i \neq 0\} \cong \mathbb{A}^n_K\) ; recouvrement de \(\mathbb{P}^n\)

\(\mathbb{P}^1_K\)

\(K \cup \{\infty\}\) ; droite affine avec un point à l’infini

Variété projective \(V_+(S)\)

Zéros communs de polynômes homogènes dans \(\mathbb{P}^n\)

Idéal homogène \(I_+(V)\)

Polynômes homogènes s’annulant sur \(V\) ; Nullstellensatz projectif

Hyperplan à l’infini \(H_\infty\)

\(\{x_0 = 0\} \cong \mathbb{P}^{n-1}\) ; complémentaire de la carte \(U_0\)

Homogénéisation

\(f \leadsto F = x_0^d f(x_1/x_0, \ldots, x_n/x_0)\)

\(\mathrm{PGL}(n+1, K)\)

\(\mathrm{GL}(n+1,K)/K^*\) ; groupe des homographies

Birapport

Invariant fondamental sous \(\mathrm{PGL}(2, K)\)

Dualité \(\mathbb{P}^{n*}\)

Espace des hyperplans ; échange points et hyperplans

Deux droites dans \(\mathbb{P}^2\)

Se coupent toujours en exactement un point

Théorème de Bézout

\(\deg C \cdot \deg D\) points d’intersection (sur \(\bar{K}\))

Coordonnées de Plücker

Paramétrisent les droites de \(\mathbb{P}^3\) dans \(\mathbb{P}^5\)

Grassmannienne \(\mathrm{Gr}(2,4)\)

Quadrique de Plücker dans \(\mathbb{P}^5\) ; variété de dimension \(4\)

Compacité de \(\mathbb{P}^n_\mathbb{R}\)

Image continue de \(S^n\) ; complétude en géométrie algébrique