# Numerical simulation

I want to generate a numerical simulation in table for an equational output. I have used following code. But somehow I can't get any output. I am very novice to Mathematica. Can anyone please recommend what change I should make?

Subscript[r, 1] := (-2 Subscript[c, 1] + \[Gamma] Subscript[c,
2] - (-2 + \[Gamma]) (-a + \[Tau] + (2 + \[Gamma]) ((\[Tau] - \
\[Tau] Subscript[\[Rho], 1])/(v \[Theta] Subscript[\[Rho], 1]))^(
1/(-1 + v))))/(-4 + \[Gamma]^2)
simStep :=
Module[{\[Gamma], Subscript[\[Rho], 1],
v, \[Theta], \[Tau]}, {\[Gamma], Subscript[\[Rho], 1]} =
RandomReal[1, 2];
{\[Theta]} = 2;
{\[Tau]} = 1;
{v} = {2};
{\[Gamma]} = 0.5;
{Subscript[c, 1]} = 1;
{Subscript[c, 2]} = 1;
{Subscript[\[Rho], 1], Subscript[r, 1]}]

$$$$


You get a lot of red ink. Try to simplify. Avoid complicated notations. The most useful formula: f1[x_,y_]:=f2[x,y] where f2 must not call f1 to avoid recursion (unless you want it).

Don't use Module for grouping, use parenthesis.

Example:

Clear@f1;f1[x_,y_]:=(Print@x;x+2 y)

f1[2,3]


; suppresses output.

If you need double output use a list:

Clear@f1; f1[x_, y_] := {x + 1, x^2}


Test each step before going to the next.

Clear@f2; f2@{x_, y_} := x - y

f2[2,3]

f2@{2, 3}

f2@f1[2, 3]


f@x is the same as f[x]. Clear is to be sure to start with a clean symbol.

• Is there any serious reason to use parenthesis instead of Module or Block? Or do you recommend it simply because it is lighter? Feb 10 at 20:19
• I just use the simplest structure that is necessary. Simple means easy to read and not using computer resources. Module[{},x;y] is same as (x;y), Module[{var},x] introduces a new variable each time it is used. I almost never introduce variables, I use constants, introduced by With`. The instructions I gave are probably sufficient to use Mathematica as a programmable calculator like the ones used at school. Feb 11 at 11:20