Re: newbie: programmatic sequence of plots?
- To: mathgroup at smc.vnet.net
- Subject: [mg96822] Re: newbie: programmatic sequence of plots?
- From: "m.g." <mg at michaelgamer.de>
- Date: Wed, 25 Feb 2009 04:07:58 -0500 (EST)
- References: <go0j4b$n0o$1@smc.vnet.net>
On 24 Feb., 11:45, Tom Roche <tlro... at gmail.com> wrote: > How to get a programmatic sequence of plots? > > As advertised by the Subject:, I'm new to Mathematica (specifically > 7.0.0 for Students for 32-bit Windows on XP Pro) so please excuse any > lapses in terminology. I'd also appreciate pointers to specific docs > rather than just an RTFM. > > Since I'm currently unable to model the logistic map y=a y (1-y) (see > previous post) I'm trying to do a series of plots of it, to see how > behavior changes over time. I can get a plot of a single instance with > > Clear[a,y,y0,nRecurr]; > a=3.5; > y0=0.4; > nRecurr=50; > ListPlot[ > RecurrenceTable[{y[n+1]==a y[n] (1-y[n]),y[0]==y0}, > y,{n,1,nRecurr}],Joined->True > ] > > I can get a sequence of tables of values with > > Clear[a, y, y0, nRecurr, yinit, yinc, yfinal]; > a = 3.5; > nRecurr = 50; > yinit = 0.1; > yinc = 0.01; > yfinal = 0.2; > For[y0 = yinit, y0 <= yfinal, y0 += yinc, Print[y0, ":\n", > RecurrenceTable[{y[n + 1] == a y[n] (1 - y[n]), y[0] == y0}, = y, {n, > 1, nRecurr}]]] > > But when I try to plot those values with > > Clear[a, y, y0, nRecurr, yinit, yinc, yfinal]; > a = 3.5; > nRecurr = 50; > yinit = 0.1; > yinc = 0.01; > yfinal = 0.2; > For[y0 = yinit, y0 <= yfinal, y0 += yinc, > ListPlot[ > RecurrenceTable[ > {y[n + 1] == a y[n] (1 - y[n]), y[0] == y0}, y, {n, 1= , nRecurr} > ] > ,Joined->True] > ] > > I get absolutely nothing: no plot, no error message, no nada. > Similarly, when I try to plot the difference between two runs of the > map with > > seqDiff[a_,y_,inc_]:=Module[ > {r=y,s=y+inc}, > ListPlot[ > Table[r=a r (1-r),{50}]-Table[s=a s (1-s),{50}], > Joined->True,PlotRange->{-1,1} > ] > ] > seqDiff[4.0,0.3,0.1] > > I get a plot. But when I try to put that inside a for loop > > Clear[a, i,init,inc,final]; > a = 4.0; > init=0.3; > inc=0.1; > final=0.5; > For[i=init,i<=final,i+=inc,seqDiff[a,i,inc]] > > I get nothing: no plot, no error message. > > What am I doing wrong? How to get a series of plots? > > TIA, Tom Roche <Tom_Ro... at pobox.com> Hello Tom, I think the reason for getting no graphics output ist, that your code produces graphics-objects and these are not shown in this loop. To show them you could do it like this: gatheriong the objects in a bag and showing at the end o calculation (it=B4s a quick and dirty modification of your code - I know - this could be done much more elgenatly, eg. with an own Module). Clear[a, y, y0, nRecurr, yinit, yinc, yfinal]; a = 3.5; nRecurr = 50; yinit = 0.1; yinc = 0.01; yfinal = 0.2; out = {}; (* modification here *) For[y0 = yinit, y0 <= yfinal, y0 += yinc, AppendTo[out, (* modification here *) ListPlot[ RecurrenceTable[{y[n + 1] == a y[n] (1 - y[n]), y[0] == y0}, y, {n, 1, nRecurr}]]]; ]; out (* modification here *) Have you seen the excellent example of the logisitc map in the help referring to the function RecurrenceTable (-> bifurcation of the logistic map)? Greetings Mike