I am running a Mathematica code to evaluate an integral. The probelm is this code is running too slow. Is there any possibility to speed this up? Here is the code:
xi[R_, z_] := 9*(0.00001/(R^2 + z^2))^(1/6);
i1[a_] := N[2.37783 a^(2 - 1/3)];
Dz[R_, z_] := (R^2 + z^2)^(1/3);
i3[R_?NumericQ, z1_?NumericQ, z2_?NumericQ] :=
i3[R, z1, z2] =
NIntegrate[xi[R, x1 - x2], {x1, 0, z1}, {x2, 0, z2}];
i4[R_, z1_?NumericQ, z2_?NumericQ] :=
i4[R, z1, z2] =
1.98153 (z1^(2/3))*NIntegrate[xi[R, z2 - x8], {x8, 0, z1}];
i5[R_, z1_?NumericQ, z2_?NumericQ] :=
i5[R, z1, z2] =
1.98153 (z2^(2/3))*NIntegrate[xi[R, z1 - x7], {x7, 0, z2}];
i6[R_, z1_?NumericQ, z2_?NumericQ] :=
i6[R, z1, z2] =
1.98153 (z1^(2/3)) *1.98153 (z2^(2/3)) +
NIntegrate[xi[R, z1 - x7]*xi[R, z2 - x8], {x7,
0, z1}, {x8, 0, z2}];
NIntegrate[Exp[-4*(z1 + z2)]* Exp[(i1[z1] + i1[z2])] (1/Sqrt[Dz[0, z1 - z2]]
Exp[i3[0, z1, z2]]*(16 + xi[0, z1 - z2] + (i4[0, z1, z2] + i5[0, z1, z2] +
i6[0, z1, z2])) -
1/Sqrt[Dz[0.01, z1 - z2]]Exp[(i3[0.01, z1, z2])]*(16 + xi[0.01,
z1 - z2] + (i4[0.01, z1, z2] + i5[0.01, z1, z2] +
i6[0.01, z1, z2]))), {z1, 0, 0.25}, {z2, 0, 0.25},
Method -> {"GlobalAdaptive", "SymbolicProcessing" -> 0}];
i3
can be solved symbolically withIntegrate
, and it may be possible toIntegrate
i4
,i5
, andi6
as well. $\endgroup$