integrate



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