I am trying to perform a numerical integration on a function defined through a sum of exponential terms. The summation is given by:

`sum[z_, z0_, t_, nmax_] := 1/Sqrt[4 t]*Sum[ Exp[-(z - z0 - 2 n)^2/(4 t)] + Exp[-(z + z0 - 2 n)^2/(4 t) ], {n, -nmax, nmax}]; `

and we define

`f[z_, zp_, y_, yp_, z0_, t_] = ( Exp[-(y - yp)^2/(8t)]/Sqrt[8t] )*D[sum[z, z0, t, 20]*sum[zp, z0, t, 20], t, z, zp]; `

where I have chosen `nmax=20`

.

I wish to perform numerical integration on f. I define

`int1[a_] := NIntegrate[ f[zp, zpp, 0, ypp, z0, t]*( ypp (zp - zpp) )/( a (zp - zpp)^2 + ypp^2 )^(3/2), {z0, 0., 1.}, {t, 0., 10.}, {zp, 0., 1.}, {zpp, 0., 1.}, {ypp, 0., Infinity}] `

Based on which I get the following table (no errors generated)

`tab1 = Table[{a, int[a]}, {a, 1., 5., .5}] (* {{1., 0.00135643}, {1.5, 0.000734155}, {2., -0.000611633}, {2.5, 0.0000596739}, {3.,0.0359735}, {3.5, 0.0292143}, {4., 0.01122}, {4.5, 0.00889722}, {5., 0.00649666}} *) `

To check, I tried `AccuracyGoal-> 30`

and `PrecisionGoal -> 30`

and got the same results. However, as soon as I include `WorkingPrecision`

, the integrated gives 0 all the time. For example:

`intwrk[a_] := NIntegrate[ f[zp, zpp, 0, ypp, z0, t]*(ypp (zp - zpp))/(a (zp - zpp)^2 + ypp^2)^(3/2), {z0, 0, 1}, {t, 0, 10}, {zp, 0, 1}, {zpp, 0, 1}, {ypp, 0, Infinity}, AccuracyGoal -> 30, PrecisionGoal -> 30, WorkingPrecision -> 100] `

Gives all zeros – which I can’t seem to understand. Am I doing something wrong here?

Then I also performed the calculation using `LocalAdaptive`

method:

`int2[a_] := NIntegrate[ f[zp, zpp, 0, ypp, z0, t]*(ypp (zp - zpp))/(a (zp - zpp)^2 + ypp^2)^(3/2), {z0, 0., 1.}, {t,0., 10.}, {zp, 0, 1}, {zpp, 0., 1.}, {ypp, 0., Infinity }, Method -> "LocalAdaptive"] `

which gives

`tab2 = Table[{a, int2[a]}, {a, 1., 5., .5}] (* {{1., 1.75934*10^-29}, {1.5, -8.79671*10^-30}, {2., 8.7967*10^-30}, {2.5, -8.7967*10^-30}, {3., 8.7967*10^-30}, {3.5, -2.80635*10^-51}, {4., -8.79671*10^-30}, {4.5, -9.78474*10^-37}, {5., -9.78474*10^-37}} *) `

which is a very different result. This one also runs much faster than the `int1`

. I guess these numbers here are not reliable, but how can I check them?

PS: based on the answer to my previous post, I tried `Method -> "GaussKronrodRule"`

and `Method -> {"MultidimensionalRule", "Generators" -> 9}`

, but they run forever and I couldn’t get any outcome.