On 7/18/08, Raymond Toy (RT/EUS) <raymond.toy at ericsson.com> wrote:
> But if you want a numerical value, you can use romberg, or quad_qag
> (and friends).
I recommend pretty strongly against romberg. The quadpack functions
are uniformly superior from what I can tell.
* there are problems for which romberg fails but quadpack succeeds
* and I haven't found an example for which romberg succeeds and
quadpack fails
* and if quadpack fails, it attempts to diagnose the problem
* quadpack functions return error estimates, but not romberg
* to achieve a stated error tolerance, quadpack uses fewer function
evaluations than romberg
* there are specialized versions of quadpack functions for different
problem classes, romberg is one-size-fits-all
For the example at hand, assuming that the x(... is supposed to be x*(...
I get the following.
f(x) := (500*((0.0075 + log((x/15.5) + 1))^0.2)*x*((5.5^2) -
(x^2))^0.5 - ((4.5^2) - (x^2))^0.5);
quad_qags (f(x), x, 0, 4.5);
=> [15624.57336771343, 6.9011136083018057E-5, 273, 0]
I can't account for the discrepancy with the reported result (5203.1...).
FWIW, & HTH.
Robert Dodier