# Build a list from a Loop!

I need to build a list with the values of the parameter $\gamma = \mu/a$ and the standard deviation of the following process,

a = .3;
μ = n/10;
c = .2;
σ = 0.1;
proc = ItoProcess[{\[DifferentialD]s[t] == -a s[t] i[
t] \[DifferentialD]t, \[DifferentialD]i[
t] == (a s[t] i[t] - μ i[t] +
c (1 - s[t] - i[t]) i[t]) \[DifferentialD]t + σ i[
t] \[DifferentialD]W[t]}, {s[t], i[t]}, {{s, i}, {0.3, 0.7}},
t, W \[Distributed] WienerProcess[0, 1]];

aa = ParallelTable[RandomFunction[proc, {0, 3000, 0.5}, 10], {100}]; //
AbsoluteTiming // First
sol2 = TemporalData[
Join @@ Through[aa["ValueList"]], {aa[[1]]["Times"]}]


The table should have values of μ/a (where n varies as loop index) and the standard deviation of the process. I've tried to build a loop using "Do" and "For" to evaluate the process for each index n and saves the values of μ/a and the standard deviation in a table, but i doesn't work. How could I do that task?

Thanks in advance!

• If you want a table, why would you use Do rather than Table? – John Doty Sep 11 '18 at 18:38
• I had not thought in this possibility... – Herr Schrödinger Sep 11 '18 at 18:41

## 1 Answer

Better write the process as function of its parameters and make the iteration variable n explicit:

a = .3;
c = .2;
σ = 0.1;
ClearAll[proc];
proc[μ_, σ_, a_, c_] := ItoProcess[{
\[DifferentialD]s[t] == -a s[t] i[t] \[DifferentialD]t,
\[DifferentialD]i[t] == (a s[t] i[t] - μ i[t] + c (1 - s[t] - i[t]) i[t]) \[DifferentialD]t + σ i[t] \[DifferentialD]W[t]
},
{s[t], i[t]}, {{s, i}, {0.3, 0.7}}, t,
W \[Distributed] WienerProcess[0, 1]
];

aa = ParallelTable[
RandomFunction[proc[n/10, σ, a, c], {0, 300, 0.15},10],
{n, 1, 100}
];


I reduced the stepsize and the time horizon because Mathematica issued several overflow error. This is more a problem with the mathematical model of this process (it tends to blow up) than with OP's question.

• Hey @HenrikSchumacher, another question, How can I select a specific item from a nested list, for example, suppose that I have L = {a,{b,c}}, and i want do create s={a,c}, how can I select the c element from L? – Herr Schrödinger Sep 12 '18 at 5:07
• That would be L[[2,2]]: It is the 2nd element in the 2nd sublist. Analogously, you would get b by L[[2,1]] and a by L[[1]]. – Henrik Schumacher Sep 12 '18 at 5:42