Re: how to explain this weird effect? Integrate
- To: mathgroup at smc.vnet.net
- Subject: [mg46529] Re: how to explain this weird effect? Integrate
- From: drbob at bigfoot.com (Bobby R. Treat)
- Date: Sun, 22 Feb 2004 11:27:27 -0500 (EST)
- References: <20040218182324.673$gV@newsreader.com> <c11se0$nkq$1@smc.vnet.net> <c14738$4bt$1@smc.vnet.net> <c16mc3$5q1$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
The problem with Floor[Cos[x]] may be related to this situation: Floor[1 - 10.^(-17)] 1 Bobby "David W. Cantrell" <DWCantrell at sigmaxi.org> wrote in message news:<c16mc3$5q1$1 at smc.vnet.net>... > 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/