DS
δ = 31 m · dα = 3.000000° sur l'angle entre amers · empreinte f879e206b1049d1b
8 amers lus dans « DS.csv » (3 colonnes : x, y, azimut)
pas de feuille de mesures : les 28 angles seront deduits des azimuts, et le graphe sera complet.
Les amers
8 points, a 3044 a 6914 m de l'origine.
X (= X∩)
environ 1335 m de large — soit 5 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é.
Aire garantie
822200 ± 2300 m²
8 sommets certifiés.
le nuage de ToTal
3000 tirages ; 2406 tombent dans X∩ (80 %), 594 au dehors — ceux-là, les mesures les excluent. 165 sont hors du cadre.
3000 tirages ; 3000 tombent dans X∩ (100 %), 0 au dehors — ceux-là, les mesures les excluent.
3000 tirages ; 2771 tombent dans X∩ (92 %), 229 au dehors — ceux-là, les mesures les excluent. 23 sont hors du cadre.
3000 tirages ; 2885 tombent dans X∩ (96 %), 115 au dehors — ceux-là, les mesures les excluent.
3000 tirages ; 3000 tombent dans X∩ (100 %), 0 au dehors — ceux-là, les mesures les excluent.
3000 tirages ; 3000 tombent dans X∩ (100 %), 0 au dehors — ceux-là, les mesures les excluent.
l'ellipse à 95 %
la région de confiance de moindres (clôture) — celle qu'un EKF publierait. Chaque estimateur a la sienne : elles n'ont ni le même centre ni la même taille.
| σ | aire | de X | du nuage | position |
|---|
| dα/2 | 1.208e+05 m² | 14.7 % | 63 % | dans X |
| dα/√3 | 1.611e+05 m² | 19.5 % | 74 % | dans X |
| dα | 4.833e+05 m² | 58.6 % | 99 % | dans X |
« position » : dans X, l'ellipse est incluse dans le garanti — plus petite que ce que les données permettent, mais elle ne désigne aucune position impossible. contient X serait le seul cas honnête au sens ensembliste ; sur les huit jeux de l'étude et les trois conventions, il ne s'est jamais produit. déborde : l'ellipse attribue une probabilité non nulle à des positions que le calcul prouve impossibles.
σ n'est pas une donnée du problème : le modèle borné dit |erreur| ≤ dα, sans loi. Les trois courbes sont la même ellipse à trois échelles — même centre, même orientation, demi-axes dans le rapport des σ. Le trait porté par chaque ligne du tableau est celui de sa courbe. La plus large tombe souvent hors du cadre, qui reste celui du certifié : n'en voir que deux est normal.
« du nuage » : la part du nuage des moindres carrés que l'ellipse couvre. Sous son propre modèle elle devrait en couvrir 95 % — c'est le même estimateur, tiré dans les mêmes tolérances. L'écart ne mesure pas le hasard : il mesure ce que le modèle gaussien suppose et que les données ne donnent pas — une loi bornée, et une erreur de carte que l'ellipse ignore.
l'ellipse à 95 %
la région de confiance de moindres (visées) — celle qu'un EKF publierait. Chaque estimateur a la sienne : elles n'ont ni le même centre ni la même taille.
| σ | aire | de X | du nuage | position |
|---|
| dα/2 | 1.208e+05 m² | 14.7 % | 63 % | dans X |
| dα/√3 | 1.611e+05 m² | 19.5 % | 74 % | dans X |
| dα | 4.833e+05 m² | 58.6 % | 99 % | dans X |
« position » : dans X, l'ellipse est incluse dans le garanti — plus petite que ce que les données permettent, mais elle ne désigne aucune position impossible. contient X serait le seul cas honnête au sens ensembliste ; sur les huit jeux de l'étude et les trois conventions, il ne s'est jamais produit. déborde : l'ellipse attribue une probabilité non nulle à des positions que le calcul prouve impossibles.
σ n'est pas une donnée du problème : le modèle borné dit |erreur| ≤ dα, sans loi. Les trois courbes sont la même ellipse à trois échelles — même centre, même orientation, demi-axes dans le rapport des σ. Le trait porté par chaque ligne du tableau est celui de sa courbe. La plus large tombe souvent hors du cadre, qui reste celui du certifié : n'en voir que deux est normal.
« du nuage » : la part du nuage des moindres carrés que l'ellipse couvre. Sous son propre modèle elle devrait en couvrir 95 % — c'est le même estimateur, tiré dans les mêmes tolérances. L'écart ne mesure pas le hasard : il mesure ce que le modèle gaussien suppose et que les données ne donnent pas — une loi bornée, et une erreur de carte que l'ellipse ignore.
Les sommets
| # | x (m) | y (m) | contraintes |
|---|
| 1 | -224.745 | -299.831 | (1,8) ∩ (6,8) |
| 2 | -429.458 | 240.224 | (1,7) ∩ (1,8) |
| 3 | -426.372 | 301.162 | (1,6) ∩ (1,7) |
| 4 | -270.495 | 485.117 | (1,6) ∩ (8,6) |
| 5 | 380.314 | -849.611 | (6,1) ∩ (6,8) |
| 6 | 749.501 | -555.754 | (6,1) ∩ (8,1) |
| 7 | 314.502 | 228.850 | (8,1) ∩ (8,4) |
| 8 | 282.596 | 251.562 | (8,4) ∩ (8,6) |
Chaque sommet est un enclos certifié ; la largeur du plus large vaut 1.1e-13 m.
Une méthode ponctuelle, jugée par X∩
ToTal — V. Pierlot et M. Van Droogenbroeck, A New Three Object Triangulation Algorithm for Mobile Robot Positioning, IEEE Transactions on Robotics 30(3):566-577, 2014 — rend un point, pas un ensemble. Il n'a pas de modèle d'erreur : on ne lui en fabrique pas un, on déforme les données dans les tolérances du calcul certifié (δ sur les amers, dα sur les angles, uniformément — le calcul certifié borne l'erreur, il ne la suppose pas centrée) et l'on regarde où la méthode place l'observateur.
| règle pour n > 3 | points | dans X∩ | dans X | pire violation |
|---|
| le triplet de plus grand |D| (le critère de fiabilité de l'article) | 3000 | 2406 — 80.2 % | 80.2 % | 177.8° |
|---|
| la plus petite ellipse d'incertitude (Madsen & Andersen 1998 — la règle publiée) | 3000 | 3000 — 100.0 % | 100.0 % | — |
|---|
| la moyenne pondérée par |D| | 3000 | 2771 — 92.4 % | 92.4 % | 8.3° |
|---|
| la médiane géométrique des triplets | 3000 | 2885 — 96.2 % | 96.2 % | 2.7° |
|---|
| les moindres carrés sur toutes les paires (y compris celles que la clôture déduit — ce que fait X) | 3000 | 3000 — 100.0 % | 100.0 % | — |
|---|
| les moindres carrés sur les seules paires visées (le maximum de vraisemblance) | 3000 | 3000 — 100.0 % | 100.0 % | — |
|---|
Le pourcentage qui compte est celui de X∩, et c'est le test honnête : ToTal n'emploie que deux des trois angles d'un triplet — il impose la fermeture au lieu de la constater, et ne peut donc pas voir ce que la clôture de Floyd-Warshall ajoute. Le juger sur X seul lui reprocherait des contraintes qu'il n'a jamais lues. Sur azimuts absolus les deux colonnes coïncident ; elles ne se séparent que sur graphe lacunaire.
La « pire violation » est un angle, pas une distance : un point à 2° quand dα en vaut 3.000000° viole la tolérance angulaire des deux tiers. Le convertir en mètres demanderait une direction, et il n'y en a pas une seule.
Le tracé et cette table ne sont pas de même nature que le reste de la page. X et X∩ sont certifiés : toute position hors d'eux est prouvée impossible. Le nuage est un échantillon — 3000 tirages, bruit « azimuts » — et ne prouve rien sur la méthode : il la montre.
Ce que cela a coûté
| lecture du tableur | 0.000 s |
|---|
| préparation du jeu | 0.005 s |
|---|
| calcul de X∩ et X | 0.221 s |
|---|
| aire et tracé | 0.444 s |
|---|
| nuage de ToTal | 0.447 s |
|---|
| total | 1.117 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 7 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 15d85f1c0be5Les 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 DS -- engendre par preparer.py, NE PAS EDITER A LA MAIN
# 8 amers, portees 3044-6914 m depuis l'origine
# delta = 31 m (30 m de carte + 1 m d'arrondi des coordonnees)
# d_alpha = 3.000000 deg SUR L'ANGLE ENTRE AMERS
# dont 8.84e-04 arcsec de transcription, majores et absorbes
# 28 paires mesurees sur 28 possibles
# ==============================================================================
const NOM = "DS"
const EMPREINTE = "f879e206b1049d1b" # signature des donnees, recopiee dans le resultat
const AMERS = Tuple{Rational{BigInt},Rational{BigInt}}[
(-2286//1, 2277//1), # 1 azimut 315.30 deg
(-3175//1, 2432//1), # 2 azimut 308.15 deg
(-3030//1, 2055//1), # 3 azimut 305.17 deg
(-2728//1, 1698//1), # 4 azimut 302.84 deg
(-2950//1, 1620//1), # 5 azimut 299.72 deg
(-2744//1, 1318//1), # 6 azimut 296.61 deg
(-3727//1, 1606//1), # 7 azimut 294.29 deg
(-6558//1, 2189//1), # 8 azimut 289.21 deg
]
const DELTA = Rational{BigInt}(31)
const T_D = Rational{BigInt}(2027, 77408) # tan(d_alpha/2)
const MESURES = Dict{Tuple{Int,Int},Tuple{Rational{BigInt},Int}}(
(1,2) => (167//2673, 0),
(1,3) => (2859//32257, 0),
(1,4) => (10643//97495, 0),
(1,5) => (6197//45298, 0),
(1,6) => (2125//12913, 0),
(1,7) => (7455//40204, 0),
(1,8) => (6753//29146, 0),
(2,3) => (517//19876, 0),
(2,4) => (2990//64479, 0),
(2,5) => (4682//63529, 0),
(2,6) => (521//5156, 0),
(2,7) => (6248//51405, 0),
(2,8) => (12313//73817, 0),
(3,4) => (1292//63533, 0),
(3,5) => (4645//97592, 0),
(3,6) => (757//10115, 0),
(3,7) => (3102//32573, 0),
(3,8) => (12298//87727, 0),
(4,5) => (395//14504, 0),
(4,6) => (1633//30007, 0),
(4,7) => (7004//93697, 0),
(4,8) => (11482//96077, 0),
(5,6) => (485//17866, 0),
(5,7) => (3013//63537, 0),
(5,8) => (5067//55091, 0),
(6,7) => (1142//56399, 0),
(6,8) => (5983//92520, 0),
(7,8) => (3649//82258, 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 7 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
========================================
DS (8 amers)
========================================
8 amers, 56 contraintes orientees
elagage sur 30 boites : 8 paires sur 1540
X∩ : 8 sommets en 0.214 s (elagage 0.040, solveur 0.143, filtres 0.022)
boite de depart reprise de X∩ : x[-430, 750] y[-850, 486]
germe repris de X∩ : 8 contrainte(s)
critere : la cloture n'apporte rien sur 56 bornes -> X = X∩ est ACQUIS sans calculer X
--critere : calcul de X saute, le resultat est X∩
resultat : X∩, 8 sommets
memoire : pic 37.3 Mo
temps : X∩ 0.214 s X 0.000 s aire 0.000 s bord 0.000 s calcul 0.217 s mural 0.217 s
solveur : direct=8 erreur=0 asymptote=0 non_gen=0 plusieurs=0 coords=0
dont decomposition 0.10 s, solve_ratparam_real 0.04 s
ecrit : /tmp/geoloc-1v5202w6/DS.resultat.json
========================================
DS_courbes (8 amers) -- analyse de /tmp/geoloc-1v5202w6/DS.resultat.json
========================================
aire de X∩ : [819800, 824500] m2 (0.562 %, niveaux 2 ; 32 prouvee(s), 0 mesuree(s), 0 majoree(s))
bord de X∩ : 64 points (fleche 0.46 px a 2160, niveaux 3)
temps : aire 0.358 s bord 0.082 s
ecrit : /tmp/geoloc-1v5202w6/DS.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.