Mathématiques
Les mathématiques sont au cœur des logiciels que j'écris : choisir un algorithme, c'est d'abord choisir une méthode de calcul, et la précision d'un résultat dépend de la rigueur de cette méthode. Voici où elles interviennent le plus.
Tracer des courbes : Tracium
Tracium est mon traceur de courbes. On y saisit une expression comme sin(x)/x, une courbe polaire ou une courbe paramétrée, et le logiciel la trace aussitôt, avec le carroyage, les graduations et les axes de son choix.
Derrière le tracé, il y a d'abord un analyseur d'expressions : Tracium lit la formule telle qu'on l'écrit, avec ses priorités d'opérations et ses fonctions usuelles (trigonométriques, hyperboliques, leurs réciproques…), puis l'évalue en chaque point. Il y a ensuite le tracé lui-même : une courbe n'est jamais qu'une suite de points reliés, et il en faut assez pour qu'elle paraisse lisse, même quand la fonction oscille ou diverge.
Tracium propose aussi des outils de calcul qui sont autant de chapitres d'un cours d'analyse : dérivée, tableau de valeurs, résolution d'équation, intégrale, développement de Taylor, étude complète d'une fonction.
La géométrie sur la sphère : Heclium
Heclium simule les éclipses de Soleil. Il faut y représenter la Terre sous la forme d'un globe, y placer l'ombre et la pénombre de la Lune, et dessiner les cartes du monde par projection, avec leurs côtes, leurs frontières et leurs fleuves. C'est de la géométrie de l'espace et de la trigonométrie sphérique : passer d'une latitude et d'une longitude à un point de l'écran, mesurer des distances sur une sphère, décider ce qui est visible et ce qui est de l'autre côté du globe.
Séries, repères et temps : la bibliothèque AstroEphem
Ephemeridium, Heclium et Astrosynium reposent sur la même bibliothèque de calcul astronomique, écrite en C++, que j'ai appelée AstroEphem. Je l'ai écrite moi-même, sans bibliothèque tierce, et c'est là que se trouvent les mathématiques les plus denses :
- Les positions des astres viennent de théories analytiques : VSOP87 pour le Soleil et les planètes, ELP2000-82 pour la Lune. Chaque coordonnée est une somme de milliers de termes trigonométriques, dont les amplitudes et les fréquences ont été ajustées sur des siècles d'observations.
- Les changements de repère sont des rotations : de l'écliptique à l'équateur, du centre de la Terre au lieu d'observation, puis aux coordonnées horizontales. S'y ajoutent la précession de l'axe de la Terre, la nutation, et la rotation de la Terre elle-même, avec le choix entre plusieurs modèles de l'Union astronomique internationale, du plus ancien au plus récent.
- Les échelles de temps ne coïncident pas : temps terrestre, temps universel coordonné, jour julien, temps sidéral. La rotation de la Terre ralentit de façon irrégulière, et l'écart avec le temps uniforme se modélise par une spline à partir des observations passées, puis s'extrapole.
- Les phénomènes (lever, passage au méridien, coucher, aubes, éclipses) se trouvent en résolvant des équations : on cherche l'instant où une fonction s'annule, par itérations successives.
Une bibliothèque de calcul ne vaut que par la confiance qu'on peut lui accorder. Elle est donc accompagnée d'un programme de tests, lancé à chaque compilation : ses résultats sont comparés aux exemples publiés, aux éphémérides de l'IMCCE et de la NASA, et à plus de deux cents éclipses du XXe et du XXIe siècle.
Le ciel en étoiles : Astrosynium
Astrosynium est mon planétarium. Il s'appuie sur AstroEphem pour la position des planètes et sur un catalogue d'étoiles issu de la mission Gaia pour le reste du ciel. Pour afficher un très grand nombre d'étoiles, il faut leur appliquer la précession et leur mouvement propre, les ramener au lieu et à l'heure d'observation, puis les projeter sur l'écran : les mathématiques doivent être exactes, et le calcul assez rapide pour que le ciel bouge sans à-coups.
D'autres logiciels sont en préparation ; les mathématiques y auront encore leur place.


