MathGroup Archive 2009

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

Search the Archive

Re: Strange behavior: random and plot

  • To: mathgroup at
  • Subject: [mg102652] Re: [mg102726] Strange behavior: random and plot
  • From: Bob Hanlon <hanlonr at>
  • Date: Sun, 23 Aug 2009 05:32:48 -0400 (EDT)
  • Reply-to: hanlonr at

Since the definition of ran is only valid for a numerical argument, define it as such


ran[x_?NumericQ] := Random[Real, x];

Plot[ran[x] - ran[x], {x, 0, 3},
 PlotStyle -> Directive[Thick, Red]]

Usually, what appears to be a problem with Plot is an effect due to its having attribute HoldAll



This is normally resolved by using Evaluate; however, it doesn't help here

Plot[Evaluate[ran[x] - ran[x]], {x, 0, 3},
 PlotStyle -> Directive[Thick, Red]]

You need to use Random (or in v6 or later RandomReal) directly

Plot[Random[Real, x] - Random[Real, x],
 {x, 0, 3}]

Plot[RandomReal[x] - RandomReal[x],
 {x, 0, 3}]

Bob Hanlon

---- Don Krug <krugd at> wrote: 

Hi group.  I am new here and discovered some strange behavior (to me.) 
Hope someone can help.

I will be teaching a course on programming with Mathematica this 
semester and so you may hear from me some more.

I define


If I evaluate ran[3]-ran[3] I get a non-zero result as expected.

But if I do

Plot[ ran[x]-ran[x] ,{x,0,3}]

  I get an empty axes system.  I assume it is the plot of the zero function.

I also know that if I set


then I get a non-zero plot as expected when I do

Plot[ ran2[x]-ran[x] ,{x,0,3}]

I am guessing the plot command is evaluating things in a strange way 
that forces the two instances of ran to be the same.

Can anyone explain why?


Don Krug
Northern Kentucky U

  • Prev by Date: Re: A Question about Combinatorica
  • Next by Date: Re: Re: Viewing packages in mathematica
  • Previous by thread: Strange behavior: random and plot
  • Next by thread: Re: Strange behavior: random and plot