AccueilđŸ‡«đŸ‡·Chercher

Division par zéro

La division par zĂ©ro consiste Ă  chercher le rĂ©sultat qu'on obtiendrait en prenant zĂ©ro comme diviseur. Ainsi, une division par zĂ©ro s'Ă©crirait x/0, oĂč x serait le dividende (ou numĂ©rateur).

Dans les définitions usuelles de la multiplication, cette opération n'a pas de sens : elle contredit notamment la définition de la multiplication en tant que seconde loi de composition d'un corps, car zéro (l'élément neutre de l'addition) est un élément absorbant pour la multiplication.

Dans les diverses branches des mathématiques

L'infini

La division par zéro donne l'infini. Cette convention a d'ailleurs été défendue par Louis Couturat dans son livre De l'infini mathématique[1].

Cette convention est assez cohérente avec les rÚgles de la droite réelle achevée, dans laquelle n'importe quel nombre, divisé par l'infini, donne 0.

La convention de Louis Couturat est cependant assez difficile Ă  comprendre. Elle donne l'infini non signĂ© comme rĂ©sultat de la division de tout nombre par 0. Or, l'infini non signĂ© est un concept encore plus difficile Ă  saisir que « plus l'infini » et « moins l'infini ». De plus, Couturat est assez flou sur le statut qu'il faut alors donner Ă  des expressions comme ∞ × 0.

Abbas Edalat et Peter John Potts proposĂšrent pour leur part d'introduire en mĂȘme temps que l'infini comme inverse de zĂ©ro un second Ă©lĂ©ment[2], qui lui reprĂ©sente les formes indĂ©terminĂ©es, y compris celles qui apparaissent Ă  cause de l'introduction de l'infini. En fait, ces propositions sont postĂ©rieures aux conventions informatiques.

En informatique, pour le calcul en nombres flottants, c'est un tel systĂšme qui est utilisĂ©, en utilisant dans le calcul les Ă©lĂ©ments +∞, –∞ et NaN, ce dernier Ă©tant utilisĂ© pour les formes indĂ©terminĂ©es (voir #En informatique).

Si l'on emploie une telle convention, il faut se souvenir que certaines propriĂ©tĂ©s des nombres rĂ©els ne sont plus vraies dans l'ensemble formĂ© par les nombres rĂ©els et les nouveaux Ă©lĂ©ments introduits. En effet, comme on a pour deux nombres diffĂ©rents n et m les Ă©galitĂ©s n/0 = ∞ et m/0 = ∞, la division n'est plus rĂ©versible par multiplication (∞ × 0 ne peut valoir simultanĂ©ment n et m), et n'est donc plus dĂ©finie comme son opĂ©ration rĂ©ciproque.

Il faut bien rappeler que par définition des nombres réels, l'infini, signé ou non, et les formes indéterminées n'en sont pas. L'ajout de ces éléments constitue donc une extension de l'ensemble des réels, comme l'est la construction des nombres complexes.

Justification par les limites

Graphe de la fonction inverse

Mais en analyse, on peut essayer de donner un sens à la limite de la fonction inverse en 0, c'est-à-dire du quotient 1/x lorsque x tend vers zéro. Ainsi, si x désigne un nombre réel non nul, le quotient 1/x peut avoir une valeur absolue aussi grande qu'on veut, à condition de prendre x suffisamment proche de zéro. On écrit cela :

et on dit que la valeur absolue de ce quotient admet pour limite « plus l'infini » lorsque x tend vers zéro.
Si l'on veut se passer de la valeur absolue, il faut distinguer deux cas, selon que x tend vers zĂ©ro par valeurs nĂ©gatives (dans ce cas, le quotient tend vers ) ou positives (le quotient tend alors vers +∞).

On Ă©crit : ,
et : .

En termes vulgarisés, quand x est trÚs petit, 1/x est trÚs grand, ce qui peut pousser à convenir que 1/0 vaudrait l'infini. Le problÚme est que quand x est trÚs petit mais inférieur à 0, 1/x devient trÚs important en dessous de zéro. On ne peut donc définir si 1/0 vaudrait plus l'infini ou moins l'infini.

