Re: Strange behavior: random and plot
- To: mathgroup at smc.vnet.net
- Subject: [mg102652] Re: [mg102726] Strange behavior: random and plot
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 23 Aug 2009 05:32:48 -0400 (EDT)
- Reply-to: hanlonr at cox.net
Since the definition of ran is only valid for a numerical argument, define it as such Clear[ran]; 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 Attributes[Plot] {HoldAll,Protected} 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 nku.edu> 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 ran[x_]:=Random[Real,x] 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 ran2[x_]:=Random[Real,x] 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? Thanks Don Krug Northern Kentucky U