Question: _CCquad versus _NoNAG and precision (numerical Integration) on Maple 12.01

G'day wizards of Maple

Following session leaves me puzzled right now because I cannot seem to find thorough documentation or explanation regarding the inner workings of the numerical integration in Maple anywhere right now. The problem stems from the sudden inability of the Maple kernel to compute a rather simple definite integral numerically using the _CCquad method. It works however, if I set _NoNAG as a method. Disagreeing with the documented help page inside Maple, btw, method=DEFAULT does not work.

> restart;
> infolevel[`evalf/int`] := 0;
> Digits := 50;
> a := 0.1e-1*(Int(exp(-0.1e-1*t)*(0.999e-3+.999001*exp(-0.1e-3*t))^3744, t = 0 .. 12, method = _CCquad));
> evalf(a);
                      0.0257803285245753308872307285274
> b := 0.1e-1*(Int(exp(-0.1e-1*t)*(0.999e-3+.999001*exp(-0.1e-3*t))^3744*(9.9999999*10^(-2)+.9999999*exp(-.1*t))^16, t = 0 .. 12, method = _CCquad));
> evalf(b);
                      0.0250956722719878084078803941907
> c := 0.1e-1*(Int(exp(-0.1e-1*t)*(0.999e-3+.999001*exp(-0.1e-3*t))^3744*(9.9999999*10^(-3)+.9999999*exp(-.1*t))^16, t = 0 .. 12, method = _NoNAG));
> evalf(c);
                     0.00596019925436963678947889115125

a and b can be computed using the _CCquad method, however c will spawn a thread that never terminates, or terminates when all the available memory is consumed. The memory allocation shown on the bottom of the worksheet is racing when method=_CCquad is used on the numerical integration of c. Why does Maple not tell me anything? Even setting the infolevel of evalf/int does not say anything interesting to me with regard to this.

The other problem I am having is that using the default method on numerical integration,  I seem to be hitting some kind of numerical issues with regard to the representation of the computed number in IEEE 754-1985 floating point format, however Maple does not indicate anything and just returns a number, which is astonishingly close to the expected number, however cross-checks reveil that the increasing the number of computed digits or the epsilon do not decrease the error in the result. So how can I find out that Maple was unable to compute part of the numerical solution of an integral?

Are there better computational methods than using the default integration method=_CCquad? And a trivial question remains: How can I parametrise the integration method using a function call? For example, I would like to be able to write something along the lines of:

myIntFunc := proc(func, digits, precision, intMethod)
  local prob;
  local t0 := 0.0;
  local tf := 12.0;
  prob := evalf[digits](Int(func, t = t0 .. tf, epsilon = 1.*10^(-precision), method=intMethod));
  return prob;
end proc:

This does not work for me because no matter how I try to submit intMethod, Maple always barfs and chokes.

Thanks in advance for any pointers (especially well-written documentation with regard to such problems).

Please Wait...