       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

```

• Prev by Date: Re: Bernoulli Numbers
• Next by Date: Re: Bernoulli Numbers
• Previous by thread: Re: iteration question
• Next by thread: Re: iteration question