CS
δ = 31 m · dα = 3.000000° sur l'angle entre amers · empreinte e19afa883e082ad4
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.
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.
9 amers lus dans « CS.csv » (3 colonnes : x, y, azimut)
pas de feuille de mesures : les 36 angles seront deduits des azimuts, et le graphe sera complet.
Les amers
9 points, a 1089 a 9914 m de l'origine.
X (= X∩)
environ 224 m de large — soit 44 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
18776.0 ± 6.9 m²
10 sommets certifiés.
Les sommets
| # | x (m) | y (m) | contraintes |
|---|
| 1 | -38.569 | -48.688 | (2,6) ∩ (2,8) |
| 2 | -60.264 | -18.343 | (2,4) ∩ (2,6) |
| 3 | -74.701 | 49.747 | (2,4) ∩ (9,4) |
| 4 | -43.718 | 106.522 | (9,1) ∩ (9,4) |
| 5 | -5.112 | 85.009 | (6,1) ∩ (9,1) |
| 6 | 36.134 | -115.408 | (2,9) ∩ (3,9) |
| 7 | 29.520 | -112.285 | (2,8) ∩ (2,9) |
| 8 | 40.617 | -117.419 | (3,9) ∩ (4,9) |
| 9 | 76.835 | -54.304 | (4,1) ∩ (4,9) |
| 10 | 67.837 | -14.092 | (4,1) ∩ (6,1) |
Chaque sommet est un enclos certifié ; la largeur du plus large vaut 1.4e-14 m.
L'aire de X, encadrée
| aire de X+ | [18769.1, 18782.9] m² |
|---|
| aire de X− | [18769.1, 18782.9] m² |
|---|
| aire de X | [18769.1, 18782.9] m² |
|---|
| ce que la transcription ajoute | 0.008011 m² |
|---|
| ce que la subdivision du bord ajoute | 13.76 m² |
|---|
Les angles mesurés sont transcendants ; le fichier porte le rationnel le plus proche. X+ ajoute cet écart à dα, X− le retranche, et X− ⊆ X ⊆ X+. L'aire de X est donc entre la borne basse de X− et la borne haute de X+ : c'est garanti, et c'est la ligne en gras.
Les deux dernières lignes disent d'où vient la largeur de cet encadrement. La transcription des angles en rationnels y met 0.008011 m² ; la subdivision du bord en sous-arcs y met 13.76 m², soit 1717 fois plus. Le fichier n'est pas ce qui limite la précision — le budget de calcul l'est.
Ce que cela a coûté
| lecture du tableur | 0.001 s |
|---|
| préparation du jeu | 0.025 s |
|---|
| calcul de X∩ et X+ | 0.490 s |
|---|
| dont X∩ | 0.364 s |
|---|
| dont X | 0.000 s |
|---|
| aire et tracé | 0.644 s |
|---|
| calcul de X−, depuis X+ | 1.106 s |
|---|
| total | 2.440 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.
X− ne repart pas de zéro : la boîte et l'ensemble actif de X+ lui servent de départ, ce qui est licite puisque X− ⊂ X+. D'où un second calcul deux à cinq fois moins cher que le premier.
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 11 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 05b4fbaf5cc0Les 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 CS -- engendre par preparer.py, NE PAS EDITER A LA MAIN
# 9 amers, portees 1089-9914 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 1.42e-03 arcsec de transcription, majores et absorbes
# 36 paires mesurees sur 36 possibles
# ==============================================================================
const NOM = "CS"
const EMPREINTE = "e19afa883e082ad4" # signature des donnees, recopiee dans le resultat
const AMERS = Tuple{Rational{BigInt},Rational{BigInt}}[
(-892//1, 1017//1), # 1 azimut 320.71 deg
(-1035//1, 1238//1), # 2 azimut 319.70 deg
(-839//1, 695//1), # 3 azimut 310.40 deg
(-441//1, -1478//1), # 4 azimut 197.42 deg
(593//1, -2986//1), # 5 azimut 169.75 deg
(671//1, -1089//1), # 6 azimut 148.66 deg
(9883//1, -780//1), # 7 azimut 95.44 deg
(7955//1, -363//1), # 8 azimut 94.02 deg
(2880//1, 1809//1), # 9 azimut 58.52 deg
]
const DELTA = Rational{BigInt}(31)
const T_D = Rational{BigInt}(2096, 80043) # tan(d_alpha/2)
const MESURES = Dict{Tuple{Int,Int},Tuple{Rational{BigInt},Int}}(
(1,2) => (185//20989, 0),
(1,3) => (7719//85562, 0),
(1,4) => (73721//39786, 0),
(1,5) => (82953//21484, 0),
(1,6) => (95829//6659, 0),
(1,7) => (-97027//40458, 1),
(1,8) => (-59115//25514, 1),
(1,9) => (-96942//84553, 1),
(2,3) => (7549//92812, 0),
(2,4) => (90338//49787, 0),
(2,5) => (92673//24875, 0),
(2,6) => (76362//5983, 0),
(2,7) => (-36263//14747, 1),
(2,8) => (-3229//1360, 1),
(2,9) => (-2507//2148, 1),
(3,4) => (90874//60171, 0),
(3,5) => (69580//24879, 0),
(3,6) => (96073//15440, 0),
(3,7) => (-99014//31181, 1),
(3,8) => (-47996//15771, 1),
(3,9) => (-86695//62849, 1),
(4,5) => (24339//98830, 0),
(4,6) => (25831//56997, 0),
(4,7) => (47771//38698, 0),
(4,8) => (66845//52791, 0),
(4,9) => (71671//26868, 0),
(5,6) => (18507//99419, 0),
(5,7) => (41123//54266, 0),
(5,8) => (70750//90997, 0),
(5,9) => (74562//51025, 0),
(6,7) => (38556//76961, 0),
(6,8) => (49631//96076, 0),
(6,9) => (95473//95240, 0),
(7,8) => (1043//84164, 0),
(7,9) => (15344//45965, 0),
(8,9) => (31597//98709, 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 11 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
========================================
CS (9 amers)
========================================
minorant : muet -- les angles derivent d'un gisement par amer, ils ne peuvent pas
se contredire (28 cycles independants).
defaut residuel 1.263e-07 deg, soit 1.4e-08 fois la tolerance du cycle
(transcription des angles ; seuil de lisibilite 1e-03)
9 amers, 72 contraintes orientees
elagage sur 85 boites : 15 paires sur 2556
X∩ : 10 sommets en 0.364 s (elagage 0.038, solveur 0.257, filtres 0.057)
boite de depart reprise de X∩ : x[-75, 77] y[-118, 107]
germe repris de X∩ : 10 contrainte(s)
critere : la cloture n'apporte rien sur 72 bornes -> X = X∩ est ACQUIS sans calculer X
--critere : calcul de X saute, le resultat est X∩
resultat : X∩, 10 sommets
memoire : pic 43.4 Mo
temps : X∩ 0.364 s X 0.000 s aire 0.000 s bord 0.000 s calcul 0.479 s mural 0.479 s
solveur : direct=15 erreur=0 asymptote=0 non_gen=0 plusieurs=0 coords=0
dont decomposition 0.19 s, solve_ratparam_real 0.07 s
ecrit : /tmp/geoloc-i3j6du7j/CS.resultat.json
========================================
CS_courbes (9 amers) -- analyse de /tmp/geoloc-i3j6du7j/CS.resultat.json
========================================
aire de X∩ : [18769, 18783] m2 (0.0733 %, niveaux 2 ; 40 prouvee(s), 0 mesuree(s), 0 majoree(s))
bord de X∩ : 40 points (fleche 0.22 px a 2160, niveaux 2)
temps : aire 0.603 s bord 0.036 s
ecrit : /tmp/geoloc-i3j6du7j/CS.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.