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