Zéro puissance zéro

expression mathématique

Zéro à la puissance zéro, noté 00, est une expression mathématique qui n'a pas de valeur évidente. Il n'existe pas de consensus quant à la meilleure approche : définir l'expression (en lui donnant la valeur 1) ou la laisser non définie. Plusieurs justifications existent pour chacune des possibilités, et celles-ci sont décrites dans cet article. En algèbre et en théorie des ensembles, il est généralement convenu que la réponse est 00 = 1, alors qu'en analyse, l'expression n'est généralement pas définie. Les programmes informatiques ont également différentes méthodes pour gérer cette expression.

Exposants entiers modifier

De nombreuses formules impliquant des entiers naturels nécessitent de définir 00 = 1. Par exemple, si l'on voit b0 comme un produit vide, il faut le définir comme étant 1, même lorsque b = 0. En combinatoire, b0 est le nombre de 0-uplets dans un ensemble à b éléments ; il y en a exactement un, même si b = 0. De manière équivalente, l'interprétation de 00 dans la théorie des ensembles est le nombre de fonctions de l'ensemble vide dans l'ensemble vide ; il y a exactement une telle fonction, la fonction vide[1].

Polynômes et séries entières modifier

De façon similaire, il est souvent nécessaire de définir 00 = 1 quand on travaille avec des polynômes.

Un polynôme est une expression de la forme    est l'indéterminée et les coefficients   sont des nombres réels (ou plus généralement des éléments d'un anneau). L'ensemble de ces polynômes est noté   et forme lui-même un anneau. Le polynôme   est l'unité de cet anneau, en d'autres termes c'est l'unique élément vérifiant la propriété suivante :   multiplié avec n'importe quel autre polynôme   donne simplement  [2]. Les polynômes peuvent être « évalués » en remplaçant X par n'importe quel nombre réel. Plus précisément, étant donné un nombre réel  , il existe un unique morphisme d'anneaux   tel que  [3], appelé morphisme d'évaluation. Étant un morphisme d'anneaux, il satisfait alors  . En résumé,   pour toutes les spécialisations de x en un nombre réel, y compris x = 0.

Cette perspective est importante pour de nombreuses identités polynomiales en combinatoire. Par exemple, la formule du binôme de Newton   n'est valable pour x = 0 que si 00 = 1[4]. De même, la définition des anneaux de séries entières demandent que   pour toute valeur de x. Ainsi, les identités comme   et   ne sont valables en x = 0 que si 00 = 1.

Exposants réels modifier

 
Graphique de z = xy. Les courbes en rouge (avec z constant) donnent des limites différentes à mesure que (x, y) se rapproche de (0, 0). Les courbes vertes (de pente constante, y = ax) donnent toutes une limite de 1.

Les limites faisant appel à des opérations algébriques peuvent souvent être évaluées en remplaçant des sous-expressions par des limites. Si l'expression qui en résulte ne permet pas de déterminer la limite initiale, l'expression est appelée une forme indéterminée[5].

Lorsque f et g sont des fonctions à valeurs réelles qui tendent toutes deux vers 0 en un certain point t pouvant être un nombre réel ou ±∞ (avec f(t) > 0), alors la fonction f(t)g(t) n'a pas forcément comme limite 1. Suivant l'expression exacte de f et g, la limite de f(t)g(t) peut être n'importe quel nombre réel positif, ou +∞, ou diverger. Par exemple, les fonctions ci-dessous sont de la forme f(t)g(t) avec f(t), g(t) → 0 quand t → 0+, mais les limites sont différentes :

 .

