The series depends on a parameter. I numerically calculate consecutively series for different values of the parameter. When Mathematica finishes the calculation of the first point the memory used is enlarged and after some point there is not enough memory (8Gb) for the calculation to proceed and my computer hangs. I see that Mathematica does not release the memory after finishing calculation of first point, though it does not need this information for calculation of second point. Is it possible to make Mathematica to release memory after calculation the first point? Maybe there is operator to do this?
I am using Mathematica 11 on Linux.
I used the following definitions
α[z_, p_] := 1/(1 + (z/p)^2);
λa = 0.0591966130391084;
ηgr = 0.0114; dgr = 0.3345; q = 2.74 10^-6 ;
Matm1[n_, x_, a_, η_, T_] :=
8(q T a)^3 n^3 x^2 E^(-2(q T a) n x) α[q T n, λa] (η x (1-1/(2x^2)))/(1 + η x)
fr1[n_, a_, η_, T_] :=
NIntegrate[Matm1[n, x, a, η, T], {x , 1, ∞},
Method -> {"LocalAdaptive", "SymbolicProcessing" -> False}]
Then I had the computer make the following calculations:
nn = {};
Do[tt = {1 + k/2, Sum[fr1[n, 1 + k/2, ηgr, 3], {n, 1, 5 10^5}]};
Print["a = ", 1 + k/2, " ", tt];
AppendTo[nn, tt], {k, 0, 18}]
Usually for k = 4
computer hangs due to memory expired.
k
get changed? Do you look atnn
to see how it is growing? $\endgroup$NIntegrate
that has persisted at least since version 6 (although I think it was finally fixed in 10.1 or 10.2). $\endgroup$