Zero to the power of zero

From testwiki
Jump to navigation Jump to search

Template:Short description Template:Use dmy dates

Zero to the power of zero, denoted as Template:Math, is a mathematical expression with different interpretations depending on the context. In certain areas of mathematics, such as combinatorics and algebra, Template:Math is defined as 1 because this simplifies many formulas and ensures consistency in operations involving exponents. For instance, defining Template:Math aligns with the interpretation of choosing 0 elements from a set and simplifies polynomial and binomial expansions.

In other contexts, particularly in mathematical analysis, Template:Math is often considered an indeterminate form. This is because the value of Template:Math as both Template:Math and Template:Math approach 0 can lead to different results based on the limiting process. The expression arises in limit problems and may result in a range of values or diverge to infinity, making it difficult to assign a single consistent value in these cases.

The treatment of Template:Math varies across different computer programming languages and software. While many follow the convention Template:Math, others leave it undefined or return errors, depending on the context.

Discrete exponents

Many widely used formulas involving natural-number exponents require Template:Math to be defined as Template:Math. For example, the following three interpretations of Template:Math make just as much sense for Template:Math as they do for positive integers Template:Mvar:

All three of these specialize to give Template:Math.

Polynomials and power series

When evaluating polynomials, it is convenient to define Template:Math as Template:Math. A (real) polynomial is an expression of the form Template:Math, where Template:Math is an indeterminate, and the coefficients Template:Math are real numbers. Polynomials are added termwise, and multiplied by applying the distributive law and the usual rules for exponents. With these operations, polynomials form a ring Template:Math. The multiplicative identity of Template:Math is the polynomial Template:Math; that is, Template:Math times any polynomial Template:Math is just Template:Math.[2] Also, polynomials can be evaluated by specializing Template:Math to a real number. More precisely, for any given real number Template:Math, there is a unique unital [[algebra homomorphism|Template:Math-algebra homomorphism]] Template:Math such that Template:Math. Because Template:Math is unital, Template:Math. That is, Template:Math for each real number Template:Math, including 0. The same argument applies with Template:Math replaced by any ring.[3]

Defining Template:Math is necessary for many polynomial identities. For example, the binomial theorem (1+x)n=∑k=0n(nk)xk holds for Template:Math only if Template:Math.[4]

Similarly, rings of power series require Template:Math to be defined as 1 for all specializations of Template:Math. For example, identities like 11−x=∑n=0∞xn and ex=∑n=0∞xnn! hold for Template:Math only if Template:Math.[5]

In order for the polynomial Template:Math to define a continuous function Template:Math, one must define Template:Math.

In calculus, the power rule ddxxn=nxn−1 is valid for Template:Math at Template:Math only if Template:Math.

Continuous exponents

Plot of Template:Math. The red curves (with Template:Math constant) yield different limits as Template:Math approaches Template:Math. The green curves (of finite constant slope, Template:Math) all yield a limit of Template:Math.

Limits involving algebraic operations can often be evaluated by replacing subexpressions with their limits; if the resulting expression does not determine the original limit, the expression is known as an indeterminate form.[6] The expression Template:Math is an indeterminate form: Given real-valued functions Template:Math and Template:Math approaching Template:Math (as Template:Math approaches a real number or Template:Math) with Template:Math, the limit of Template:Math can be any non-negative real number or Template:Math, or it can diverge, depending on Template:Mvar and Template:Mvar. For example, each limit below involves a function Template:Math with Template:Math as Template:Math (a one-sided limit), but their values are different: limt→0+tt=1,limt→0+(e−1/t2)t=0,limt→0+(e−1/t2)−t=+∞,limt→0+(a−1/t)−t=a.

Thus, the two-variable function Template:Math, though continuous on the set Template:Math, cannot be extended to a continuous function on Template:Math, no matter how one chooses to define Template:Math.[7]

On the other hand, if Template:Math and Template:Math are analytic functions on an open neighborhood of a number Template:Mvar, then Template:Math as Template:Mvar approaches Template:Mvar from any side on which Template:Mvar is positive.[8] This and more general results can be obtained by studying the limiting behavior of the function log⁡(f(t)g(t))=g(t)log⁡f(t).[9][10]

