MathGroup Archive 2004

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

Search the Archive

Re: Mathematica 5.1 Integrals

  • To: mathgroup at
  • Subject: [mg52728] Re: [mg52690] Mathematica 5.1 Integrals
  • From: Andrzej Kozlowski <akoz at>
  • Date: Sat, 11 Dec 2004 05:21:28 -0500 (EST)
  • References: <>
  • Sender: owner-wri-mathgroup at

This message is so "typical" that I think I will keep it for future 

There are two large groups of people who write to complain about 
Mathematica. (I am excluding people who  complain about "straight 
forward" bugs). The first group, which includes some very expert users 
who know a lot about CAS, is characterized by its complete intolerance 
of wrong answers. At least some of them believe that every wrong answer 
returned  by a CAS system is a "bug" and should not be tolerated. As a 
consequence these people object to any use by Mathematica of method or 
rather approach which is sometimes called "heuristics" , basically 
making shortcuts or not always warranted assumptions to obtain answers 
that are only right in some cases and carry the risk of being wrong in 
others. The advantage of such methods is, of course, that when they 
work they work very much faster than the alternative rigorously correct 
approaches (when the latter exist, which is not always of course). In 
spite of occasional denials that have appeared in the past on this 
list, there is no doubt that Mathematica still uses a lot of such 
"heuristics", mostly in areas such as integration in the complex plane 
etc, where giving answers valid for all values of parameters etc is 
very difficult or sometimes impossible. The philosophy can, I think, be 
fairly described as it is better to give a few wrong answers and many 
right ones than to give no answers at all.  As far as I can tell all 
general-purpose CAS systems adopt a similar approach.
At least since version 4, when the Assumptions mechanism in functions 
such as Simplify appeared, there has been a growing tendency to move 
away form heuristic methods whenever "universally valid" rigorous 
algorithms were available. A big step in this direction was taken in 
version 5, where a big effort was made to make Integrate accept a wide 
range od assumptions and to try to verify the correctness of the 
answers it returns. The result was as might have been expected: some 
old integrals that used to give wrong answers returned correct ones, 
some of those that used to be right got broken (as always happens in 
such cases) and there was a big across the board slowdown in 
integration. That this would happen should be obvious to anybody with 
the slightest idea of how CAS work: you can't perform these extra 
checks and verifications only in the cases where wrong answers used to 
be returned; they will have to be performed also in the cases where the 
previous "heuristic' approaches gave correct answers. And that means 
everything is going to be slower or even much slower, depending on how 
much extra work is going to be done. So now it is the turn of the 
second group to complain: how come something that was done in 0.15 
seconds now takes 1 second, and returns the same answer? On the other 
hand, the first group is still not going to be satisfied, because 
Mathematica will still continue returning answers that are corrected 
only in "lucky" cases, and they will still demand that more check (and 
of course more slowdowns) should be added.
As for me looking at the figures below I am happy to see that 
Mathematica 5.1 is showing a visible improvement over 5.0 (which is of 
course the only meaningful comparison) so I am looking forward to 
receiving my upgrade.

Andrzej Kozlowski
Chiba, Japan

On 10 Dec 2004, at 10:22, Egbert Kankeleit wrote:

> *This message was transferred with a trial version of CommuniGate(tm) 
> Pro*
> Someone with  elitist "insight" can understand  the philosophy
> of costly updates? :
> Example (win2000, 850 MHz):
> i)     Timing[ FourierTransform[Exp[-(x + 1)^2] , x, X];]
> ii)     Timing[ Integrate[Exp[-(x + 1)^2 + I *x *X],
>         {x, -\[Infinity],\[Infinity]}];]
> iii)     Timing[ LaplaceTransform[Exp[-(x + 1)^2], x, X];]
> results respectively:
>          MMA 4.2,                  MMA 5.0            MMA5.1
> i)         1.4                    Infinity          117.       seconds
> ii)        1.0                    45.                     1.9
> iii)       0.15                    1.0                   1.0
> WRI,  quo vadis?
> kankel

  • Prev by Date: Re: Using LevenbergMarquardt Method with a complicated function
  • Next by Date: Re: Newbie Question -- Plot3d::plnc
  • Previous by thread: MMA 5.1 Integrals
  • Next by thread: Re: MMA 5.1 Integrals