Éloge de l’approximatif

“Le Nombre imaginaire” ou les mathématiques comme terrain de jeu où l’imagination seule fixe les limites.

Le lecteur de ma génération a peut-être gardé un souvenir confus, voire post-traumatique, de l’infâme preuve par neuf si mal nommée. Le plus jeune pourrait exprimer une certaine incrédulité à l’idée que nous dussions non seulement apprendre à multiplier de grands nombres à la main, mais aussi appliquer une procédure proche de l’incantation magique pour en vérifier le résultat. Jeunes et vieux, nous ne savons de toute façon pas ou plus comment faire : le temps ne fait rien à l’affaire, ce qui, comme dans la chanson de Brassens, nous rend tous égaux.

Il n’est pourtant pas sans intérêt de regarder de plus près ces trucs et astuces divers, mis au point par des générations de mathématiciens et de physiciens, pour nous simplifier la vie et nous éviter les erreurs les plus grossières – car c’est de cela qu’il s’agit.

Commençons donc par cette « preuve par neuf ». De quoi s’agit-il ? Supposons que j’aie calculé à la main le produit de 127 par 18035, et que j’aie obtenu 2290445. Une manière de m’assurer que je n’ai pas fait d’erreur de calcul est la suivante : j’additionne tous les chiffres de 127, ce qui me donne 1+2+7 = 10 ; je recommence : 1+0 = 1, jusqu’à obtenir un nombre entre 0 et 9 – ici 1. Je fais de même avec 18035 : 1+8+0+3+5 = 17 ; 1+7 = 8. Le produit de 1 et de 8 est 8 ; la « preuve par neuf » m’indique alors que si je calcule la somme des chiffres (éventuellement répétée) du résultat de ma multiplication, je dois également obtenir 8 – si ce n’est pas le cas cela m’indique que j’ai fait une erreur. Ici : 2+2+9+0+4+4+5 = 26 ; 2+6 = 8. Ouf, on dirait que ça marche.

Oui, mais attention : si j’avais calculé (par erreur) 2290454 à la place, la « preuve par neuf » marcherait également ; pourtant ce résultat est faux. La « preuve par 9 » n’a rien d’une preuve ; c’est une vérification qui peut m’indiquer une erreur mais en aucun cas me prouver que mon calcul est juste.

Reste que cette procédure paraît un rien magique. Pourquoi celle-ci et pas une autre ?  Cela tient à un peu d’arithmétique à la Shadock. Comme la multiplication dans le monde des « vrais » nombres est compliquée, nous la transposons dans le monde plus simple où les seuls nombres qui existent sont les chiffres entre 0 et 8, et où 8+1=0. C’est ce que l’on appelle « l’arithmétique modulo 9 ». À tout nombre du monde normal on peut associer un nombre « modulo 9 » qui est le reste de la division entière de ce nombre par 9 (et qui est un nombre entre 0 et 8). Or, un nombre quelconque et la somme de ses chiffres (en écriture décimale) donnent toujours le même reste quand on les divise par 9, ainsi d’ailleurs que toute permutation de ses chiffres ; ils représentent tous le même nombre « modulo 9 ». De plus, le monde des nombres « modulo 9 » possède aussi sa propre multiplication (pour laquelle, par exemple, 3*5 = 6), et le nombre « modulo 9 » associé à la multiplication de deux nombres est égal au « produit modulo 9 » des deux nombres associés à chacun. La procédure suivie consiste donc à projeter nos grands nombres du monde réel vers les chiffres du petit monde « modulo 9 », en calculant la somme répétée de leurs chiffres, puis à vérifier que leur multiplication « modulo 9 » donne bien le résultat attendu.

Il se trouve que non seulement les maths, mais l’informatique et la physique font grand usage de ce genre d’astuces. Depuis fort longtemps on ajoute à un message transmis numériquement une information redondante, qui permettra de détecter une éventuelle erreur : par exemple (et dans le cas le plus simple) un « bit » additionnel indiquant si le nombre transmis est pair ou impair. Si ce « bit de contrôle » ne correspond pas à ce que l’on attend, on peut être sûr qu’une erreur s’est produite dans la transmission. D’ailleurs, dans le deuxième exemple ci-dessus, il est facile de voir que mon résultat est faux ; 127 * 18035 ne peut pas être égal à 2290454, car le produit de deux nombres impairs est toujours un nombre impair. De fait, un nombre est pair ou impair en fonction du reste de sa division entière par deux ; il existe donc une « preuve par deux », qui consiste à calculer le nombre « modulo 2 » correspondant à un nombre quelconque. Ce nombre est soit 0 (nombre pair) soit 1 (nombre impair), soit un bit. La multiplication des nombres « modulo 2 » est telle que 0*0 = 0 ; 0*1 = 1*0 = 0 ; 1*1 = 1. En d’autres termes : la multiplication d’un nombre pair avec un autre est toujours un nombre pair ; la multiplication de deux nombres impairs est un nombre impair.