En d'autres termes, la fonction de deux variables  , qui est continue sur l'ensemble {(x, y) : x > 0}, ne peut être prolongée en une fonction continue en (0, 0)[6]. Toutefois, sous certaines conditions, par exemple lorsque f et g sont deux fonctions analytiques et f est positive sur un intervalle ouvert ]0, b[, la limite à droite est toujours 1[7],[8],[9].

Exposants complexes modifier

Dans le plan complexe, la fonction zw peut être définie pour les z non nuls en choisissant une branche de log z puis en prenant zw = ew log z. Cela ne permet pas de définir 0w car il n'y a pas de branche de log z définie en z = 0, et encore moins dans un voisinage de 0[10],[11],[12].

Histoire de différents points de vue modifier

Le débat sur la définition de   existe depuis au moins le XIXe siècle. À l'époque, la plupart des mathématiciens étaient d'accord avec le fait que  , jusqu'à 1821 quand Cauchy[13] lista   dans une table des formes indéterminées, au même rang que  .

Dans les années 1830, Libri[14],[15] publia un argument, pour démontrer que  . Möbius[16] prit son parti, affirmant que   si  . Un commentateur, qui signa simplement « S », fournit le contre-exemple  . Ce contre exemple rendant caduque l'argument de Libri ce qui calma le débat pour quelque temps.

Plus de détails historiques se trouvent dans les travaux de Donald Knuth (1992).

Aujourd'hui, les mathématiciens interprètent les arguments ci-dessus de deux manières :

  • certains disent que la valeur de   dépend du contexte, et donc que définir l'expression pose problème[17] ;
  • d'autres (et particulièrement Donald Knuth) pensent que   devrait toujours être défini comme étant égal à 1[18].

Dans les programmes informatiques modifier

Standard IEEE sur les nombres à virgule flottante modifier

La norme IEEE 754 sur les nombres à virgule flottante est utilisée dans la conception de la plupart des bibliothèques qui traitent ces nombres. Elle recommande un certain nombre d'opérations pour calculer une puissance[19] :

  • pow définit 00 comme étant égal à 1. Si la puissance est un entier, le résultat est le même que pour la fonction pown, sinon le résultat est le même que pour powr (sauf certains cas exceptionnels).
  • pown définit 00 comme étant égal à 1. La puissance doit nécessairement être un entier. La valeur est définie pour les bases négatives ; par exemple, pown(-3,5) est -243.
  • powr traite 00 comme étant NaN (Not-a-Number – non défini). Le résultat est aussi NaN pour les cas comme powr(-3,2) où la base est négative. La valeur est définie par eexposant×log(base).

La variante pow est inspirée par la fonction pow fonction de la norme C99, principalement à des fins de compatibilité[20]. Elle est surtout utile pour les langages de programmation avec une seule fonction « puissance ». Les variantes pown et powr ont été introduites en raison de conflits d'utilisation de la fonction puissance et des différents points de vue indiqués ci-dessus[21].

Dans les langages de programmation modifier

Les bibliothèques standard du C et du C++ ne spécifient pas le résultat de 00 (une erreur de domaine peut se produire). Dans la norme C99, plus précisément son annexe normative F, le résultat est demandé être égal à 1, car cette valeur est plus utile que NaN pour les applications les plus importantes[22] (par exemple, avec des puissances entières). Le standard Java[23] et la méthode Système.Math.Pow[24] du framework .NET traitent aussi 00 comme étant égal à 1.

Logiciels mathématiques modifier

  • SageMath simplifie b0 en 1, même si des contraintes sont placées sur b[25]. Il prend 00 comme étant égal à 1, mais ne simplifie pas 0x pour d'autres valeurs de x.
  • Maple fait la distinction entre les entiers 0, 1, ... et les flottants 0.0, 1.0, ... (généralement notés 0., 1., ...). Si x ne s'évalue pas en un nombre, alors les expressions x0 et x0.0 sont respectivement évaluées en 1 (entier) et 1.0 (float). D'autre part, l'expression 0x est évaluée en l'entier 0, alors que 0.0x est évalué comme 0.x. Si à la fois la base et l'exposant sont égaux à zéro (ou s'évaluent en zéro), le résultat est de type Float(non défini) si l'exposant est le float 0.0 ; avec un entier comme exposant, l'évaluation de 00 donne l'entier 1, tandis que celle de 0.0 donne le float 1.0.
  • Macsyma simplifie également b0 en 1, même si aucune contrainte n'est placée sur b, mais émet un message d'erreur pour 00. Pour x>0, il simplifie 0x en 0[réf. nécessaire].
  • Mathematica et WolframAlpha simplifient b0 en 1, même si des contraintes sont placés sur b[26]. Alors que Mathematica ne simplifie pas 0x, WolframAlpha retourne deux résultats, 0 pour x > 0, et « indéterminé » pour un nombre réel x[27]. Mathematica et WolframAlpha déclarent tous les deux 00 comme étant une « forme indéterminée »[28].
  • Matlab, Python, Magma, GAP, Singular, PARI/GP et les calculatrices de Google et des iPhone évaluent 00 en 1.

