I am working on a problem that has as part of its result an integral of the form
$\text{Integrate}\left[c,\left\{x_1,0,m_1\right\},\left\{x_2,x_1,m_2\right\},\text{...},\left\{x_n,x_{n-1},m_n\right\}\right]$
where
$m_1<=m_2<=... m_{n-1}<=m_n$ and $n>50$, all $m_x$ are non-negative rationals, with $c$ a rational non-negative constant.
So each subsequent integration limit has a lower limit equal to the prior limit's value.
I can evaluate this acceptably quickly using NIntegrate
with AdaptiveQuasiMonteCarlo
as the method, but I'd prefer if possible to get exact results.
Evaluation of the exact result takes a torturous amount of time as written above. Is there a technique to speed this up in Mathematica?
A small runnable (in reasonable time) example:
Integrate[1, {x1, 0, 2}, {x2, x1, 4}, {x3, x1, 6}, {x4, x1, 8}, {x5,
x1, 10}, {x6, x1, 12}, {x7, x1, 14}, {x8, x1, 16}, {x9, x1,
18}, {x10, x1, 20}, {x11, x1, 22}, {x12, x1, 24}, {x13, x1,
26}, {x14, x1, 28}, {x15, x1, 30}, {x16, x1, 32}, {x17, x1,
34}, {x18, x1, 36}, {x19, x1, 38}, {x20, x1, 40}, {x21, x1,
42}, {x22, x1, 44}, {x23, x1, 46}, {x24, x1, 48}, {x25, x1,
50}, {x26, x1, 52}, {x27, x1, 54}, {x28, x1, 56}, {x29, x1,
58}, {x30, x1, 60}, {x31, x1, 62}, {x32, x1, 64}, {x33, x1,
66}, {x34, x1, 68}, {x35, x1, 70}, {x36, x1, 72}, {x37, x1,
74}, {x38, x1, 76}, {x39, x1, 78}, {x40, x1, 80}, {x41, x1,
82}, {x42, x1, 84}, {x43, x1, 86}, {x44, x1, 88}, {x45, x1,
90}, {x46, x1, 92}, {x47, x1, 94}, {x48, x1, 96}, {x49, x1,
98}, {x50, x1, 100}]
This takes a couple of seconds on my machine, the NIntegrate
version takes a few hundredths of a second. I'd be pleased getting the exact result in a few tenths of a second if possible.
Ideas?