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 > > > > > >
- References:
- MMA 5.1 Integrals
- From: "Egbert Kankeleit" <e.kankeleit@t-online.de>
- MMA 5.1 Integrals