Re: Cobweb Plot
- To: mathgroup at smc.vnet.net
- Subject: [mg27550] Re: Cobweb Plot
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Wed, 7 Mar 2001 04:07:47 -0500 (EST)
- References: <97l3cs$jfm@smc.vnet.net> <97qb14$na7@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Correction to my earlier posting. Please remove parentheses from Block[{(f,nl, pts, min,max)} to get Block[{f,nl, pts, min,max} Thanks to Reza Malek-Madani for pointing our this slip up. -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "Allan Hayes" <hay at haystack.demon.co.uk> wrote in message news:97qb14$na7 at smc.vnet.net... > Jon, > Here is a first attempt: the key is the function NestList the rest is mostly > manipulating this to get the points and then displaying. > > CobwebPlot[expr_,x_,a_,n_]:= > Block[{(f,nl, pts, min,max)}, > f= Function[x,expr]; > nl = NestList[f,a,n]; > pts=Transpose[{Drop[#,-1],Rest[#]}&@Flatten[Transpose[{#,#}&@nl]]]; > min= Min[nl]; > max= Max[nl]; > Plot[f[x],{x, min,max}, > Epilog -> { > {Hue[0],Line[pts]}, {Hue[.7],Line[{{min,min},{max,max}}]}}, > PlotRange->{min,max}, > Frame->True > ] > ] > > Test > CobwebPlot[2x (1-x),x, 0.15, 30] > > -- > Allan > --------------------- > Allan Hayes > Mathematica Training and Consulting > Leicester UK > www.haystack.demon.co.uk > hay at haystack.demon.co.uk > Voice: +44 (0)116 271 4198 > Fax: +44 (0)870 164 0565 > > "Jon Joseph" <pokemon at tds.net> wrote in message > news:97l3cs$jfm at smc.vnet.net... > > I have been experimenting with chaotic systems and have been trying to > > produce a "Cobweb Plot". A description of this type of plot, taken from > > "CHAOS An Introduction to Dynamical Systems" by Alligood, Sauer, Yorke, is > > > > "A cobweb plot illustrates convergence to an attracting fixed point of > > g(x)=2x(1-x). Let x0=0.1 be the initial condition. Then the first iterate > is > > x1=g(x0)=0.18. Note that the point (x0,x1) lies on the function graph, and > > (x1,x1) lies on the diagonal line. Connect these points with a horizontal > > dotted line to make a path. Then find x2=g(x1)=0.2952, and continue the > > path with a vertical dotted line to (x1, x2) and with a horizontal dotted > > line to (x2, x2). An entire orbit can be mapped out this way." > > > > I can create the data in a procedural program and then plot the list that > > results. Can anyone think of a more elegant, Mathematica oriented, > > approach? Thanks in advance > > > > Dr. Jon Joseph > > VP of Advanced Technology > > Nicolet Biomedical > > 5225 Verona Road > > Madison WI 53711 > > jjoseph at nicoletbiomedical.com > > > > > > >