Mathematica 9 is now available
Student Support Forum
Student Support Forum: 'Multidimensional NIntegrate Question' topicStudent Support Forum > General > Archives > "Multidimensional NIntegrate Question"

Help | Reply To Topic
Author Comment/Response
Erik Hom
02/10/01 09:37am

Hi folks,

Actually, I have 3 questions:

(1) Does any one know where I might find out more
about the Genz-Malik adaptive algorithm that is
implemented by default in the multidimensional
Nintegrate function (...or any of the other methods) ?
I've sifted through most of the Math Support site/posts
with out any good leads.

(2) I get tons of errors when I try and NIntegrate my
function of 2 variables, vx and vy, over {0->Infinity}, such
''Integrand Indeterminateis not numerical at {vx, vy} =
{4.9644777335711526*^17, 31.}
''General::unfl : Underflow occured in computation''

Shouldn't NIntegrate be able to handle the infinite upper
limit? Any suggestions for how I should massage the

For those who want to try it out:

P = 4.4000000000000004`*^-8;
B = -0.00001000000000000001`;
\[Beta] = -9.`*^-7;
w = 0.0001`;

\!\(NIntegrate[\(1\/\(2\ \[Pi]\)\)
\((\[ExponentialE]\^\(\(-\(1\/4\)\)\ \((vx\
\^2 + vy\^2)\)\ w\^2 - 1\/2\ tau\ \((A + \((vx\^2 + vy\^2)\)\
\[Alpha] + \
\@\(P + \((\(-B\) + \((vx\^2 + vy\^2)\)\ \[Beta])\)\^2\))\)\)\ w\^2\
\((1 + \
\[ExponentialE]\^\(tau\ \@\(P + \((\(-B\) + \((vx\^2 + vy\^2)\)\
\[Beta])\)\^2\)\) + \(\((1 - \[ExponentialE]\^\(tau\ \@\(P +
\((\(-B\) + \
\((vx\^2 + vy\^2)\)\ \[Beta])\)\^2\)\))\)\ \((B - \((vx\^2 + vy\^2)\)\
\[Beta])\)\)\/\@\(P + \((\(-B\) + \((vx\^2 + vy\^2)\)\
\[Beta])\)\^2\))\))\), \
\ {vx, \ 0, lim}, \ {vy, 0, lim}]\)

(3) I've tried different NIntegrate methods:
QuasiMonteCarlo and DoubleExponential. None seem
to get around the problems the infinity limit is imposing
or generates the wrong answer (e.g., at tau=0, the
integral should = 1). I realize I don't need to use the
Inifinite limit; in fact, I have been setting the limit to
~40000.-100000. for speed purposes. However, I need
to compute this integral for different parameter values
within the integrand, and the ''optimally lowest''upper
limit to get results accuracy in the 6th decimal place,
seems to change (not surprisingly). Any one have
suggestions on how I can optimize this (in terms of
accuracy and speed) with respect to this limit?

Any help would be greatly appreciated! Thanks,

URL: ,
Help | Reply To Topic