Re: Limit question

*To*: mathgroup at smc.vnet.net*Subject*: [mg31557] Re: Limit question*From*: "Allan Hayes" <hay at haystack.demon.co.uk>*Date*: Sun, 11 Nov 2001 00:34:45 -0500 (EST)*References*: <80696398-D5DC-11D5-A400-00039311C1CC@tuins.ac.jp>*Sender*: owner-wri-mathgroup at wolfram.com

Andrzej, 1) > I think we are talking about quite different things. My intention was to add to your posting by looking at what Mathematica is doing. It seems that the built in Limit function attempts to be more informative by adopting an approach with directed infinities. This need not be an attempt to simulate the traditional approach, but the relationship with this should be clear and the approach needs to be useful. As you say, it does look as if after loading Calculus`Limit` we get closer to the traditional. Without the package we get Limit[1/x, x-> 0]//FullForm DirectedInfinity[1] Limit[1/x, x-> 0, Direction-> 1]//FullForm DirectedInfinity[-1] Limit[1/x, x-> 0, Direction-> I]//FullForm DirectedInfinity[Complex[0,1]] Limit[1/x, x-> 0, Direction-> I]//FullForm DirectedInfinity[Complex[0,1]] Lets see what happens after loading the package. <<Calculus`Limit` This is traditional: Limit[1/x, x-> 0]//FullForm DirectedInfinity[] And this can be useful, tending to 0 along the negative real axis: Limit[1/x, x-> 0, Direction-> 1]//FullForm DirectedInfinity[-1] But we no longer deal with tending to 0 along the negative imaginary axis: Limit[1/x, x-> 0, Direction-> I]//FullForm DirectedInfinity[] and we can't get more information by parameterizing: Limit[1/(I t), t->0, Direction->1] ComplexInfinity 2) Personally, I am not happy with defining convergence using extension by continuity. The notion of convergence seems to me to come first. I agree that if we want Infinity etc. to be objects, rather than just words in a phrase, then we need to "add them" to the original spaces (or embed the original space suitably). But the language seems to me to come first, and to be more directly related to the epsilon-delta definitions and more amenable to computational treatment. Also it provides the motivation for the extension and an opportunity to illustrate the fascinating idea of creating structures to our needs --- Cauchy sequences ---> completions, ultrafilters --> compactifications, prime ideals --> .... and consistency --> model. Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 ----- Original Message ----- From: "Andrzej Kozlowski" <andrzej at tuins.ac.jp> To: mathgroup at smc.vnet.net Subject: [mg31557] Re: Limit question > I think we are talking about quite different things. What I have in mind > is the mathematial rationale which Mathematica (or at least some people > at Wolfram) are trying to "simulate" (I am aware that using this word in > a rather unusual sense but I can't think of a better one for the > relation between Mathematica and mathematics). The process of adding > "Infinity" or -Infinity to the real numbers or ComplexInfinity to the > complex numbers is a standard construciton in mathematics, known known > as compactifying these spaces. It is *the* rationale behind referring to > such things as Limit[1/x^2,x->0] as Infinity. There is no other > justification for doing so that I know of. Of course one could formulate > it in different but equivalent terms, but in the end it all amounts to > the same thing, which is that we can extend the function 1/x^2 > continously beyond its domain of definition by assigning it the value > Infinity at 0. Otherwise, what is wrong with saying that Limit[1/x^2, > x->0]=3 or anything at all? Of course one is always free to say "that > such a limit does not exist", but the nature of this "non-existence" is > clearly different from the way that the limit > Lim[Sin[1/x],x->0] "does not exist". > > Thus the "adding" that I mentioned to is not anything to do with > Mathematica as such, it is the mathematical justification of its > behaviour. > > In some situations thsi behaviour shows clear inconsistencies, because > of the uncertainty which mathematical interpretation of such limits > shoud be considered. Observe that the Calculus`Limit` package displays > the behaviour which most closely agrees with the one I advocate, that is: > > In[3]:= > <<Calculus`Limit` > > In[4]:= > Limit[1/x,x\[Rule]0] > > Out[4]= > ComplexInfinity > > I must admit can't understand the point of your comments on > DirecrtedInfinity. Clearly, DirectedInfinity[] is the same thing as > ComplexInfinity as it shoudl be. As for DirectedInfinity[z], it is of > course an notion analogous to +Infinity and -Infinity, an infinity along > a chosen line. After all there is nothing special about the real line, > topologically any line has two ends, as has any open non-compact one > dimensional manifold. I don't see how this contradicts anything that I > wrote? > > > Andrzej Kozlowski > Toyama International University > JAPAN > http://platon.c.u-tokyo.ac.jp/andrzej/ > > > > > On Saturday, November 10, 2001, at 07:58 PM, Allan Hayes wrote: > > > Of course, Mathematica's does not add ComplexInfinity to the complex > > numbers > > or +infinity and -infinity to the reals: the underlying notion is > > DirectedInfinity. > > > > FullForm[{Infinity, -Infinity, ComplexInfinity}] > > > > List[DirectedInfinity[1],DirectedInfinity > > [-1],DirectedInfinity[]] > > > > Geometrically we can project the complex plane onto a hemisphere > > touching at > > zero, from the center of the corresponding sphere --- well, that does > > for > > DirectedInfinity[z], but where does DirectedINfinity[] come in? > > > > It does seem, as was pointed out earlier I think, that the default > > direction > > might be -1: > > > > Limit[1/x, x-> 0]//FullForm > > > > DirectedInfinity[1] > > > > Limit[1/x, x-> 0,Direction -> -1]//FullForm > > > > DirectedInfinity[1] > > > > > > Also, we have the expected > > > > Limit[1/x, x-> 0, Direction->I]//FullForm > > > > DirectedInfinity[Complex[0,1]] > > > > > > But after > > > > <<Calculus`Limit` > > > > we get > > > > Limit[1/x, x-> 0, Direction->I]//FullForm > > > > DirectedInfinity[] > > > > in spite of , for example, > > > > Limit[1/x, x-> 0, Direction->-1]//FullForm > > > > DirectedInfinity[1] > > > > > > -- > > Allan > > --------------------- > > Allan Hayes > > Mathematica Training and Consulting > > Leicester UK > > www.haystack.demon.co.uk > > hay at haystack.demon.co.uk > > Voice: +44 (0)116 271 4198 > > Fax: +44 (0)870 164 0565 > > > > "Andrzej Kozlowski" <andrzej at tuins.ac.jp> wrote in message > > news:9sigfu$avq$1 at smc.vnet.net... > >> Well, this dispute is as much (or more) about mathematical conventions > >> as about mathematics. Formally speaking, to consider the concept of a > >> limit of a function or a mapping you have to have two topological > >> spaces X and Y and a mapping f: X->Y between them. In order to decide > >> if > >> a limit exists or not one has to be clear about what the spaces X and Y > >> under consideration are. This of course is never explicitly clear in a > >> program like Mathematica. For example consider the function (mapping) > >> x -> 1/x. If you think of it as a mapping from the real line to the > >> real > >> line than it it is reasonable ot say that limit[1/x,x->0] does not > >> exists and neither does limit[1/x^2,x->0] since the natural candidate > >> for such a limit, Infinity, is not a real number. In order to make > >> sense > >> of such a concept it is common to adjoin to the real line two > >> additional > >> "points" , + Infinity and -Infinity (topologically the real line now > >> becomes equivalent to a closed interval) and once one has done that > >> one > >> can say that Limit[1/x^2, x->0] = + Infinity and Limit[-1/x^2, > >> x->0]=-Infinity. With this convention Limit[/x, x->0] still does not > >> exist. However, when considering the complex plane it is usual to add a > >> single point ComplexInfinity. With this point added the complex plane > >> becomes topologically a sphere (the Riemann sphere). The function > >> x->1/x > >> nwo has a limit at 0, which is precisely ComplexInfinity. In fact it > >> can > >> be extended to a holomorphic mapping from the Riemann sphere to itself > >> whose value at the point corresponding to 0 in the complex plane > >> (thought of as lying inside the sphere) is precisely ComplexInfinity. > >> When one says that Limit[1/x,x->0]= ComplexInfinity one is basically > >> referring to this sort of construction. Even in the real case one can > >> do > >> something similar, by thinking of the function x ->1/x as taking values > >> not in the real line with two extra points (-Infinity, +Infinity), > >> which > >> is topologically an interval, but in a topological circle which you > >> obtain by identifying these two infinities. Whn you use this convention > >> it is reasonable ot say that Limit[1/x, x->0] is just Infinity. In the > >> real case this is rarely useful and it is much more common to think of > >> +Infinity and -Infinity as distinct. In the complex case on the other > >> hand there is only one Infinity (ComplexInfinity) which has no > >> direction > >> or rather all directions (all straight lines) lead to ComplexInfinity. > >> > >> It's very difficult for a program like Mathematica to be consistent > >> about these things. In general Mathematica tries to interpret > >> Mathematical expressions in the widest possible context in which they > >> make sense. Thus a function like 1/x will normally be considered as a > >> complex valued function in the complex plane. However, when you use an > >> expression that only has a meaning in a restricted context (usually for > >> real numbers) Mathematica will restrict the domain of the expression > >> to > >> real values. Thus the function UnitStep[x] *1/x will be considered > >> as a > >> real function because it does not make sense to do otherwise. You can > >> sometimes force Mathematica to consider functions as real by inserting > >> UnitStep into their definition. > >> > >> On quite many occasions however Mathematica (or rather the people > >> responsible for various aspects of the Mathematica kernel) seems to > >> make pretty ad hoc (not based on a general principle) judgments about > >> whether a certain expression should be considered as real or complex. > >> Most of the examples I know involve Integration or Limits. A somewhat > >> strange one is, in fact: > >> > >> In[5]:= > >> Limit[1/x,x->0] > >> > >> Out[5]= > >> Infinity > >> > >> ComplexInfinity would have been more logical. It seems to me that > >> Mathematica is falling here in between the many stools it is trying to > >> sit on at once. Similar remarks apply to other cases that are from time > >> to time discussed on this list. > >> > > >> > >> > >> > >> On Saturday, November 10, 2001, at 12:34 AM, Otto Linsuain wrote: > >> > >>> > >>> I am confused by your remark. I think it is correct to say that > >>> > >>> Limit[1/x, x -> 0] and Limit[ Tan[x], x -> Pi/2] > >>> > >>> don't exist, even if x is allowed to go complex. I am not sure what > >>> you > >>> meant when you said that this is of course not true if one allows x to > >>> be > >>> a complex number. Perhaps you quoted the wrong piece of my message. > >>> > >>> Well, anyway, the bottom line is that Limit is pretty poorly > >>> implemented > >>> in Mathematica, although the improvements in the packages do help a > >>> lot. > >>> > >>> Otto Linsuain. > >>> > >>> On Fri, 9 Nov 2001, Andrzej Kozlowski wrote: > >>> > >>>> This is of course not true if you allow x to be a complex number, > >>>> which > >>>> is exactly what Mathematica normally does in such cases. > >>>> > >>>> On Friday, November 9, 2001, at 08:13 PM, Otto Linsuain wrote: > >>>> > >>>>> As for the limits Limit[1/x, x->0] and Limit[Tan[x],x->Pi/2], > >>>>> without > >>>>> specifying a direction, the correct answer is that they don't exist. > >>>>> > >>>> > >>>> > >>> > >>> > >> > >> > > > > > > > > > > >