PLAT

δ = 31 m  ·  dα = 3.000002° sur l'angle entre amers  ·  empreinte 6244412343b14c76

Jouer sur les tolérances

Une erreur de carte par amer, une erreur angulaire commune. Baissez le δ d'un seul amer — celui que vous relèveriez au GPS — et regardez X rétrécir. Le calcul refait est certifié, pas approché : comptez quelques secondes par essai.

revenir au réglage du catalogue
Vérification sans objet. Vos angles dérivent d'un gisement par amer : ils se somment à zéro sur tout cycle par construction, et ne peuvent donc pas se contredire.
3 amers lus dans « PLAT.csv » (3 colonnes : x, y, azimut)
pas de feuille de mesures : les 3 angles seront deduits des azimuts, et le graphe sera complet.
5000 m123

Les amers
3 points, a 20000 m de l'origine.

X (= X∩)
environ 168 m de large — soit 119 fois moins que la portee des amers. Le cercle en pointille le situe ; le detail est ci-dessous.

Les traits pales vont de l'origine vers chaque amer. L'observateur n'est pas a l'origine : il est quelque part dans X (= X∩), et c'est tout ce qu'on sait de lui.

X = X∩
La clôture n'apporte rien : l'égalité est prouvée, et X n'a pas eu à être calculé.

8 sommets certifiés.

deux composantes ou plus — Le bord n'est pas un cycle unique : l'ensemble a plusieurs morceaux separes. C'est le cas de PLAT. L'aire n'est pas calculee, mais les sommets sont justes.

Les sommets

#x (m)y (m)contraintes
116.52719973.193(1,3) ∩ (2,3)
263.31519990.645(1,3) ∩ (2,3)
316.14020027.071(3,1) ∩ (3,2)
463.85620010.005(3,1) ∩ (3,2)
5136.68519990.645(1,2) ∩ (1,3)
6183.47319973.193(1,2) ∩ (1,3)
7136.14420010.005(2,1) ∩ (3,1)
8183.86020027.071(2,1) ∩ (3,1)

Chaque sommet est un enclos certifié ; la largeur du plus large vaut 3.6e-12 m.

Ce que cela a coûté

lecture du tableur0.001 s
préparation du jeu0.004 s
calcul de X∩ et X0.973 s
aire et tracé0.004 s
total0.993 s

Le calcul et l'analyse sont deux choses : la première est l'objet de l'étude, la seconde un outil pour la regarder. Leur coût ne dépend pas des mêmes choses — le calcul du jeu, l'analyse de la précision demandée.

Sur quoi

machine : Linux aarch64  --  Raspberry Pi 4 Model B Rev 1.1
          4 coeur(s) a 1.50 GHz, 3.7 Go,  4 fil(s) demande(s)
calcul  : intervalles fi64, mantisse hors solveur 256 bits
bati    : Sep 10 2026, gcc 14.2.0
          arrondi dirige disponible,  socle : pthreads oui, rsgc non, flint non
          gmp 6.3.0, mpfr 4.2.2, mpfi 1.5.4
sources : empreinte cbb2c1eddba1

Les temps ci-dessus valent pour cette machine et pour elle seule. Ce qui se transporte d'une machine à l'autre, ce sont les rapports — pas les secondes.

Le jeu exact engendré (ce que lit le calcul)
# ==============================================================================
#  Jeu PLAT -- engendre par preparer.py, NE PAS EDITER A LA MAIN
#  3 amers, portees 20000-20001 m depuis l'origine
#  delta = 31 m (30 m de carte + 1 m d'arrondi des coordonnees)
#  d_alpha = 3.000002 deg SUR L'ANGLE ENTRE AMERS
#             dont 5.67e-03 arcsec de transcription, majores et absorbes
#  3 paires mesurees sur 3 possibles
# ==============================================================================

const NOM = "PLAT"
const EMPREINTE = "6244412343b14c76"     # signature des donnees, recopiee dans le resultat

const AMERS = Tuple{Rational{BigInt},Rational{BigInt}}[
    (200//1, 20000//1),           # 1  azimut    0.57 deg
    (100//1, 20000//1),           # 2  azimut    0.29 deg
    (0//1, 20000//1),             # 3  azimut    0.00 deg
]

const DELTA = Rational{BigInt}(31)
const T_D   = Rational{BigInt}(2197, 83900)   # tan(d_alpha/2)

const MESURES = Dict{Tuple{Int,Int},Tuple{Rational{BigInt},Int}}(
    (1,2) => (44//17601, 0),
    (1,3) => (409//81802, 0),
    (2,3) => (1//400, 0) )
Le journal du calcul
machine : Linux aarch64  --  Raspberry Pi 4 Model B Rev 1.1
          4 coeur(s) a 1.50 GHz, 3.7 Go,  4 fil(s) demande(s)
calcul  : intervalles fi64, mantisse hors solveur 256 bits
bati    : Sep 10 2026, gcc 14.2.0
          arrondi dirige disponible,  socle : pthreads oui, rsgc non, flint non
          gmp 6.3.0, mpfr 4.2.2, mpfi 1.5.4
========================================
  PLAT  (3 amers)
========================================
  minorant : muet -- les angles derivent d'un gisement par amer, ils ne peuvent pas
             se contredire (1 cycles independants).
             defaut residuel 1.313e-06 deg, soit 1.5e-07 fois la tolerance du cycle
             (transcription des angles ; seuil de lisibilite 1e-03)
  3 amers, 6 contraintes orientees
  elagage sur 1620 boites : 4 paires sur 15
  X∩ : 8 sommets en 0.960 s  (elagage 0.886, solveur 0.068, filtres 0.003)
  boite de depart reprise de X∩ : x[16, 184]  y[19973, 20028]
  germe repris de X∩ : 6 contrainte(s)
  critere : la cloture n'apporte rien sur 6 bornes  ->  X = X∩ est ACQUIS sans calculer X
            --critere : calcul de X saute, le resultat est X∩
  resultat : X∩, 8 sommets
  memoire : pic 37.6 Mo
  temps : X∩ 0.960 s   X 0.000 s   aire 0.000 s   bord 0.000 s   calcul 0.966 s   mural 0.966 s
  solveur : direct=4 erreur=0 asymptote=0 non_gen=0 plusieurs=0 coords=0
  dont decomposition 0.05 s, solve_ratparam_real 0.01 s
  ecrit : /tmp/geoloc-25sjl1_3/PLAT.resultat.json

========================================
  PLAT_courbes  (3 amers) -- analyse de /tmp/geoloc-25sjl1_3/PLAT.resultat.json
========================================
  bord de X∩ : pas de cycle -- PLUSIEURS composantes
  temps :   aire 0.000 s   bord 0.000 s
  ecrit : /tmp/geoloc-25sjl1_3/PLAT.analyse.json

← un autre tableur

Sommets certifiés par arithmétique exacte sur ℤ ; aire garantie — la flèche de chaque sous-arc est majorée, pas échantillonnée. Le tracé est la polyligne du calcul lui-même, point par point.