# Cobweb plot in Mathematica

Posted 8 years ago
15642 Views
|
8 Replies
|
12 Total Likes
|
 Because Mathematica does not have this function (yet) I give here a simple way to produce a cobweb plot: http://en.wikipedia.org/wiki/Cobweb_plotThe code is quite short and does the basics: ClearAll[CobwebPlot] Options[CobwebPlot]=Join[{CobStyle->Automatic},Options[Graphics]]; CobwebPlot[f_,start_?NumericQ,n_,xrange:{xmin_,xmax_},opts:OptionsPattern[]]:=Module[{cob,x,g1,coor},  cob=NestList[f,N[start],n];  coor = Partition[Riffle[cob,cob],2,1];  coor[[1,2]]=0;  cobstyle=OptionValue[CobwebPlot,CobStyle];  cobstyle=If[cobstyle===Automatic,Red,cobstyle];  g1=Graphics[{cobstyle,Line[coor]}]; Show[{Plot[{x,f[x]},{x,xmin,xmax},PlotStyle->{{Thick,Black},Black}],g1},FilterRules[{opts},Options[Graphics]]]]The function works as follows:CobwebPlot[f,start,n,xrange,...]Where f is a pure functionstart is the starting valuen is number of iterationsxrange is a the range of the plot and should have the form: {xminimum,xmaximum}.The color of the cobweb can be given by a CobStyle option, additionally one can add other options as well (those of Graphics).Examples:CobwebPlot[Sqrt[3#-1]&,1,40,{0,4},PlotRange->{{0,3.5},{0,3}},Frame->True,Axes->False,CobStyle->Directive[Dashed,Red],PlotRangePadding->None]CobwebPlot[0.77#(5-#)&,0.3,30,{0,10},PlotRange->{{0,6},{0,7}},Frame->True,Axes->False,CobStyle->Directive[Blue,Thick],PlotRangePadding->None]CobwebPlot[10-1.5Abs[#-2]+1.35Sin[5#]&,1.5,230,{-5,12},PlotRange->{Automatic,{-5,12}},Frame->True,Axes->False,CobStyle->Red,PlotRangePadding->None]giving:Of course this can be used together with Manipulate like so:Manipulate[CobwebPlot[Sqrt[3#-1]&,\[Alpha],40,{0,5},PlotRange->{{0,4.5},{0,3.65}},Frame->True,Axes->False,CobStyle->Directive[Dashed,Red],PlotRangePadding->None],{\[Alpha],0.5,4.375}]giving:I hope this will be useful. Let me know if you can't get it to work.
8 Replies
Sort By:
Posted 8 years ago
 Great, Sander, I love those! Nice animated GIF too. I wrote a few cobweb Demonstrations myself - see for example the image below. Demonstrations Project have several cobwebs:
Posted 3 years ago
 Can we use a single plot to represent a cobweb of 1/2 under functions f(x) = 2x and g(x) =3x. So that we can compare their orbit under two distinct functions using one plot.
Posted 10 days ago
 Show[{CobwebPlot[2 # &, 2, 40, {-15, 15}], CobwebPlot[3 # &, 2, 40, {-15, 15}, CobStyle -> Blue] }] 
Posted 10 days ago
 Sir, I have piecewise equation  f = Piecewise[{{a x + m, x <= 0}, {b x + n, x > 0}}] For this "f" how to plot Cobweb plot? Thank You.
Posted 10 days ago
 Something like: CobwebPlot[ Piecewise[{{2 # + 3, # <= 0}, {0.7 # + 4, # > 0}}] &, -1.23, 40, {-15, 15}] 
Posted 10 days ago
 Thank You Sir. Can we change the colour of 2x+3 line and 0.7x+4 line? By default it is Black, how to modify the colour of these lines?
 Change the PlotStyle->{{Thick,Black},Black}] part to some different colors/style…
 Thank you sir.In the above Code, if I want to Take two initial conditions - one at -1.23 and say other at 2.5, so in Cobweb plots can we show two orbits? I tried following code: CobwebPlot[ Piecewise[{{2 # + 3, # <= 0}, {0.7 # + 4, # > 0}}] &, {{-1.23, 40}, {2.5, 40}}, {-15, 15}] But it didn't work.Also I want to plot Basin of Attraction plot for the same basic piecewise system.