Re: how to explain this weird effect? Integrate

*To*: mathgroup at smc.vnet.net*Subject*: [mg46519] Re: how to explain this weird effect? Integrate*From*: "David W. Cantrell" <DWCantrell at sigmaxi.org>*Date*: Fri, 20 Feb 2004 22:59:19 -0500 (EST)*References*: <20040218182324.673$gV@newsreader.com> <c11se0$nkq$1@smc.vnet.net> <c14738$4bt$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

drbob at bigfoot.com (Bobby R. Treat) wrote: > I agree with Andrzej; And I too agree with Andrzej much of the time! (But I hope that I agree with him only when he's right. ;-) Are you thinking that I advocated that Mathematica "just substitute limits everywhere"? If so, I'm truly baffled. I have certainly never advocated such a thing! > Mathematica can't just substitute limits > everywhere. To do so assumes a context that may not be relevant. In my opinion, it would be even worse than assuming a possibly irrelevant context. Evaluation of a function _at_ a certain value of the variable and the limit of a function as the variable _approaches_ a certain value are two fundamentally different things! It would be absolutely incorrect mathematically to confuse the two. Example: We want Floor[Cos[x]]/.x->0 to give us 1, just as it does in Mathematica, rather than 0. If instead we actually wanted Limit[Floor[Cos[x]], x -> 0], we should have to ask for it _per se_. {Aside: Hmm. Here's a bizarre coincidence. That example was just now made up by me, off the top of my head. But I now see that Mathematica 5.0 gets the limit wrong! In[1]:= Limit[Floor[Cos[x]], x -> 0] Out[1]= 1 It should be 0, of course. Yet another bug. End aside.} > More to the point, I simply don't want Mathematica to spend time > computing limits without asking me. Sometimes these limits would be > very slow to compute and Mathematica would sometimes fail to compute > them, or even get them wrong. I also agree with that. > I'd rather have an error message, so that I know there's a formal > discontinuity to deal with in context. If something's undefined, I too want to be informed about that fact. David Cantrell > Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote in message > news:<c11se0$nkq$1 at smc.vnet.net>... > > On 19 Feb 2004, at 00:23, David W. Cantrell wrote: > > > > > Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote: > > >> On 15 Feb 2004, at 04:19, steve_H wrote: > > >> > > >>> Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote in message > > >>> news:<c0kr0g$fo8$1 at smc.vnet.net>... > > >>>> On 14 Feb 2004, at 03:56, steve_H wrote: > > >>>> > > >>>>> mathematically speaking, 1/a when a=0, is the same as Limit[1/a , > > >>>>> a->0] So, the final answer should not be different. > > > > > > Right. The only reason that they differ in Mathematica is that, when > > > finding Limit[1/a, a->0], Mathematica assumes a specific path, namely > > > that > > > a approaches 0 along the positive real axis. But if we're dealing > > > with a > > > path-independent limit and with, say, C* = C U {oo}, the one-point > > > compactification of C, for the domain and range of the function f(z) > > > = 1/z, > > > then f is continuous: f(0) and the limit of f(z) as z -> 0 are both > > > oo. > > > > > > [snip] > > >> It is precisely the fact that > > >> > > >> Limit[(f[x+h]-f[x])/h, h->0] is not obtained by "substituting" 0 for > > >> h, > > >> that is the key point here. > > > > > > That key point is, of course, correct. > > > > > >> What you wrote, that is that 1/x at 0 is the same as Limit[1/x, > > >> x->0] is entirely wrong mathematically. > > > > > > No, it is correct, at least in contexts familiar to me: > > > > > > 1) If we take the codomain of f(x) = 1/x to be R or C, then f(x) is > > > undefined at x = 0 and the corresponding limit does not exist. > > > Granted, the > > > usual wordings "undefined" and "does not exist" are different, but > > > they're > > > saying essentially the same thing. > > > > > > 2) If we take the codomain to be C* or R* (the one-point > > > compactification > > > of R), then f(x) is defined at x = 0, the corresponding limit exists, > > > and > > > they are the same. > > > > > > Note that, above, I was talking about path-independent limits. But, > > > for better or worse, Mathematica assumes a specific default path when > > > finding > > > Limit[1/x, x->0]. Due to that, it yields Infinity. But the > > > corresponding > > > path-independent limit should give ComplexInfinity, which is the same > > > as > > > the value of 1/x at x = 0 in Mathematica. > > > > > >> It is the kind of thing that is used when people speak informally, > > >> or perhaps by engineers who do not care > > >> about mathematical correctness but only if things work in practice, > > >> but > > >> it was you who wrote "mathematically". > > > > > > There's nothing inherently informal or incorrect in such usage. > > > > > >> Mathematically, the real valued > > >> function written as 1/x has no value at all at 0. > > > > > > True. > > > > > >> There is no real or complex number called Infinity or > > >> ComplexInfinity. > > > > > > True. Those are instead elements of extensions of R and C, resp. > > > > > >> On the other hand > > >> Limit[1/x,x->0] = Infinity has a well defined sense: it means that > > >> for all x which are small enough 1/x will exceed any chosen > > >> number, however large. > > > > > > More specifically (remembering the default path), > > > ... for all _positive_ x which are small enough... > > > > > > But such a limit statement can have _different_ well defined senses, > > > depending on context. I presume that, for you, the context was > > > strictly that of the reals. In that case, saying "Limit[1/x,x->0] = > > > Infinity" is merely giving a specific way that the limit fails to > > > exist. As you said, > > > it's because "1/x will exceed any chosen number, however large." But > > > if the > > > context is instead R* or C*, then it's literally (and rigourously) > > > correct > > > to say that the value of the path-independent limit _is_ oo. > > > > > > [snip] > > >> In fact the situation is > > >> exactly the opposite of what you wrote, this kind of thing may be > > >> acceptable in a practically oriented mathematical program like > > >> Mathematica, would not be in a serious mathematics book (or at least > > >> the author would make excuses about the informality assuming that > > >> everybody knows the true state of affairs). > > > > > > No, "this kind of thing" can be perfectly acceptable "in a serious > > > mathematics book"! > > > > > >>> Do you know of a function that is well behaved and smooth at a > > >>> point 'a', where the limit of f(x) as x approaches 'a' will not be > > >>> f(a) ? if > > >>> so, please tell us about this function. > > >> > > >> Were you joking? This is the definiton of continuous at a. 1/x is > > >> not defined at 0 and there is not way to define it so as to make it > > >> continuous at 0. > > > > > > Sure there is a way: Take its codomain to be R* or C*, for example. > > > > > > David Cantrell > > > > > > > > You are entering into a pointless dispute which is about definitions at > > best and has nothing to do the aims of this list. But is you like .... > > One can of course consider functions with values in the Riemann > > sphere. (I certainly know about that since I am a professor of > > mathematics, a topologist, and most of my comparatively recent > > published work has been, in fact, on the topology of the space of > > holomorphic functions form complex projective spaces to the Riemann > > sphere and related stuff). But when you compactify the complex plane > > (and of course you can do the same thing with the real line though you > > need two extra points, which you can call Infinity and -Infinity and > > topologically you get the interval) you are no longer dealing with real > > valued or complex valued functions. The range of your functions is no > > longer a field, either of real numbers or complex numbers. You can no > > longer perform ordinary algebraic operations on your functions and you > > have to introduce lot's of additional care. All of this needs a lot of > > additional justification and one would expect a serious mathematician > > to know that. Of course if one is talking with people to whom this sort > > of thing is bread and butter one need not go into the details each time > > but this list is not such a place. > > Moreover, even to assume that when 1/x is a function in the complex > > plane not to mention on the Riemann sphere is actually choosing one > > context for Mathematica, which is not the only context in which > > Mathematica is used. Actually x can equally well be n element of an > > abstract abelian group written multiplicatively, or, say an element of > > the ring Z/p for a prime p, etc. Mathematica deals with such things > > too. To say that 1/x is not defined at 0 as Infinity is nonsense, > > though of course one could actually always define some sort of new > > mathematical object that allows one to do that. But that is completely > > beside the point, mathematics is very flexible and if you do not have > > an actual contradiction one can usually invent knew theories or new > > conventions to make sense of what was nonsense before. That is what > > happened with Leibniz, Abraham Robinson and non-standard analysis. But > > bringing up these issues here seems to me only like trying to show off > > ones mathematical knowledge without any relevance to Mathematica, which > > is not intended for this sort of theoretical and specialised purposes, > > though of course one can always adapt it oneself if one needs it. The > > reason not do do so in Mathematica is of course that buy forcing on it > > a particular interpretation you are making it harder for other peoples > > to use theirs, even your proposal to use automatically continuous > > extensions of certain functions might make things harder for people who > > needed to work with discontinuous functions, and forcing on certain > > expressions interpretations taken form complex analysis will make it > > harder for people who want to use them to work in abstract ring theory, > > without a topology and nay infinities. > > > > > > > > Andrzej Kozlowski > > Chiba, Japan > > http://www.mimuw.edu.pl/~akoz/