Maths et applications, avec les mains et avec du code 💻
Suivre sur Twitter
On peut considérer qu'avec les Éléments, Euclide a été précurseur d'un processus de mécanisation de la géométrie, qui se développe encore aujourd'hui avec l'utilisation de l'outil informatique. Dans cet article, j'aborde trois exemples autour de ce thème commun.
L'étude des automates finis constitue une branche de l'informatique théorique dont nous présentons ici une application classique — les expressions régulières — et une plus exotique — la décision des formules de l'arithmétique de Presburger.
Dans cet article, nous faisons appel à des considérations du domaine de la logique pour montrer comment certains résultats exprimés dans la théorie des corps peuvent se transférer d'un cadre continu à un cadre discret (et vice versa).
Un assistant de preuve est un logiciel qui permet de saisir un énoncé mathématique, une preuve de cet énoncé, et de vérifier automatiquement la validité de cette preuve. Nous nous proposons ici d'en exposer les grands principes, en utilisant Lean.
Les harmoniques sphériques permettent de décomposer les fonctions définies sur une sphère, d'une façon similaire à la décomposition en série de Fourier des fonctions définies sur un cercle. Nous évoquons ici quelques-unes de leurs applications, en informatique et en physique.
Le but de cet article est d'introduire, à l'aide de quelques exemples de théories arithmétiques, la notion d'incomplétude.
Nous évoquerons aussi le premier théorème d'incomplétude de Gödel, que nous tâcherons d'éclairer par différents exemples.
La compression JPEG repose notamment sur la transformée en cosinus discrète, qui correspond à un changement de base orthogonale. Sous certaines conditions, cette transformée possède des propriétés de compaction qui permettent d'approximer le signal source avec un nombre réduit de coefficients.
La transformée de Fourier discrète est un cas particulier de transformation de Fourier adapté à des séquences finies de nombres. L'algorithme de transformation rapide (FFT) permet de la calculer rapidement et est utilisé notamment dans des algorithmes de multiplication.
Le fait que les lignes parallèles dans le champ de vision d'un observateur « convergent » vers un point de fuite est l'une des découvertes de la Renaissance italienne.
Cette observation, très utilisée dans le rendu de scènes 3D, se formalise dans le cadre de la géométrie projective que nous abordons ici.
La génération de grands nombres premiers est une étape cruciale dans la mise en oeuvre de certains protocoles cryptographiques, notamment RSA.
Nous présentons ici le test de Miller-Rabin et quelques subtilités d'implémentation, en nous appuyant notamment sur le code source d'OpenSSL.
L'un des premiers mécanismes de cryptographie asymétrique fut proposé en 1976 par Diffie et Hellman et joue un rôle central dans TLS.
Il repose notamment sur l'utilisation de groupes cycliques.
Nous présentons ici son fonctionnement et différentes implémentations à l'aide du package crypto du langage Go.
Les rotations dans le plan sont liées à la multiplication des complexes — des nombres à deux composantes.
Dans l'espace à trois dimensions, les rotations sont plus subtiles. Des nombres à quatre composantes, les quaternions, sont souvent utilisés pour les représenter dans les moteurs 3D.
L'étude des surfaces publiée par Gauss au début du XIXème siècle et son fameux Theorema Egregium ont de nombreuses conséquences, notamment en cartographie. Nous présentons ici le formalisme de ces surfaces qui permettent de comprendre certaines représentations cartographiques comme la projection de Mercator.
Les polynômes font partie de ces objets mathématiques omniprésents.
Nous allons voir comment ils permettent, à partir de certains ensembles de nombres (rationnels, réels, etc.) d'en construire de nouveaux (comme les nombres complexes).
Ce même genre de mécanisme permet aussi de construire les corps finis, qui sont utilisés en informatique (codes correcteurs d'erreur, cryptographie, etc.).
Dans cette entrée, je vous propose d'aborder le calcul « modulo n » et quelques résultats d'arithmétique un peu plus avancés (théorème d'Euler).
Ceci nous permettra de comprendre le chiffrement RSA, et d'utiliser OpenSSL pour décortiquer une clef privée.
Connaissez-vous le module fractions de Python ? Je l'utilise ici pour présenter une construction des nombres réels.
Nous verrons également comment les ordinateurs manipulent ces nombres et pourquoi 0.1 + 0.2
ne donne pas toujours le résultat attendu...
Pour cette première entrée sur le thème des nombres avec Python, nous allons parler d'entiers, de binaire, de base64, de nombres premiers et poser les bases d'arithmétique qui nous serviront ensuite.