MathGroup Archive 2000

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

Search the Archive

Re: Weird Plot behavior...

  • To: mathgroup at smc.vnet.net
  • Subject: [mg22276] Re: [mg22268] Weird Plot behavior...
  • From: Hartmut Wolf <hwolf at debis.com>
  • Date: Mon, 21 Feb 2000 20:00:47 -0500 (EST)
  • Organization: debis Systemhaus
  • References: <200002200450.XAA14907@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

dougmckee at my-deja.com schrieb:
> 
> I'm getting some strange, seemingly incorrect
> graphs from Mathematica 3:
> 
> First I define a simple piecewise continuous
> function:
> 
> sf[x_]:=If[x<(1/3),1-3 x,0.5 x - 1/6]
> 
> Then I graph its 4th iterate on [0,1] (along with
> y=x):
> 
> Plot[{sf[sf[sf[sf[x]]]],x},{x,0,1}]
> 
> It's missing some information; in particular, the
> graph only shows 5 fixed points when I know there
> are 7.  And when I graph it on [0,2], I _do_ get
> all 7 fixed points, and, yes, they're all on
> [0,1]:
> 
> Plot[{sf[sf[sf[sf[x]]]],x},{x,0,2}]
> 
> What's going on?  Why is the first graph
> incorrect, and the second correct?
> 
> Plot[{sf[sf[sf[sf[x]]]],x},{x,0,1},PlotDivision-
> >5]
> 
> And here, even though I think I'm setting the
> PlotDivision _lower_ than the default (20), I get
> the right graph!
> 

Dear Doug,

there is nothing weird about your Plot, yet this is another proof of
the  rule: never believe a computation! Always verify it -- as you did,
Doug.

What happend you can see with

tr = {}; 
Plot[{AppendTo[tr, x]; AppendTo[tr, x]; sf[sf[sf[sf[x]]]], x}, {x,0,1}];
tr 

With the defaults on PlotPoints (==25) (and PlotDivision) the plot point
sampling algorithm simply and accidentially doesn't hit the interval
[0.22, 0.25] where your function "goes down and up again", as you can
see with

Plot[Nest[sf, x, 4], {x, 0.2, 0.28}]

Now any subtle change of PlotPoints and/or PlotDivision will change the
sampling, and if that interval is hit only once _then_ Plot sampling
will go to the minimum.

So PlotPoints -> 24 as well as PlotPoints -> 26 will produce the correct
plot.  The Problem is: your function is rapidly varying and you should
(1) take a higher value of PlotPoints from the beginning and (2) always
verify your plot with different values for that.

Besides, it might be interesting to look at

With[{n = 6}, 
  Plot[Evaluate[NestList[sf, x, n]], {x, 0, 1}, 
    PlotStyle -> Prepend[Table[Hue[i], {i, 0., 1., 1/n}],
GrayLevel[0.]], 
    PlotPoints -> 31]]

and see what happens in that critical domain.


Kind regards, Hartmut


  • Prev by Date: Re: Mathematica bug in Graphics3D ??
  • Next by Date: Re: Re: export graphics
  • Previous by thread: Weird Plot behavior...
  • Next by thread: Weird Plot behavior...