I want to be able to do high dimensional integrals like,

(..naively I wrote it as this..)

Nc = 12; Nn = 12;
f [x_] := (Sin[x])^2;
g[n_, x_] := Cos[n*(x)];
Integrate[ (Times @@
Flatten@Table[
f[(a[i] - a[j])/2], {i, 1, Nc - 1}, {j, i + 1, Nc}])*
SeriesCoefficient [
Series [
Exp[ Plus @@
Flatten@Table [   ((4)/(n (x^(-n/2) + x^(n/2))))*(Plus @@
Flatten@
Table[g[n, a[i] - a[j]], {i, 1, Nc}, {j, 1, Nc}]), {n, 1,
Nn}] ], {x, 0, 1}], 1/2], {a, -\[Pi], \[Pi]} , {a[
2], -\[Pi], \[Pi]}  , {a, -\[Pi], \[Pi]} , {a[
4], -\[Pi], \[Pi]}, {a, -\[Pi], \[Pi]}, {a[
6], -\[Pi], \[Pi]}, {a, -\[Pi], \[Pi]}, {a[
8], -\[Pi], \[Pi]}, {a, -\[Pi], \[Pi]} , {a[
10], -\[Pi], \[Pi]}, {a, -\[Pi], \[Pi]}, {a, -\[Pi], \[Pi]}]


But the above has been like running for ages without an output.

I would like to know how I can optimize this work so that I can push this to higher levels. For instance I would like to extract higher powers of $x$ rather than $1/2$ as in the above example and also to more variables than $12$ as above.

• ...I don't think it's reasonable to expect a 12-fold integral with some amount of complexity to execute quickly. You may want to figure out if you can simplify the beastie further (e.g. integrating "easy parts") before proceeding further. – J. M.'s technical difficulties Oct 25 '12 at 16:42
• I think there was a bug that required becalming. Is 0 the expected result? – Daniel Lichtblau Oct 25 '12 at 22:15
• The results for Nc from 1 to 6 seem to be {8*Pi, 8*Pi^2, 3*Pi^3, (3*Pi^4)/8, (15*Pi^5)/1024, (45*Pi^6)/262144} so I do not think it will be 0 for 12 – Rolf Mertig Oct 26 '12 at 14:21
• @RolfMertig I also get  (15*Pi^5)/1024 using the method described below for n=5. – chris Oct 26 '12 at 20:45
• @RolfMertig and (45Pi^6)/262144 for n=6 ;-) – chris Oct 26 '12 at 21:05

This integral is doable using the following method:

1) Expand the integrant

2) TrigExpand the result

3) apply the following rule (to collect for a)

 Exp[x_] :> Exp[Collect[x, a]]


4) apply (possibly in //) this rule to the terms which do not involve a

 Exp[Complex[0, c_] a +  b_.] -> (2*E^b*Sinh[Pi*(Complex[0, c])])/(Complex[0, c])}


(which corresponds to integrating over a) and multiply terms which do not involve a by 2Pi

5) iterate step 3 and 4) but for a... a

In short, we just tell give mathematica a rule for each brick element integration. I tried it for 1/63th of the terms involved in step 1 and it works. Interestingly this part of the integration did give me a zero contribution for terms depending on a.

I can't give you the full answer because my laptops gets too hot ;-) I ll run it on a workstation and let you know.

• Sure, I did something similar, but I cannot get the answer for 12 this way. For 6 I need 45 seconds. – Rolf Mertig Oct 26 '12 at 21:35