# What we from 1^Infinity, Infinity^0, and similar stuff

Discussion in 'Mathematica' started by ted.ersek, Dec 23, 2005.

1. ### ted.ersekGuest

I am using Mathematica 4.1, and version 5 may work different in this case.

It seems I can compute (1^z) where (z) has any numeric value and
Mathematica returns the Integer 1. I can also compute (z^0) where (z) is
any non zero value and Mathematica returns the Integer 1. Hence I think
the following should return {1,1,1,1,1,1,1}. Can someone explain why that
would be wrong?

In[1]:= Off[Power::indet, Infinity::indet];

{1^Infinity, 1^(-Infinity), 1^ComplexInfinity,
1^(0*Infinity), Infinity^0, (-Infinity)^0, ComplexInfinity^0}

Out[2]= {Indeterminate, Indeterminate, Indeterminate, Indeterminate,
Indeterminate, Indeterminate, Indeterminate}

Assigning DownValues to Power will not change the way the results above
are done. However, the UpValues below give the results I prefer. I
thought some users might find this helpful.

In[3]:=
Unprotect[DirectedInfinity, Indeterminate];
DirectedInfinity/: Power[1, DirectedInfinity[_]]=1;
DirectedInfinity/: Power[1, DirectedInfinity[]]=1;
Indeterminate/: Power[1, Indeterminate]=1;
DirectedInfinity/: Power[DirectedInfinity[_], 0]=1;
DirectedInfinity/: Power[DirectedInfinity[], 0]=1;
Protect[DirectedInfinity, Indeterminate];

In[10]:=
{1^Infinity, 1^(-Infinity), 1^ComplexInfinity, 1^(0*Infinity),
Infinity^0, (-Infinity)^0, ComplexInfinity^0}

Out[10]=
{1,1,1,1,1,1,1}

--------------------------------------------
Note:
FullForm[Infinity] is DirectedInfinity[1]
FullForm[ComplexInfinity] is DirectedInfinity[]

Have a Merry Christmas,

Ted Ersek

ted.ersek, Dec 23, 2005

2. ### Jean-Marc GullietGuest

<> a écrit dans le message de dogjvd\$pno\$...
|I am using Mathematica 4.1, and version 5 may work different in this case.
|
| It seems I can compute (1^z) where (z) has any numeric value and
| Mathematica returns the Integer 1. I can also compute (z^0) where (z) is
| any non zero value and Mathematica returns the Integer 1. Hence I think
| the following should return {1,1,1,1,1,1,1}. Can someone explain why that
| would be wrong?

Hi Ted,

From a mathematical point of view, I am afraid that your hunch is totally
wrong since you are treating infinity as a number that own a definite
numeric quantity, perhaps extremely very enormously large but still finite!

Infinity is NOT a number (http://mathworld.wolfram.com/Infinity.html).

Expression such as 1^z makes sense (and have a definite meaning) only for
non-zero value of z. Since infinity is NOT a number, z cannot be equal to
it. However, z can approaches infinity and the expression 1^z as z
approaches infinity makes sense. Indeed, we deal with limiting value:

In[1]:= Limit[1^z, z -> Infinity]
Out[1]= 1

Therefore, what is the meaning of an expression such that 1^infinity?

Mathematically, this is the expression of an indeterminate form that results
from the computation of the limits of two functions of the form f(x)^g(x)
and the result is generally not equal to 1
(http://mathworld.wolfram.com/Indeterminate.html).For example,

although

In[1]:= Limit[z, z -> Infinity]
Out[1]= Infinity

and

In[2]:= Limit[1/z + 1, z -> Infinity]
Out[2]= 1

concluding that (1/z + 1)^z approaches 1 as z approaches infinity is an
erroneous conclusion

In[3]:= Limit[(1/z + 1)^z, z -> Infinity]
Out[3]= E

So, redefining the behavior of Mathematica could be a dangerous stand for
the unforeseeable side effects that might occur in different kind of
computations yielding unexpected – weird – results in doing some integration
or differentiations to name a few.

Best regards,

/J.M.

Jean-Marc Gulliet, Dec 24, 2005