[Date Index]
[Thread Index]
[Author Index]
Re: Mathematica 5.1 Integrals
*To*: mathgroup at smc.vnet.net
*Subject*: [mg52728] Re: [mg52690] Mathematica 5.1 Integrals
*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>
*Date*: Sat, 11 Dec 2004 05:21:28 -0500 (EST)
*References*: <200412100122.UAA18889@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
This message is so "typical" that I think I will keep it for future
reference.
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
http://www.akikoz.net/~andrzej/
http://www.mimuw.edu.pl/~akoz/
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**
| |