Re: Re: Re: )
- To: mathgroup at smc.vnet.net
- Subject: [mg66466] Re: [mg66442] Re: Re: )
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 14 May 2006 02:58:05 -0400 (EDT)
- References: <200605050902.FAA28575@smc.vnet.net> <e3hf84$m1h$1@smc.vnet.net> <200605090635.CAA18518@smc.vnet.net> <e3sh4a$luu$1@smc.vnet.net> <200605120603.CAA17394@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 12 May 2006, at 15:03, Maxim wrote:
> On Wed, 10 May 2006 11:00:26 +0000 (UTC), Andrzej Kozlowski
> <akoz at mimuw.edu.pl> wrote:
>
>>
>> On 9 May 2006, at 15:35, Maxim wrote:
>>
>>> On Sat, 6 May 2006 06:20:52 +0000 (UTC), Andrzej Kozlowski
>>> <akoz at mimuw.edu.pl> wrote:
>>>
>>>>
>>>> laws of arithmetic do not hold). Some of them are hard to
>>>> explain: I
>>>> can't see any good reason at all why Infinity^Infinity is
>>>> ComplexInfinity, and it seems to contradict the the most basic rule
>>>> that x^y is always real when x and y are positive reals.
>>>> Besides, as
>>>> I mentioned earlier, Infinity and ComplexInfinity do not belong
>>>> together in any topological model known to me (you need a
>>>> "topological model" to be able to consider the issue of continuity)
>>>> and should never appear in the same formula. I can only consider
>>>> this
>>>> as a bug, and a rather silly one.
>>>>
>>>
>>> I think this is as it should be: we need to consider all the
>>> sequences
>>> converging to Infinity, and, for example, Limit[(x + I*Pi)^x, x ->
>>> Infinity] == -Infinity. So in that sense Infinity^Infinity ==
>>> ComplexInfinity: when z = z1^z2 and z1, z2 go to Infinity the
>>> absolute
>>> value of z always tends to Infinity but the argument can be
>>> arbitrary.
>>>
>>> Maxim Rytin
>>> m.r at inbox.ru
>>>
>>
>>
>> One can perhaps make some sense of this even topologically if one
>> assumes that map {z,w}->z^w has as its target space the Riemann
>> sphere and as its domain the Cartesian product of 2-discs. In other
>> words it is not a map of the form X x X -> X, as one usually
>> supposes. But then it is quite a different map from the one that
>> gives
>>
>> 2^Infinity
>>
>> Infinity
>>
>> and so on. I certainly cannot conceive of any sensible topology on
>> the set that is the union of the complex plane, the set of
>> DirectedInfinities and the point ComplexInfinity, can you? Any such
>> topology would have pretty shocking properties.... And if there is
>> no topology involved than what is Limit supposed to mean? Still, I
>> admit, that even if things that don't make any mathematical sense may
>> sometimes be acceptable in a symbolic algebra program, for purely
>> practical reasons, but then they are pretty likely to lead to
>> confusion and contradictions. This is in fact the current state of
>> affairs in this regard and it makes me feel that the whole
>> Mathematica approach to this business of Infinities maybe misguided.
>>
>> Of course, as we are not talking about mathematics or any kind of
>> empirical science this is all ultimately a matter of taste and as we
>> well know there is no accounting for tastes... or sense of humour.
>>
>> Andrzej Kozlowski
>>
>>
>
> I think what Limit could do here in principle is taking the limits of
> Abs[f[z]] and Arg[f[z]] separately. If the limit of the absolute
> value is
> infinite and the limit of the argument exists, return
> DirectedInfinity. If
> the limit of the argument doesn't exist, return ComplexInfinity.
First note that you are talking about Limits, while the original
discussion was about something a bit different (as I discuss below).
While I think your principle for Limits would be better than what
Mathematica does now, it is still, in my opinion, a sub-species of
the following one: given an input for which several interpretations
are possible choose the one for which the most "useful" answer can be
given. This principle was used a lot in early versions of
Mathematica, for example in definite integration, where Mathematica
would often by itself interpret input in such a way (often requiring
unstated assumptions) that it enable it to provide an (often
arguably) sensible answer. The problems with this approach have
often been discussed (in particular by yourself) so there is no need
to repeat this again here.
Beginning with version 4 WRI has been gradually replacing this
approach with conditional output and the Assumptions mechanism. I
think when at all feasible the second approach is much preferable.
For a start the user would be able to work in the mathematical
context that he wishes to: if he wants to work on the extended real
line or on the Riemann sphere he should be able to decide this
himself rather than have Mathematica choose for him what it finds
suitable.
However, there is a different issue involved here: the one Ted Ersek
originally asked about. This is to do with the way Mathematica
extends arithmetical operations to various infinite quantities it
uses. The answers that it returns often disagree with the answer
Limit gives, and this difference cannot be explained, I think, by the
fact that Limit assumes a default direction (I suspect, this fact
also would coexist somewhat uneasily with your principle). We have
already seen that:
Infinity^Infinity
ComplexInfinity
but note that actually:
Limit[z^z, z -> Infinity]
Infinity
The choice of direction does not make any difference here:
Limit[z^z, z -> Infinity, Direction -> I]
Infinity
Moreover:
Limit[z^z, z -> ComplexInfinity]
Infinity
(I don't get this one)
while
ComplexInfinity^ComplexInfinity
returns Indeterminate.
Here Limit and "direct substitution" agree:
Limit[z^2, z ->ComplexInfinity]
ComplexInfinity
ComplexInfinity^2
ComplexInfinity
on the other hand this:
Limit[2^z, z ->
ComplexInfinity]
is left unevaluated, rather than returning Indeterminate, as this does:
2^ComplexInfinity
Here is another example where the behaviour of Limit and "direct
substitution" differ.
p = (1 + z)/(1 + z^2)
p /. z -> ComplexInfinity
Indeterminate expression 0 *ComplexInfinity encountered.
Indeterminate
This is rather unpleasant if you were expecting that your principle
(or the Riemann sphere model) would be used here. Fortunately this
works:
Limit[p, z -> ComplexInfinity]
0
So the question that Ted asked seems quite to the point: what are the
rules governing direct algebraic manipulation of Infinities? it seems
to me that that there are almost none: basically any answer that
seemed sensible to whoever programmed this part of Mathematica is
returned in a seemingly haphazard way. It seems that neither a
topological model nor a formal principle like the one you have stated
is being used, or at least if there is one I can't work it out.
Andrzej Kozlowski
Tokyo, Japan
>
> Currently Mathematica just isn't being very consistent here:
>
> In[1]:= Limit[2^(x + I*Pi/(2*Log[2])), x -> Infinity]
>
> Out[1]= DirectedInfinity[I]
>
> In[2]:= Limit[2^(x + I*Pi/(4*Log[2])), x -> Infinity]
>
> Out[2]= Infinity
>
> The explanation for this can be as follows: if we simplify the limit
> expressions first, the first one yields I*2^x and the second remains
> unchanged. Then substituting x = Infinity yields I*2^Infinity ==
> DirectedInfinity[I] and 2^(Infinity + I*Pi/(4*Log[2])) ==
> 2^Infinity ==
> Infinity respectively. But in that case it just means that Mathematica
> used some unallowed operations (cannot just substitute x = Infinity
> as we
> don't have continuity), not that there really is some contradiction.
>
> If we accept the convention of taking the limits of Abs and Arg, then
> Out[1] is correct and Out[2] isn't (should be DirectedInfinity[1 +
> I]).
> Also then you're quite right that the results for Infinity^Infinity
> and
> 2^Infinity are inconsistent with each other -- they should be the same
> (either both ComplexInfinity or both Infinity).
>
> Another thing that is needed for completeness is specifying that
> Mathematica always assumes that the limit variable goes along a
> straight
> line from the origin:
>
> In[3]:= Limit[Re[z], z -> I*Infinity]
>
> Out[3]= 0
>
> This result wouldn't be correct for an arbitrary path: for
> instance, if z
> = 1 + I*t and t is real, then z also goes to I*Infinity and Re[z]
> == 1.
>
> Maxim Rytin
> m.r at inbox.ru
>
- References:
- When is x^y = != E^(y*Log[x])
- From: ted.ersek@tqci.net
- Re: )
- From: Maxim <m.r@inbox.ru>
- Re: Re: )
- From: Maxim <m.r@inbox.ru>
- When is x^y = != E^(y*Log[x])