Edwin Woollett wrote:
> I get quad_qag(..) error message no. 2
> ("excessive roundoff error") with
> a very simple function f(x) = x.
>
> ---------------------------------
> 1. Why are we getting excessive
> roundoff error with such a simple
> integrand?
>
> Or is this error message itself an error?
>
> --------------------
> 2. Why are the SLATEC error messages
> progressively disappearing the more
> times we call quad_qags(..) with
> the same function? ("message exhaustion")
The error messages have never been very well integrated into maxima. I
think slatec just stops printing then because it's run out of room.
Perhaps the quad_qag* functions should reinitialize the error message
handler on entry.
>
> ===================
>
> (%i1) integrate( x, x, -1, 1 );
> (%o1) 0
>
> /* quad_qag(..) run 1 */
>
> (%i2) for i thru 6 do
> (qlist : quad_qag( x, x, -1, 1, i ),
> print( "key is ", i ," ", qlist ) )$
>
> ***MESSAGE FROM ROUTINE DQAG IN LIBRARY SLATEC.
> ***INFORMATIVE MESSAGE, PROG CONTINUES, TRACEBACK REQUESTED
> * ABNORMAL RETURN
> * ERROR NUMBER = 2
> *
> ***END OF MESSAGE
>
> key is 1 [0.0, 1.1020760842711039E-14, 15, 2]
Look at the results. The estimated answer is 0.0, with estimated error
1e-14. The criteria, by default, is an relative error of 1d-10 and an
absolute error of 0. There's no way to get a relative error below 1d-10
(I think), and the absolute error always > 0. The criteria can never be
achieved. Relax the criteria.
Ray