Les informaticiens ont, depuis les années 1950, fait largement progresser cette notion d’information redondante. Les « codes correcteurs d’erreur » qu’ils emploient permettent non seulement de détecter une erreur de transmission (toujours possible quand on communique entre un satellite et la Terre) mais de la corriger. Une manière simple de faire ceci consisterait à envoyer chaque bit du signal 3 fois, et d’appliquer un vote à la majorité sur les 3 bits reçus : si je reçois 101, je considère que le bit envoyé était bien 1. Cette méthode est employée pour fabriquer des disques durs résistants à l’erreur, où chaque information est stockée trois fois, mais elle est coûteuse. Tout l’art des théoriciens de l’information consiste à maximiser la probabilité de détecter et de corriger une erreur tout en minimisant la taille de la partie redondante du message ; ils font pour cela appel à des structures mathématiques très élaborées.

En physique, on utilise aussi des méthodes similaires pour « projeter » un calcul compliqué dans un espace plus simple, où les calculs sont bien plus faciles, ce qui permettra de guider le raisonnement et d’éviter les erreurs les plus grossières.

Voici un problème de niveau CM1 (je suppose)  : la voiture de Tom roule sur l’autoroute à 120 km/h. Il voit un panneau indiquant une aire de repos dans 20 km. Dans combien de temps y arrivera-t’il ?

Si vous êtes comme moi, le calcul ne vous est pas immédiat. Il faut réfléchir un chouïa. Le calcul va bien entendu combiner la vitesse du véhicule et la distance de l’aire de repos, mais comment ?

Voici deux méthodes pour vous aider. La première s’appelle évaluation qualitative, et consiste à simplement considérer ce qui augmente et diminue avec les données du problème. La règle est : « mettre en haut ce qui augmente la solution, et en bas ce qui la diminue ».

Ici, je vois bien que si l’aire de repos est plus loin, Tom mettra plus de temps à l’atteindre. Je range donc cette distance (les 20 km) en haut d’une boîte. Par ailleurs, plus Tom va vite, moins il mettra de temps à atteindre l’aire de repos. Je range donc la vitesse (les 120 km/h) de Tom en bas de cette boîte. Ensuite, je multiplie entre eux tous les nombres qui sont en haut ; je multiplie entre eux tous ceux qui sont en bas ; je divise le résultat du haut par le résultat du bas. Dans notre exemple, je vois qu’il me faut diviser la distance à l’aire de repos par la vitesse de Tom. À ce moment là seulement je procède au calcul réel, l’application numérique : 20 km divisé par 120 km/h, cela me donne 1/6ème d’heure soit 10 minutes.

Une autre méthode fort utile s’appelle l’analyse dimensionnelle, et elle utilise notre connaissance des unités associées aux différentes quantités que nous manipulons. Une distance, c’est une certaine quantité de mètres. Une vitesse, c’est une distance divisée par du temps. A la fin, je veux du temps.

Pour cela, je peux représenter toutes mes quantités en associant à chaque unité (kilomètre, heure) un nombre qui indique si et comment cette unité y est utilisée. Par exemple, la distance de l’aire de repos peut se représenter par le couple (km :1, heure :0) ; la vitesse de Tom par (km :1, heure :-1) ; et le temps recherché par (km :0, heure :1).  Le « -1 » associé au temps dans la vitesse capture le « par heure ».

Je peux ensuite utiliser quelques règles simples :

  • Je ne peux additionner ou soustraire que des quantités de même nature, et qui ont donc les mêmes nombres associés à chaque unité.
  • Si je multiplie deux quantités, le résultat associe à chaque unité la somme des nombres qui lui sont associés par chacune des quantités.
  • Si je divise une quantité par une autre, le résultat associe à chaque unité la différence entre le nombre que lui associe le numérateur et celui que lui associe le dénominateur.

Pour obtenir du temps à partir de la vitesse et de la distance, je dois annuler les kilomètres ; j’ai le choix de diviser la vitesse par la distance ou l’inverse. Mais si je divise la vitesse (km :1, heure :-1) par la distance (km :1, heure :0), j’obtiens quelque chose qui est un « inverse de temps : (km :0, heure :-1). Il faut donc faire l’inverse.

Ce type de calculs qualitatifs a sauvé la vie d’innombrables étudiants en physique qui, comme moi, avaient du mal à retenir les formules – et présente le mérite d’entretenir le sens physique, qui est tout simplement une des nombreuses formes du bon sens… dont on ne saurait assez souligner l’importance.

On conclura en citant encore une autre forme de calcul approximatif qui est plus que nécessaire au citoyen : compter les zéros des grands nombres, par exemple en les groupant par trois. Mille –3, million –6, milliard –9, etc. Il est ainsi presque impossible de se représenter concrètement des sommes comme 60 ou 80 milliards d’euros (le montant vaguement estimé de la fraude fiscale en France). Mais on peut facilement conserver en mémoire que c’est un nombre à 10 zéros. Notre population est un nombre à 7 zéros. La différence, c’est 3 zéros – un millier d’euros par habitant. Une fraude sociale à 800 millions, c’est énorme, mais c’est 8 zéros – cent fois moins. De quoi relativiser…

Yannick Cras
Le nombre imaginaire