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])