Subject: proposal to cut out romberg and quanc8 functions
From: Andrej Vodopivec
Date: Wed, 3 Jan 2007 10:15:29 +0100
I don't have any strong opinions about this. But romberg and quanc8
have the advantage that they can be nested:
(%i1) romberg(romberg(x^2+y^2, x, 0, y), y, 0, 1);
(%o1) 0.33333333333333
(%i2) integrate(integrate(x^2+y^2, x, 0, y), y, 0, 1);
(%o2) 1/3
Andrej
On 1/3/07, Robert Dodier <robert.dodier at gmail.com> wrote:
> Hello, I want to cut out the romberg and quanc8 functions.
> These are numerical quadrature functions which are superseded
> by QUADPACK. I believe that it will improve Maxima to remove
> these obsolete functions.
>
> Specifically I want (1) to move
>
> demo/rombrg.dem
> doc/share/rombrg.usg
> src/rombrg.lisp
>
> share/numeric/qq.dem
> share/numeric/qq.lisp
> share/numeric/qq.usg
>
> to the archive directory, and (2) to cut out the descriptions of the
> romberg and quanc8 stuff from the reference manual.
>
> (There is also a version of romberg which uses bigfloat computations.
> I am undecided about whether or not to also remove that.)
>
> romberg implements Romberg's extrapolation method.
> quanc8 implements an adaptive Newton-Cotes method.
> These methods are superseded by the Gauss-Kronrod methods
> implemented in QUADPACK. The QUADPACK functions are
> extrapolation methods, and the basic rules are Gaussian
> quadrature rules. Also, QUADPACK contains methods for
> specific problems (infinite interval, integrand with diferent
> weight functions, Cauchy principal value) and romberg and
> quanc8 do not.
>
> Empirically I have tested the romberg, quanc8, and quad_qags
> (from QUADPACK) on a set of 15 problems collected from the
> documentation for romberg, quanc8, and QUADPACK.
> Except for one problem in which numerical integration is expected
> to fail, I found that quad_qags always reports success and always
> meets the specified relative error tolerance (1e-6).
> romberg failed to converge or failed with a programming error
> in several cases, although it met the error tolerance otherwise.
> quanc8 failed to converge or failed with a programming error in
> some cases, and reported success without meeting the relative
> error tolerance in some others, and reported success and met
> the error tolerance in others.
>
> Thus I believe that it can established that QUADPACK is superior
> both from theoretical considerations and empirical observations.
>
> I would like to know if you are opposed to cutting romberg and quanc8.
>
> All the best, & hope this helps,
> Robert Dodier
>
> PS.
> input script: http://maxima.sourceforge.net/misc/compare_quadrature.mac
> raw output: http://maxima.sourceforge.net/misc/compare_quadrature.log
> summary: http://maxima.sourceforge.net/misc/compare_quadrature.txt
> (and also shown here)
>
> legend:
>
> (t/F, nnn) = (met relative error claim, #function evaluations)
> F.C. = failed to converge
> f.c.e. = failed to converge, but that was expected
> X/0 = division by 0
>
> quad_qags romberg quanc8
>
> F1 (t, 609) F.C. (t, 289)
>
> F2 (t, 441) (t, 85) (t, 1089)
>
> F3 (t, 2037) F.C. (F, 481)
>
> F4 (t, 105) (t, 257) (t, 65)
>
> F5 (t, 21) (t, 17) (t, 33)
>
> F6 (t, 21) (t, 65) (t, 33)
>
> F7 (t, 399) F.C. (t, 305)
>
> F8 (t, 357) (t, 2049) (F, 145)
>
> F9 (t, 441) (t, 277) (t, 5937)
>
> F10 f.c.e. f.c.e. f.c.e.
>
> F11 (t, 525) (t, 2049) (F, 33)
>
> F12 (t, 525) (t, 1025) (t, 353)
>
> F13 (t, 231) X/0 X/0
>
> F14 (t, 693) F.C. F.C.
>
> F15 (t, 819) X/0 X/0
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>