Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Monte Carlos from scalar to list, possibly from for-loop to

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121776] Monte Carlos from scalar to list, possibly from for-loop to
  • From: "niels.gierse at gmail.com" <niels.gierse at googlemail.com>
  • Date: Sat, 1 Oct 2011 03:09:05 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Dear all,

I started setting up an extremely simple Monte Carlo based Mathematica
simulation.
So far it works for a single particle with this code:

For[t = 0, t < tmax, t = t + dt, {
  z = z + vz ;(* move particle *)
  rnd = Random[]; (* throw the dice*)
  pion = ne[z]*sigvstate[Te[z]][[state]]*dt; (* compute ionization
probability in corona equilibrium *)
  If[ rnd < pion, state = state + 1];
  PhLoc = Append[PhLoc, z];
  PhState = Append[PhState, state];
}]

the time steps are iterated in a for loop. The particle is moved, then
a random variable is taken. Ionization probability is computed and
compared with the random variable.
The ionization is accounted for in the variable 'state':

If[ rnd < pion, state = state + 1];

Obviously I would like to expand this now to many particles, possibly
created by a distribution function.
So if I design every variable to be a list of length of the number of
particles, is there a way to achieve the same functionality?
As you can see the ionization probability is of course a function of
the ionization state.

x={x1,x2,...}
rnd={rnd1,rnd2,...}
pion={pion1,pion2,...}
state={state1,state2...}

So is there a way to get the if statement to a list?

The second question is related. Is there a neat way to get rid of the
for-loop?
I played a little bit around with the Map command, but could not get
it right.

Cheers,

Niels



  • Prev by Date: Re: How to catch interrupts generated by TimeConstrained?
  • Next by Date: Re: help with double integration
  • Previous by thread: Re: How to catch interrupts generated by TimeConstrained?
  • Next by thread: Re: help with double integration