Re: iteration question

• To: mathgroup at smc.vnet.net
• Subject: [mg122601] Re: iteration question
• From: "Dr. Wolfgang Hintze" <weh at snafu.de>
• Date: Thu, 3 Nov 2011 03:44:20 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <j8r9b8\$3ie\$1@smc.vnet.net>

```Why not use the Reap, Sow mechanism described in the Help file?

(* 1 *)

Reap[FindRoot[Cos[x] == x, {x, 0},
EvaluationMonitor :> Sow[x]]]

{{x -> 0.7390851332151607},
{{0., 1., 0.7503638678402439, 0.7391128909113617,
0.739085133385284, 0.7390851332151607}}}

You can also combine your idea with this

(* 2 *)

c = 0;
Reap[FindRoot[Cos[x] == x, {x, 0},
StepMonitor :> Sow[x, c++]]]
c

{{x -> 0.7390851332151607},
{{1.}, {0.7503638678402439}, {0.7391128909113617},
{0.739085133385284}, {0.7390851332151607}}}
Out[35]=
5

Or, using only c

(* 3 *)

c = 0;
Reap[FindRoot[Cos[x] == x, {x, 0},
StepMonitor :> Sow[c++]]]
c
Out[36]=
{{x -> 0.7390851332151607}, {{0, 1, 2, 3, 4}}}
Out[37]=
5

Regards,
Wolfgang

"Francisco Gutierrez" <fgutiers2002 at yahoo.com> schrieb im Newsbeitrag
news:j8r9b8\$3ie\$1 at smc.vnet.net...
> 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?
>
> Thanks,
>
> Francisco

```

• Prev by Date: Re: How to eliminate noises?
• Next by Date: Re: How to eliminate noises?
• Previous by thread: Re: iteration question
• Next by thread: Re: iteration question