Quelle part de la relativité générale dans la précision d'un positionnement par satellite ?
TIPE session 2026 — thème annuel « Cycles, boucles », filière MP.
Le chiffre des 11 km par jour est arithmétiquement exact et physiquement mal interprété : il quantifie une dérive de datation, pas une erreur de position. Un récepteur GNSS résout simultanément sa position et le biais de sa propre horloge ; un décalage identique sur tous les satellites lui est donc transparent — il est absorbé par cette quatrième inconnue, qu'il faut de toute façon estimer.
La simulation le mesure : 2,3 cm par jour sur une constellation idéale, contre les 11,56 km annoncés. Ce qui dégrade réellement la position, ce sont les termes différentiels — excentricité (6,6 m), dispersion orbitale (8,4 m/jour) et, plus lourd que tous les effets relativistes réunis, la rotation terrestre (23,3 m).
Ce n'est donc pas l'amplitude d'une perturbation qui décide de son coût, c'est sa structure.
Cinq pages, chacune recalculant ses chiffres dans le navigateur plutôt que de les recopier — le site n'illustre pas la simulation, il l'exécute.
| Page | Contenu |
|---|---|
/ |
Genèse du sujet : les six échanges qui l'ont construit, et le sommaire du site |
/resultat/ |
La démonstration : lecture naïve c·Δt contre erreur de position mesurée, réglable |
/budget/ |
Budget d'erreur poste par poste, chaque terme injecté seul |
/geometrie/ |
Cycle diurne du DOP, carte du ciel, convergence de Newton-Gauss |
/documents/ |
Rapport, diapositives, PDF, figures, bibliographie, et le code ligne à ligne |
| Chemin | Rôle |
|---|---|
src/lib/gnss.ts |
Portage TypeScript du modèle : constellation, corrections relativistes, Bancroft, Newton-Gauss |
src/lib/experiences.ts |
Les sept protocoles numériques, rendus paramétrables pour le site |
src/lib/*.test.ts |
Suite de non-régression : 39 tests, dont la vérification que la chaîne boucle sous le nanomètre |
src/Page*.tsx |
Une page par point d'entrée HTML — hébergement statique, pas de routeur client |
public/code/ |
La chaîne de simulation Python d'origine, servie telle quelle |
public/rapport.html |
Rapport complet et 17 diapositives (carrousel, Échap pour revenir au site) |
public/pdf/ |
Article LaTeX de 16 pages, support Beamer 4:3 de 18 diapositives, carnet de genèse |
public/figures/ |
Les six figures du rapport, en SVG |
Les valeurs attendues des tests sont celles imprimées par la chaîne Python, et non des valeurs relevées sur l'implémentation TypeScript : un test qui enregistre ce que le code produit ne vérifie rien. Le portage reproduit les chiffres du rapport à l'identique sur toutes les grandeurs déterministes.
La chaîne d'origine, en Python :
cd public/code
pip install -r requirements.txt
python experiences.py # tous les résultats chiffrés
python figures.py # régénère les six figures
python build_latex.py # recompose le rapport et le support d'oral en LaTeXbuild_latex.py demande tectonic
(brew install tectonic). Il produit un article LaTeX et un support Beamer à partir du même
contenu et des mêmes résultats numériques que le site : les deux disent donc les mêmes chiffres.
exp0_coherence() est le test de non-régression : sans perturbation, la chaîne doit retrouver la
position injectée à mieux qu'un nanomètre. À lancer avant toute interprétation — une erreur
résiduelle de 24 m à ce test, due à la rotation terrestre injectée à la génération mais non
corrigée à la résolution, avait coûté trois semaines.
Le site, en local :
npm install
npm test # la même vérification, côté TypeScript
npm run devLa conclusion a été recoupée avec deux sources d'ingénierie GPS — Fliegel & DiEsposti (PTTI, 1996), qui établissent que seuls les effets différentiels affectent la navigation, et P. Misra (GPS World, 2023), qui écrit que le biais commun serait absorbé avec celui, bien plus grand, de l'horloge du récepteur. La simulation reproduit par ailleurs la formule analytique d'Ashby sur la dérive différentielle à 0,06 % près.
Vite + React + Tailwind, déployé sur GitHub Pages par
.github/workflows/deploy.yml à chaque poussée sur main. Le
déploiement est conditionné au lint, aux tests et à la compilation TypeScript : si le test de
non-régression tombe, le site ne part pas.
MIT — voir LICENSE.