> restart; with(plots): with(plottools):
 

> N:=6: Step:=10:
xvals:=array(0..Step): points:=array(0..Step):
vertplots:=array(0..Step-1,1..N): drawverts:=array(0..Step-1):
horizplots:=array(0..Step-1,1..N): drawhoriz:=array(0..Step-1):
 

> cobweb:=proc(f,c)
xvals[0]:=c:
 

> for i from 1 to Step do   xvals[i]:=evalf(f(xvals[i-1])):   end do:
 

> curveplot:=plot(f(x),x=0..1,thickness=2, scaling=CONSTRAINED,color=green,tickmarks=[4,4]):
 

> diagplot:=plot(x, x=0..1, scaling=CONSTRAINED, thickness=2, color=black,tickmarks=[3,3]):
 

> for i from 0 to Step do   points[i]:=circle([xvals[i],xvals[i]],0.005,thickness=2,color=blue): end do:
 

> background:=display(curveplot,diagplot):
 

> for l from 0 to Step-1 do   for s from 1 to N do   vertplots[l,s]:=plot([xvals[l],(1-t*s/N)*xvals[l]+xvals[l+1]*t*s/N,t=0..1],color=blue,view=[0..1,0..1]): end do:end do:
 

> for l from 0 to Step-1 do   for s from 1 to N do  horizplots[l,s]:=plot([(1-t*s/N)*xvals[l]+xvals[l+1]*t*s/N,xvals[l+1],t=0..1],color=blue,view=[0..1,0..1]):  end do: end do:
 

> for j from 0 to Step-1 do   drawverts[j]:=seq(display(background,seq(points[qq],qq=0..j), seq(horizplots[ss,N],ss=0..j-1), seq(vertplots[rr,N],rr=0..j-1), vertplots[j,k]),k=1..N):  end do:
 

> for j from 0 to Step-1 do   drawhoriz[j]:=seq(display(background,seq(points[qq],qq=0..j), seq(vertplots[ss,N],ss=0..j), seq(horizplots[rr,N],rr=0..j-1), horizplots[j,k]),k=1..N):
end do:
 

> display(seq([drawverts[k],drawhoriz[k]],k=0..Step-1),insequence=true);
end:
 

Warning, `xvals` is implicitly declared local to procedure `cobweb` 

Warning, `i` is implicitly declared local to procedure `cobweb` 

Warning, `curveplot` is implicitly declared local to procedure `cobweb` 

Warning, `diagplot` is implicitly declared local to procedure `cobweb` 

Warning, `points` is implicitly declared local to procedure `cobweb` 

Warning, `background` is implicitly declared local to procedure `cobweb` 

Warning, `l` is implicitly declared local to procedure `cobweb` 

Warning, `s` is implicitly declared local to procedure `cobweb` 

Warning, `vertplots` is implicitly declared local to procedure `cobweb` 

Warning, `horizplots` is implicitly declared local to procedure `cobweb` 

Warning, `j` is implicitly declared local to procedure `cobweb` 

Warning, `drawverts` is implicitly declared local to procedure `cobweb` 

Warning, `drawhoriz` is implicitly declared local to procedure `cobweb` 

> cobweb(x->x/2+0.4-x^2/4, 0.15);
 

Plot 

> cobweb(x->2*x-1/4-1.5*(x-.25)^2, 0.27);
 

Plot 

> cobweb(x->3*x*(1-x), 0.45);
 

Plot 

> cobweb(x->4*x*(1-x),0.3);
 

Plot 

>