Références modifier

  1. Nicolas Bourbaki, Éléments de Mathématiques, Théorie des ensembles, Springer-Verlag, 2004, III.§3.5.
  2. Nicolas Bourbaki, Algèbre, Springer, , §III.2 No. 9: "L'unique monôme de degré 0 est l'élément unité de   ; on l'identifie souvent à l'élément unité 1 de  ".
  3. Nicolas Bourbaki, Algèbre, Springer, , §IV.1 No. 3.
  4. "Some textbooks leave the quantity 00 undefined, because the functions x0 and 0x have different limiting values when x decreases to 0. But this is a mistake. We must define x0 = 1, for all x, if the binomial theorem is to be valid when x = 0, y = 0, and/or x = −y. The binomial theorem is too important to be arbitrarily restricted! By contrast, the function 0x is quite unimportant".(en) Ronald Graham, Donald Knuth, and Oren Patashnik, Concrete Mathematics, Reading (Mass.)/Menlo Park (Calif.)/Paris etc., Addison Wesley Longman Publishing Co, , 1re éd., 625 p. (ISBN 0-201-14236-8), « Binomial coefficients », p. 162
  5. S. C. Malik et Savita Arora, Mathematical Analysis, New York, Wiley, , 903 p. (ISBN 978-81-224-0323-7, lire en ligne), p. 223

    « In general the limit of φ(x)/ψ(x) when 1=x = a in case the limits of both the functions exist is equal to the limit of the numerator divided by the denominator. But what happens when both limits are zero? The division (0/0) then becomes meaningless. A case like this is known as an indeterminate form. Other such forms are ∞/∞ 0 × ∞, ∞ − ∞, 00, 1 and ∞0. »

  6. L. J. Paige, « A note on indeterminate forms », American Mathematical Monthly, vol. 61, no 3,‎ , p. 189–190 (DOI 10.2307/2307224, JSTOR 2307224)
  7. sci.math FAQ: What is 0^0?
  8. Rotando et Korn, « The Indeterminate Form 00 », Mathematical Association of America, vol. 50, no 1,‎ , p. 41–42 (DOI 10.2307/2689754, JSTOR 2689754)
  9. Lipkin, « On the Indeterminate Form 00 », Mathematical Association of America, vol. 34, no 1,‎ , p. 55–56 (DOI 10.2307/3595845, JSTOR 3595845)
  10. "Since log(0) does not exist, 0z is undefined. For Re(z) > 0, we define it arbitrarily as 0." George F. Carrier, Max Krook and Carl E. Pearson, Functions of a Complex Variable: Theory and Technique , 2005, p. 15
  11. "For z = 0, w ≠ 0, we define 0w = 0, while 00 is not defined." Mario Gonzalez, Classical Complex Analysis, Chapman & Hall, 1991, p. 56.
  12. "... Let's start at x = 0. Here xx is undefined." Mark D. Meyerson, The xx Spindle, Mathematics Magazine 69, no. 3 (June 1996), 198-206.
  13. Augustin-Louis Cauchy, Cours d'Analyse de l'École Royale Polytechnique (1821). Dans ses Œuvres Complètes, séries 2, volume 3.
  14. Guillaume Libri, Note sur les valeurs de la fonction 00x, Journal für die reine und angewandte Mathematik 6 (1830), 67–72.
  15. Guillaume Libri, Mémoire sur les fonctions discontinues, Journal für die reine und angewandte Mathematik 10 (1833), 303–316.
  16. A. F. Möbius, « Beweis der Gleichung 00 = 1, nach J. F. Pfaff » [« Proof of the equation 00 = 1, according to J. F. Pfaff »], Journal für die reine und angewandte Mathematik, vol. 12,‎ , p. 134–136 (lire en ligne)
  17. Examples include Edwards and Penny (1994). Calculus, 4th ed, Prentice-Hall, p. 466, and Keedy, Bittinger, and Smith (1982). Algebra Two. Addison-Wesley, p. 32.
  18. Donald E. Knuth, Two notes on notation, Amer. Math. Monthly 99 no. 5 (May 1992), 403–422 (arXiv:math/9205211 [math.HO]).
  19. Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin, Claude-Pierre Jeannerod, Vincent Lefèvre, Guillaume Melquiond, Nathalie Revol, Damien Stehlé et Serge Torres, Handbook of Floating-Point Arithmetic, Birkhäuser, , 1re éd. (LCCN 2009939668, DOI 10.1007/978-0-8176-4705-6), p. 216 (ISBN 978-0-8176-4705-6) (online), (ISBN 0-8176-4704-X) (print)
  20. http://grouper.ieee.org/groups/754/email/msg03270.html (beginning of the discussion about the power functions for the revision of the IEEE 754 standard, May 2007)
  21. http://grouper.ieee.org/groups//754/email/msg03292.html (suggestion of variants in the discussion about the power functions for the revision of the IEEE 754 standard, May 2007)
  22. John Benito, Rationale for International Standard—Programming Languages—C, , <abbr class="abbr" title="Le paramètre doit être un nombre entier.">5.1e éd. (lire en ligne [PDF]), p. 182
  23. « Math (Java Platform SE 8) pow », Oracle
  24. « .NET Framework Class Library Math.Pow Method », Microsoft
  25. « Sage worksheet calculating x^0 », Jason Grout
  26. « Wolfram Alpha calculates b^0 », Wolfram Alpha LLC, accessed April 25, 2015
  27. « Wolfram Alpha calculates 0^x », Wolfram Alpha LLC, accessed April 25, 2015
  28. « Wolfram Alpha calculates 0^0 », Wolfram Alpha LLC, accessed April 25, 2015