Complex exponents

In the complex domain, the function Template:Math may be defined for nonzero Template:Math by choosing a branch of Template:Math and defining Template:Math as Template:Math. This does not define Template:Math since there is no branch of Template:Math defined at Template:Math, let alone in a neighborhood of Template:Math.[11][12][13]

History

As a value

In 1752, Euler in Introductio in analysin infinitorum wrote that Template:Math[14] and explicitly mentioned that Template:Math.[15] An annotation attributed[16] to Mascheroni in a 1787 edition of Euler's book Institutiones calculi differentialis[17] offered the "justification"

00=(a−a)n−n=(a−a)n(a−a)n=1

as well as another more involved justification. In the 1830s, Libri[18][16] published several further arguments attempting to justify the claim Template:Math, though these were far from convincing, even by standards of rigor at the time.[19]

As a limiting form

Euler, when setting Template:Math, mentioned that consequently the values of the function Template:Math take a "huge jump", from Template:Math for Template:Math, to Template:Math at Template:Math, to Template:Math for Template:Math.[14] In 1814, Pfaff used a squeeze theorem argument to prove that Template:Math as Template:Math.[8]

On the other hand, in 1821 Cauchy[20] explained why the limit of Template:Math as positive numbers Template:Mvar and Template:Mvar approach Template:Math while being constrained by some fixed relation could be made to assume any value between Template:Math and Template:Math by choosing the relation appropriately. He deduced that the limit of the full two-variable function Template:Math without a specified constraint is "indeterminate". With this justification, he listed Template:Math along with expressions like Template:Math in a table of indeterminate forms.

Apparently unaware of Cauchy's work, Möbius[8] in 1834, building on Pfaff's argument, claimed incorrectly that Template:Math whenever Template:Math as Template:Mvar approaches a number Template:Mvar (presumably Template:Mvar is assumed positive away from Template:Mvar). Möbius reduced to the case Template:Math, but then made the mistake of assuming that each of Template:Mvar and Template:Mvar could be expressed in the form Template:Math for some continuous function Template:Mvar not vanishing at Template:Math and some nonnegative integer Template:Mvar, which is true for analytic functions, but not in general. An anonymous commentator pointed out the unjustified step;[21] then another commentator who signed his name simply as "S" provided the explicit counterexamples Template:Math and Template:Math as Template:Math and expressed the situation by writing that "Template:Math can have many different values".[21]

Current situation

There do not seem to be any authors assigning Template:Math a specific value other than 1.[22]

Treatment on computers

IEEE floating-point standard

The IEEE 754-2008 floating-point standard is used in the design of most floating-point libraries. It recommends a number of operations for computing a power:[25]

The pow variant is inspired by the pow function from C99, mainly for compatibility.[26] It is useful mostly for languages with a single power function. The pown and powr variants have been introduced due to conflicting usage of the power functions and the different points of view (as stated above).[27]

Programming languages

The C and C++ standards do not specify the result of Template:Math (a domain error may occur). But for C, as of C99, if the normative annex F is supported, the result for real floating-point types is required to be Template:Math because there are significant applications for which this value is more useful than NaN[28] (for instance, with discrete exponents); the result on complex types is not specified, even if the informative annex G is supported. The Java method java.lang.Math.pow,[29] the .NET Framework method System.Math.Pow,[30] Julia, and Python[31][32] also treat Template:Math as Template:Math. Some languages document that their exponentiation operation corresponds to the pow function from the C mathematical library; this is the case with Lua's ^ operator[33] and Perl's ** operator[34] (where it is explicitly mentioned that the result of 0**0 is platform-dependent).

Mathematical and scientific software

R,[35] SageMath,[36] and PARI/GP[37] evaluate Template:Math to Template:Math. Mathematica[38] simplifies Template:Math to Template:Math even if no constraints are placed on Template:Math; however, if Template:Math is entered directly, it is treated as an error or indeterminate. Mathematica[38] and PARI/GP[37][39] further distinguish between integer and floating-point values: If the exponent is a zero of integer type, they return a Template:Math of the type of the base; exponentiation with a floating-point exponent of value zero is treated as undefined, indeterminate or error.

See also

References

Template:Portal