MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Mathematica goes Bad


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


  • Prev by Date: Re: export import eps | illustrator | pstoedit
  • Next by Date: Re: Some bugs in Mathematica
  • Previous by thread: Re: Mathematica goes Bad
  • Next by thread: Re: Re: Mathematica goes Bad