MathGroup Archive 2010

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

Search the Archive

Re: Easy question, please help to run a function n times

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109615] Re: Easy question, please help to run a function n times
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Sat, 8 May 2010 07:07:05 -0400 (EDT)

On 5/7/10 at 6:28 AM, kxcarmichael250 at hotmail.com (Kevin) wrote:

>I am trying to run the function t= M/(R/n), where R is a random
>number generated between 15 and 25. What function do i use to run
>this simulation 10,000 times and calculate the mean and std error
>from 306.

>M=74
>n=88
>No=306
>R= RandomReal[{15,23}]

You do not want to use Set here. with this code,
RandomReal[{15,23}] will evaluate and the result will be assigne
to R. All future references to R will use this value, not a new
random value. To get a new random value every time R is used
this last should be

r:= RandomReal[{15,23}]

Note also, I've used a lower case letter rather than the upper
case you chose. All internal Mathematica symbols start with an
upper case letter and several consist of a single upper case
letter. By using lower case letters for your variables you are
guaranteed they will not conflict with pre-existing Mathematica names.

>t= M/(R/n)

This assigns a fixed value to t

>t = x;

This assign whatever x evaluates to t and does nothing useful
given the rest of your code

>Do[t = M/(R/n), {10000}]

This assigns the same fixed value of t that was used earlier and
does it 10,000 times.

>Everything is working for me except how to run the simulation 10,000
>times

Your code is valid Mathematica syntax and will run without
error. But it certainly does not solve the problem you've
indicated you are trying to solve.

The simplest way I can think of to solve your problem is to do

r=RandomReal[{15,23},10000];

That generates a list of 10,000 random reals between 15 and 23
and assigns it to r. Now the mean and standard deviation can be
easily computed as:

Mean[74/(r/88)]
StandardDeviation[74/(r/88)]

or as the difference from 306

Mean[74/(r/88) - 306]
StandardDeviation[74/(r/88) - 306]

Also note, I've used Set (=) when defining r. If SetDelayed (:=)
were used here, the list of random values would used for
computing the mean would be different than those used for
computing the standard deviation.



  • Prev by Date: Re: Giving several functions the same argument
  • Next by Date: Re: RuleDelayed for parsing XML with multiple children
  • Previous by thread: Re: Easy question, please help to run a function n times
  • Next by thread: Re: Easy question, please help to run a function n times