Re: iteration question

*To*: mathgroup at smc.vnet.net*Subject*: [mg122620] Re: iteration question*From*: Szabolcs Horvát <szhorvat at gmail.com>*Date*: Thu, 3 Nov 2011 03:48:04 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <j8r9b8$3ie$1@smc.vnet.net>

On 2011.11.02. 12:25, Francisco Gutierrez wrote: > Dear Group: > > I have a function, and I iterate it using fixedpoint. Something of this sort: > > FixedPointList[ > function[arg1,arg2,arg3, #]&, arg4, > SameTest -> (Max[Abs[Flatten[#1] - Flatten[#2]]]< 0.01&)] > > > I would like to know how many steps it takes this function to converge. I have tried with EvaluationMonitor to no avail: > > Block[{veamos, c = 0}, > veamos = FixedPoint[ > function[arg1,arg2,arg3, #]&, arg4, > SameTest -> (Max[Abs[Flatten[#1] - Flatten[#2]]]< 0.01&)]; > EvaluationMonitor :> c++; {veamos, c}] > > > The iterator c simply does not move, and the previous function works ok but returns the value of c as 0. > > I tried if this was true with Length[FixedPointList[...]] and the answer was 20 (which should be the value of c in the immediately previous function). In principle, this would solve my problem, but it seems > rather inefficient, especially when the convergence criterion is severe (not 0.01, but say 10^-4). > > Is there an efficient and nice way to solve this? > Neither FixedPoint, not Block take the option EvaluationMonitor. Also, the option was included incorrectly in Block. Options must be separated by a colon, not semicolon. I seriously doubt that FixedPointList would be measurably slower than FixedPoint (have you measured it?), but if you really want to avoid FixedPointList, you can use Module[{result, c = 0}, result = FixedPoint[(c++; f[#])&, value]; {result, c} ] I'd recommend {Last[#], Length[#]}& @ FixedPointList[ ... ] though. I hope this helps. References: http://reference.wolfram.com/mathematica/ref/CompoundExpression.html http://reference.wolfram.com/mathematica/ref/Block.html -- Szabolcs Horvát Mathematica on SO: http://stackoverflow.com/questions/tagged/mathematica