MĂȘme dans la droite rĂ©elle achevĂ©e, qui comprend –∞ et +∞ comme Ă©lĂ©ments, on ne peut donc pas dĂ©finir la division par zĂ©ro (alors que l'on a, par exemple, 1/∞ = 0).

Analyse non standard

Sans autoriser la division par zéro, les nombres hyperréels admettent des nombres « infiniment petits ». Dans ce domaine des mathématiques, un nombre infinitésimal (plus petit que tout réel positif, sauf 0) a pour inverse un « infiniment grand » (plus grand que tout réel).

AlgĂšbre

En algÚbre, l'impossibilité de diviser tout nombre par zéro se démontre dans le cadre plus général de la théorie des anneaux.

En effet, on démontre en rÚgle générale que l'élément neutre de la premiÚre loi de l'anneau (l'addition pour les nombres réels) est un élément absorbant pour la seconde loi (la multiplication).

  • DĂ©monstration : (parce que ) et (par distributivitĂ© Ă  droite), d'oĂč , d'oĂč . De mĂȘme pour l'autre cĂŽtĂ© si l'anneau n'est pas commutatif.

Donc pour tout nombre a, a × 0 = 0. Or, la division s'entend comme l'opĂ©ration rĂ©ciproque de la multiplication. Donc diviser par zĂ©ro reviendrait Ă  multiplier par l'inverse de zĂ©ro. Or, zĂ©ro n'a pas d'inverse.

C'est pourquoi la division par zĂ©ro n'a non seulement pas de sens dans les ensembles de nombres usuels (entiers, rĂ©els ou complexes), mais plus gĂ©nĂ©ralement dans tout ensemble de nombres vĂ©rifiant les propriĂ©tĂ©s algĂ©briques usuelles vis-Ă -vis de l'addition et de la multiplication (ce qu'on appelle un anneau). Il n'y a donc pas d'espoir de construire un nouvel ensemble de nombres qui donnerait un sens Ă  l'inverse de zĂ©ro (comme celui des nombres complexes donne un sens Ă  la racine carrĂ©e de –1), sauf si l'on accepte de perdre des propriĂ©tĂ©s essentielles du calcul algĂ©brique usuel (notamment la distributivitĂ© de la multiplication sur l'addition).

Pseudo-inverse

Le problÚme général de la division impossible a amené en algÚbre linéaire à inventer un objet conservant certaines propriétés de l'inverse : le pseudo-inverse.

Dans le cas matriciel, la définition est la suivante :

Étant donnĂ© une matrice A avec n lignes et p colonnes, son pseudo-inverse A+ vĂ©rifie (entre autres, on ne met que les plus simples) les conditions suivantes :

  1. ;

Donc, en considérant les nombres comme matrices à une seule ligne et une seule colonne, le pseudo-inverse de 0 est 0.

Bien entendu, la notion de pseudo-inverse est beaucoup plus importante pour les matrices de taille supérieure. La définition d'un nouvel objet ne se justifierait pas pour donner seulement une réponse à la division par zéro pour les nombres réels.

Analyse

En analyse, dans certains cas, il est possible de calculer la limite d'un quotient dont le dénominateur est une suite ou une fonction de limite nulle.

Par exemple, un cas Ă©vident est celui de la fonction . En principe, on devrait dire que ƒ(0) ne peut ĂȘtre calculĂ© car implique une division par 0. Mais pour tout x autre que 0, on peut simplifier l'expression en ƒ(x) = x. Il est alors Ă©vident qu'on peut Ă©crire ƒ(0) = 0 en tant que limite (valeur dont ƒ(x) devient « infiniment proche » quand x devient « infiniment proche » de 0, pour donner une idĂ©e du concept).

Bien entendu, le problÚme n'apparaßt pas forcément en approchant la valeur 0 pour l'argument de la fonction. Par exemple, pour la fonction , c'est quand x vaut 3 qu'on a un problÚme de type « division par zéro ».

Suivant les expressions que l'on trouve au numĂ©rateur et au dĂ©nominateur, une expression comprenant une division par zĂ©ro peut avoir pour limite 0, un autre nombre, +∞ (plus l'infini), -∞, ou ne pas avoir de limite. Quelques exemples :

  • a 0 pour limite en 0 (dĂ©jĂ  vu)
  • a pour limite en 0 (exercice courant pour Ă©tudiants en mathĂ©matiques ; utilise le dĂ©veloppement limitĂ©)
  • a comme limite en 0
  • n'a pas de limite en 0

Comme piĂšge de raisonnement

Dans les pseudo-dĂ©monstration d'Ă©galitĂ© entre nombres, la mĂ©thode la plus courante consiste Ă  dĂ©montrer que x = y, alors que c'est trivialement faux (exemple : x = 1, y = 2) en dĂ©montrant en fait que 0 × x = 0 × y (ce qui, on l'a dit plus haut, est vrai pour tous les nombres), puis en divisant par zĂ©ro des deux cĂŽtĂ©s pour simplifier (il est vrai que z × x = z × y implique que x = y pour tout nombre z autre que 0).

L'astuce consiste à compliquer les expressions de telles maniÚres qu'on effectue la « simplification par zéro » en divisant par une expression si compliquée que le lecteur ne s'aperçoit pas qu'elle vaut 0.

Tentatives plus poussées

Le docteur en mathématiques Jesper Carlström a fait l'inventaire des méthodes proposées pour étendre les ensembles mathématiques en autorisant la division par zéro. En généralisant les constructions précédemment proposées, il obtient une structure appelée wheel, c'est-à-dire « roue », allusion au fait que cette structure s'obtient en complétant un anneau.

Comme dĂ©jĂ  dit, l'ensemble autorisant la division par zĂ©ro n'est mĂȘme plus un anneau. Et dans cet ensemble, si l'Ă©galitĂ© x – x = 0 × x2 reste vraie, cela ne signifie pas forcĂ©ment que x – x = 0[3].

Le professeur d'informatique James Anderson proposa pour sa part d'ajouter les deux infinis et un nouveau nombre appelĂ© nullity (qu'on obtient, par exemple, en faisant 0/0) pour autoriser la division par zĂ©ro dans tous les cas. Les critiques remarquĂšrent que cela revenait Ă  peu prĂšs au mĂȘme que la convention dĂ©jĂ  utilisĂ©e en informatique (voir plus bas), Ă  cela prĂšs que la rĂ©ponse des ordinateurs pour une forme indĂ©terminĂ©e, NaN (ce qui signifie : « pas un nombre ») est appelĂ©e un nombre, et que quelques-unes de ses propriĂ©tĂ©s conventionnelles changent[4].

En informatique

En informatique, suivant le standard IEEE 754, un résultat est prévu pour la division par 0.

Tout nombre positif non nul divisĂ© par 0 donne Inf (l'infini), tandis qu'un nombre nĂ©gatif donne -Inf. Cependant il est aussi prĂ©vu que le diviseur ait une valeur de zĂ©ro, tout en ayant son signe nĂ©gatif (-0). Dans ce cas, le signe de l'infini est inversĂ©. Techniquement, cela vient du fait que dans le codage des nombres Ă  virgule flottante en informatique, un bit indique si le nombre est positif ou nĂ©gatif, les autres bits reprĂ©sentant la valeur absolue. En fait, exceptĂ© quand on calcule avec des nombres complexes, la division par zĂ©ro est quasiment le seul cas oĂč la distinction +0/-0 prend une importance[5].

De plus, il faut noter qu'on peut trouver zĂ©ro comme produit de deux nombres non nuls, s'ils sont si petits que leur produit est infĂ©rieur au plus petit nombre reprĂ©sentable, ou comme rĂ©sultat d'autres opĂ©rations pour lesquelles la prĂ©cision des nombres tels qu'Ă©valuĂ©s par l'ordinateur joue. La division par zĂ©ro en informatique peut donc se produire mĂȘme quand le modĂšle prĂ©dit qu'une variable ne peut pas faire zĂ©ro.

0/0 donne pour sa part NaN (« Not a Number », ce qui signifie en anglais « pas un nombre »), tout comme de multiplier Inf ou -Inf par 0, ou de soustraire Inf à Inf. Donc si on a quelque part effectué une division par zéro, on trouve ensuite souvent une variable qui vaut NaN.

Ce qui arrive aprÚs une division par zéro dépend des choix faits par le programmeur, mais il est assez souvent préférable de prévoir que le programme interrompe son exécution dÚs qu'une variable vaut Inf, -Inf ou NaN, plutÎt que de le laisser continuer à se dérouler en se basant sur de telles valeurs, qui sont relativement inutilisables pour prendre des décisions.

Par exemple, supposons que l'on souhaite comparer deux nombres x et y ; on obtient en fait les quantitĂ©s z × x et z × y. On les redivise par z. Finalement, si z valait en fait 0, on obtient NaN pour les deux valeurs, ce qui ne permet pas de dĂ©terminer laquelle des deux est la plus grande. MĂȘme si les ordinateurs ont des rĂ©ponses conventionnelles pour ces comparaisons, il est souvent prĂ©fĂ©rable que le programme envoie un message d'alerte pour signaler qu'en raison d'une division par zĂ©ro, les rĂ©sultats sont inutilisables.

D'autres calculateurs ont comme convention de renvoyer l'erreur spĂ©cifique « division par zĂ©ro ». C'est gĂ©nĂ©ralement le cas des calculatrices de poche. Exemple particulier, le logiciel de mathĂ©matiques Maple renvoie une erreur si la division est faite sous forme symbolique (par exemple 1/0 ou π/0), mais « l'infini des flottants » (ou moins l'infini) si un des nombres est Ă  virgule flottante.

Certaines des plus grandes destructions de matériels causées par des plantages informatiques ont pour cause un comportement catastrophique en cas de division par zéro, parce que le programmeur pensait à tort que la variable utilisée comme diviseur ne vaudrait jamais 0[6].

Annulation catastrophique

Pour comprendre les raisons d'une division par zĂ©ro, il faut mentionner la notion d'« annulation catastrophique » (Catastrophic cancellation). Pour des nombres enregistrĂ©s dans la mĂ©moire d'un ordinateur, on utilise gĂ©nĂ©ralement la reprĂ©sentation en virgule flottante. Or, cela signifie que les nombres ne peuvent ĂȘtre connus qu'avec une prĂ©cision relative limitĂ©e. L'annulation catastrophique est la soustraction de deux nombres qui ne sont pas formellement Ă©gaux, mais le sont dans la limite de la prĂ©cision utilisĂ©e[7].

Donc, bien que d'un pur point de vue mathĂ©matique l'exponentielle d'un nombre non nul soit diffĂ©rente de 1, en informatique 1/(exp(x)-1) provoquera une division par zĂ©ro, non seulement si x est nul, mais aussi quand x est non nul mais que exp(x) est un nombre trop peu diffĂ©rent de 1 pour ĂȘtre distinguĂ© en reprĂ©sentation flottante. Or en virgule flottante, la prĂ©cision est relative. Ce qui signifie que ce format permet de reprĂ©senter des nombres trĂšs petits (par exemple, le format « simple prĂ©cision » permet de reprĂ©senter des valeurs de l'ordre de 10-38), mais qu'il ne peut pas reprĂ©senter une diffĂ©rence par rapport Ă  1 aussi faible (toujours en « simple prĂ©cision », le plus faible Ă©cart Ă  1 reprĂ©sentable est de l'ordre de 10-8).

Voir aussi

Notes et références

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.