Re: Re: Mathematica goes Bad
- To: mathgroup at smc.vnet.net
- Subject: [mg59598] Re: [mg59580] Re: Mathematica goes Bad
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sat, 13 Aug 2005 03:26:32 -0400 (EDT)
- References: <200508090730.DAA19089@smc.vnet.net> <ddcb4g$5bk$1@smc.vnet.net> <200508120737.DAA17602@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Maxim wrote: > On Wed, 10 Aug 2005 07:42:08 +0000 (UTC), Daniel Lichtblau > <danl at wolfram.com> wrote: > > >>I think it is safe to say that symbolic calculus is fraught with >>problematic areas where, for example, mistakes involving a combination >>of branch cuts and arithmetic with infinities can lead to erroneous >>results. I do not see any evidence of this sort of phenomenon in the >>example above, though. That was just a design decision. While you may >>think it was the wrong thing to do, it is not symptomatic of deep >>mathematical flaws. >> >>I will note that by our metrics the number of open bugs in Limit dropped >>sharply between versions 4 and 5 of Mathematica (I am not going to >>quantify more closely than that). >> >> >>Daniel Lichtblau >>Wolfram Research >> > > > Certainly this model of directed infinities has some peculiar properties. > For example, some functional identities don't hold when infinite > quantities are involved: > > In[1]:= E^Infinity*E^(I*Pi) == E^(Infinity + I*Pi) > > Out[1]= False > > So E^(a + b) != E^a*E^b. This also means that Exp is not a continuous > function anymore: > > In[2]:= Limit[E^(x + 2*I*ArcTan[x]), x -> Infinity] > > Out[2]= Infinity > > This is the result we get if we interchange Exp and Limit operations, > which is equivalent to continuity. However, the correct result is > -Infinity (Arg tends to Pi). This was the sort of example I had in mind. Though I will note that we have made modest improvement in our development version: In[1]:= Limit[E^(x + 2*I*ArcTan[x]), x -> Infinity] Out[1]= -Infinity > Also I think Mathematica often has problems with examples where the path > along which the limit is taken or the path of integration isn't a straight > line from the origin: > > In[3]:= Integrate[(1 - Log[z])/z^2, {z, -1 - I, I*Infinity}] > > Out[3]= (-(1/8) - I/8)*(3*Pi + 2*I*Log[2]) > > NIntegrate understands this as the integral along the line (-1 - I) + t*I > with t running from 0 to Infinity, and Integrate works the same way, as > can be seen from simpler examples. But then Out[3] is incorrect, because > the antiderivative Log[z]/z is discontinuous on the path of integration, > and the result is 2*Pi*I less than the correct value of the integral. > > Maxim Rytin > m.r at inbox.ru I doubt Integrate understands this in any nice way. In general if an endpoint is infinite, Integrate will have its best chance if the other point is on the line connecting the origin to that infinite endpoint. Daniel Lichtblau Wolfram Research
- References:
- Mathematica goes Bad
- From: "Igor Touzov" <igor@nc.rr.com>
- Re: Mathematica goes Bad
- From: Maxim <ab_def@prontomail.com>
- Mathematica goes Bad