> | restart; iterate := proc(funkce,n::posint,start::name=realcons) local f,fp,i,j,it,iterTable,results,L,extrait,maxx,index; f := unapply(funkce,x); fp:= rhs(start); for i from 0 to n do it[i] := fp; fp := f(fp); od; if (nargs = 3) then results:=[``,``,``]; else L := sort([seq(args[i],i=4..nargs)]); extrait:=nops(L); maxx:=L[extrait]; for i from (n+1) to maxx do it[i] := fp; fp := f(fp); od; results:=[`___`,`__`,`____________`]; for j from 1 to extrait do index:= L[j]; results:=results,[x[index],`=`,it[index]] od; end if; iterTable:=matrix([seq([x[i],`=`,it[i]],i=0..n),results]) end: |
> | iterate(cos(x),5,x0=.5,10,15,20,30); |
> | iterate(1/2*x+2,4,x0=1.5,10,32); |
> | iterate(2*x,4,x0=0.5,10,20); |
> | iterate(x+1,4,x0=0.5,10,20); |
> | iterate(x,2,x0=0.5,10); |
> | iterate(1/x,4,x0=0.6,21,22); |
> | iterate(sqrt(x),4,x0=0.5,10,1); |
> | iterate(log(x),4,x0=2.5); |
> | iterate((x^2-1)/3,4,x0=0.5,10,20); |
> | iterate(2*arctan(x),6,x0=1.5,10,1000); |
> |