The following program succeeds in getting matrix CC, but it takes time badly, especially in the case varNumber becomes larger just as the following varNumber = 35. Who can speed up the process of calculation? Thanks!
ClearAll["Global`*"];
varNumber = 35; end = Infinity;
s1 = 112*^9; s2 = 25*^9; s3 = 15.1; s4 = 5.5*10^-9;
a[m_] := Exp[-x/2]*LaguerreL[m, x];
b[m_, i_, j_, l_] := Integrate[a[m]*x^i*D[a[l], {x, j}], {x, 0, end}];
d[m_, i_, j_, l_] :=
Integrate[
a[m]*x^i*D[
a[l], {x, j}]*(DiracDelta[x] -
DiracDelta[x - end]), {x, -Infinity, Infinity}];
c[1, 1][m_, l_] := s2*d[m, 0, 1, l] + s2*b[m, 0, 2, l];
c[1, 2][m_, l_] := 0;
c[1, 3][m_, l_] := 0;
c[2, 1][m_, l_] := 0;
c[2, 2][m_, l_] := s1*d[m, 0, 1, l] + s1*b[m, 0, 2, l];
c[2, 3][m_, l_] := s3*d[m, 0, 1, l] + s3*b[m, 0, 2, l];
c[3, 1][m_, l_] := 0;
c[3, 2][m_, l_] := s3*d[m, 0, 1, l] + s3*b[m, 0, 2, l];
c[3, 3][m_, l_] := -s4*d[m, 0, 1, l] - s4*b[m, 0, 2, l];
CC = ArrayFlatten@
Table[c[m, n][i, j], {m, 3}, {n, 3}, {i, 0, varNumber - 1}, {j, 0,
varNumber - 1}]; // AbsoluteTiming
{2283.69, Null}
b[m_, 0, 2, l_]gives1/4, 1-m, 0in different conditions andd[m_, 0, 1, l_]gives-1-1/2, Can you explain the process of getting their body ofb[ ] and d[ ]in different conditions, thank you. – likehust May 24 '19 at 16:19l-m, not1-m. It's a bad idea to uselas a variable for exactly this reason. – Roman May 24 '19 at 17:23Table[b[m, 0, 2, l], {m, 0, 10}, {l, 0, 10}]andTable[d[m, 0, 1, l], {m, 0, 10}, {l, 0, 10}], it's pretty obvious what the patterns are. I didn't do more than that. For higher values ofiandjthe formulas may be a bit more complex. – Roman May 24 '19 at 17:25las argument as you suggested in the future, and have known how to get the body of functionsb[ ]andd[ ]. However, I have to say, In fact, the program mentioned above is only a mini part of a long complex one, there exists lots of functions similar tob[ ]andd[ ], and their body are more complex than the listed above, so it's very difficult to find the patterns of them through eyes. Can you propose a more effective method? Thank you! – likehust May 26 '19 at 05:58CC = ArrayFlatten@TabletoCC = ArrayFlatten@ParallelTableand run it, which gives lots of warning such as:(kernel 4) Get::noopen : "Cannot open "C:\\ Users "...,LocalObject::garbled : "LocalObject["file:///C:/Users/",Get::noopen : Cannot open put.wl., and so on. What's important is that theParallelTableslows the running speed down. Can you edit the program again to support parallelization? – likehust May 27 '19 at 13:25