**Ceci est une ancienne révision du document !**
Table des matières
Vérification — Le calculateur balistique public
Fiche de traçabilité de la page Calculateur balistique, de son interface js/calculateur-ui.js, et des préréglages qu'elle partage avec le solveur (COMMON_BULLETS, portages JS et Julia) et avec les tables du manuel PDF. Compagne de la fiche du solveur : celle-là auditait l'arbitre ; celle-ci contrôle la vitrine — la page qui expose ses sorties aux lecteurs, et qui depuis le 22 août raconte elle-même comment elle est validée.
Pourquoi cette page passe maintenant. Un texte qui décrit un dispositif de contrôle est lui-même une série d'affirmations factuelles : un nombre de cas, un nombre de modèles, une date. Il mérite exactement le traitement que la passe applique au reste — d'autant que la page vient d'être réécrite et que personne n'avait relu son énumération contre le fichier qu'elle décrit.
Ce qui a été fait
- contrôle nocturne rejoué devant témoins : 14 cas, 162 points, référence point-masse tierce gelée le 2026-08-22 — concordance ; l'autotest (CB perturbé de 1 % → 43 écarts détectés) confirme que le contrôle détecte encore ;
- parité Julia ↔ JS relancée : 86 cas sur 21 fonctions ;
- tous les liens de la page suivis (quatre pages wiki en voir-aussi, manuel PDF, bibliothèque tierce, feuilles et scripts) : vivants ;
- chaque préréglage « Cartouche / balle » confronté au tableau du wiki coefficient balistique, à la grille gelée et entre les trois portages ;
- infobulles physiques confrontées au code exécuté, pas au commentaire : projection du vecteur de rotation terrestre dans le repère du tir, Coriolis complet en $-2\vec\Omega\times\vec v$, signe d'Eötvös, règle du tireur ;
- valeurs par défaut du formulaire décodées et comparées au préréglage 6,5 CM ;
- tables transsoniques du manuel recalculées au solveur validé, après reproduction au cordeau de trois lignes intactes.
L'erreur trouvée : « trois modèles de traînée » — la grille en contient deux
La page annonce une grille nocturne de quatorze cas avec « trois modèles de traînée ». Le fichier gelé qu'elle décrit en contient deux : G7 (12 cas) et G1 (2 cas). Le décompte des cas était juste, celui des modèles était plausible et faux — les deux dans la même parenthèse.
Le mécanisme est celui des énumérations descriptives : elles se rédigent de mémoire, après coup, et rien n'obligeait celle-ci à coller au fichier. La leçon rejoint celle du départ de la passe : la description d'un dispositif de contrôle se vérifie comme un chiffre, sinon elle dérive aussi sûrement qu'e — et c'est la page la plus consultée du domaine qui disait faux sur sa propre garde-fou.
La seconde erreur : un CB de préréglage contredit le tableau du wiki — et sa propre source citée
Le préréglage « .308 Win / 175 gr Sierra MK » affichait G7 = 0,259. Le tableau du wiki coefficient balistique donne 0,243 pour cette même balle, à partir du même G1 = 0,505 — et la grille de validation utilise 0,243. Pire : la table du manuel qui portait le 0,259 cite en source précisément les travaux de mesure dont la valeur mesurée est 0,243. Elle se contredisait avec sa propre référence depuis sa rédaction ; aucune relecture page par page ne pouvait le voir, car les deux supports n'appartiennent pas au même dossier.
Cinq emplacements portaient la valeur :
| Endroit | Avant | Après |
|---|---|---|
Préréglage de l'interface (calculateur-ui.js) | 0,259 | 0,243 |
Préréglages du solveur JS (COMMON_BULLETS) | 0,259 | 0,243 |
Portage Julia (CompetitionBallistics.jl) | 0,259 | 0,243 |
| Manuel, table des balles de compétition | 0,259 | 0,243 |
| Manuel, table des seuils transsoniques | 0,259 | 0,243 |
La provenance du 0,259 n'a pas pu être établie : la conversion mécanique G1 → G7 du site ne le rend pas non plus (~0,25–0,27 selon la vitesse de référence choisie). Un chiffre sans lignée — c'est le deuxième cas de ce type après le sigle développé en organisme inexistant (fiche sources).
Conséquence pratique chiffrée. Avec un CB gonflé, la ligne transsonique du manuel pour cette balle était trop optimiste. Seuils d'abord reproduits sur les lignes saines (entrée en transsonique à Mach 1,1, subsonique à Mach 1,0, atmosphère normalisée niveau mer — les six autres lignes retombent toutes au cordeau), puis la ligne corrigée recalculée :
| CB | Entre en transsonique | Subsonique |
|---|---|---|
| 0,259 (publié) | $\approx$ 830 m | $\approx$ 920 m |
| 0,243 (corrigé) | $\approx$ 780 m | $\approx$ 860 m |
Le PDF a été reconstruit ; pdftotext ne trouve plus aucune occurrence de l'ancienne valeur.
Ressorti intact
| Contrôle | Résultat |
|---|---|
| Décompte de la grille | 14 cas ; 3 atmosphères (normalisée, chaud/haut, froid) ; vent, dérive gyroscopique, Coriolis — tout sauf les modèles, conforme |
| Date du premier contrôle automatisé | commit du 2026-08-22, comme dit |
| Valeurs par défaut du formulaire | = préréglage 6,5 CM : 6,71 mm = 0,264″, 34,04 mm = 1,34″, 823 m/s = 2 700 fps, 3,8 cm = 1,5″ |
| Atmosphère revendiquée | ISA 1976 : $T_0$ = 288,15 K, $\rho_0$ = 1,2250 kg/m³ — constantes présentes dans le code |
| Convertisseur G1 ↔ G7 | $BC_{cible} = BC_{source}\cdot C_{d,cible}(M)/C_{d,source}(M)$, redérivé exact ; l'avertissement « un CB ne se convertit pas par un facteur fixe » est correct, et le code le respecte en exigeant une vitesse |
| Infobulle Coriolis | dérive horizontale ∝ sin(lat) — conforme au portage vectoriel complet |
| Infobulle azimut/Eötvös | tir vers l'est → impact plus haut : conforme au signe du code, et validé numériquement par la paire Est/Ouest de la grille |
| Règle du tireur (infobulle pente) | chute perçue en cos α — implémentée ainsi |
| Six autres préréglages | CB identiques dans l'interface, COMMON_BULLETS JS et Julia, et cohérents avec le tableau wiki quand il les porte (0,311 / 0,351 / 0,419) ou entre eux (0,275 / 0,283 / 0,350) |
| Liens | tous vivants, y compris les quatre pages wiki du bloc voir-aussi |
| Solveur tiers, confrontation ponctuelle du 2026-08-24 | cœur du vol à ≤ 0,6 %, dérive au vent à ≤ 1,3 % — voir section ci-dessus |
Une incohérence interne trouvée, non arbitrée : les longueurs de balle
Les préréglages de l'interface et ceux du solveur diffèrent sur trois longueurs de balle, alors que la longueur alimente le facteur de stabilité de Miller :
| Balle | Interface | COMMON_BULLETS |
|---|---|---|
| Berger 185 Juggernaut (.308) | 1,353″ | 1,30″ |
| Berger 105 Hybrid (6 mm) | 1,292″ | 1,10″ |
| Berger 180 Hybrid (7 mm) | 1,527″ | 1,50″ |
Aucune fiche constructeur ni mesure publiée n'étant disponible dans books/libres/, on ne tranche pas aujourd'hui lequel des deux jeux est bon — mais l'un des deux l'est forcément, et ils pilotent des $S_g$ différents. À régler lors du passage sur la base de calibres.
Confrontation ponctuelle à un troisième avis (2026-08-24)
Pourquoi une troisième avis alors que la grille nocturne existe. py-ballisticcalc et notre solveur lisent les mêmes tables BRL publiées : une erreur de lecture commune — le défaut qui nous a coûté nos tables supersoniques pendant des mois — leur échapperait à tous les deux. Un solveur proposé en ligne par un tiers, écrit d'une lignée de code différente, a été exécuté localement (son code est public dans la page) sur les deux cas nus de la grille et un cas de vent, entrées strictement identiques aux nôtres.
Ses différences de construction, identifiées à la lecture avant exécution : la traînée n'y est pas tabulée mais ajustée par loi de puissance par paliers de vitesse ; l'intégration est un Euler du point milieu à pas adaptatif, pas un RK4 à pas fixe ; l'atmosphère n'y modifie pas la densité mais écrête le CB d'un facteur calé sur une référence de 29,53 inHg — pas les 29,92 standard ; la dérive au vent y est appliquée par la règle du retard, hors intégration, là où la nôtre est intégrée.
Écart relatif à nos sorties :
| Grandeur | 300 yd | 600 yd | 900 yd |
|---|---|---|---|
| Chute, .308 175 gr G7 0,243 | 0,06 % | 0,24 % | 0,39 % |
| Vitesse, .308 175 gr | 0,14 % | 0,25 % | 0,58 % |
| Chute, 6,5 CM 140 gr G7 0,311 | 0,51 % | 0,20 % | 0,26 % |
| Vitesse, 6,5 CM 140 gr | 0,18 % | 0,16 % | 0,39 % |
| Dérive, vent 10 mph à 90° (6,5 CM) | 1,3 % | 0,9 % | 0,8 % |
Concordance de l'ordre du demi pour cent sur le cœur du vol, entre deux implémentations qui ne partagent ni leurs tables de traînée, ni leur intégrateur, ni leur traitement de l'atmosphère. L'écart résiduel est systématique — le solveur tiers retient un peu plus de vitesse à 900 yd — conforme au sens qu'on attend de son écrêtage de CB et de son ajustement continu de traînée. La dérive au vent, calculée par deux méthodes différentes (règle du retard contre intégration), tient à 1,3 % près.
Portée et limite. C'est un contrôle manuel, daté, non rejouable automatiquement — il ne remplace pas la grille nocturne et n'y entre pas : interroger un site vivant en automatique, c'est une référence révocable sans préavis. En cas de divergence future, l'arbitrage reste contre les tables publiées et la DOPE — jamais contre l'un des trois solveurs.
Ce qui n'a pas été vérifié
- Les CB des préréglages absents du tableau wiki (185 Juggernaut, 105 Hybrid, 180 Hybrid) n'ont pas été confrontés à leur mesure primaire — concordance interne seulement.
- La provenance exacte du faux 0,259 reste inconnue (voir ci-dessus).
calibers.jsondonne 0,339″ comme diamètre de balle du .338 Lapua là où solveur, préréglages et manuel utilisent 0,338″. Écart à trancher dans le dossier de la base de calibres, pas ici.- Plotly 2.35.2 vendu localement : existence et chargement vérifiés, bibliothèque non auditée.