MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: FixedPoint vs. FixedPointList


(Mathematica book page 243)

FixedPoint simply calls your function unil the result no longer changes.
You can easily write a function which does the same.  The difference being,
your function would keep track of the iterations.

In[467]:=
myFixedPoint[f_, x_] :=
  Module[{n = 0, y = x + 1, y1 = x},
     While[y != y1,
       y = y1;
       ++n;
       y1 = f[y]];
     {y1, n}
    ]
(* test - same as one in Mathematica Book *)
In[472]:=
myFixedPoint[Log, 1. + \[ImaginaryI]]
Out[472]=
{0.318132\[InvisibleSpace] + 1.33724 \[ImaginaryI], 101}
In[473]:=
Log[%[[1]]]
Out[473]=
0.318132\[InvisibleSpace] + 1.33724 \[ImaginaryI]

so we have { solution, iterations } as the output

BobHanlon at aol.com wrote in message <8l0qd5$dvj at smc.vnet.net>...
>
>In a message dated 7/12/2000 11:43:32 PM, linsuain+ at andrew.cmu.edu writes:
>
>>Hi all. I need to know the fixed point of a function (to a certain
>>accuracy) starting from a certain value of the arguement, say:
>>
>> x = FixedPoint[ f, x, SameTest -> ( #2-#1 < somesmallnumber &) ]
>>
>> I do not care about the intermediate results, but I would like to know
>>how many iterations it takes for the process to converge. FixedPointList
>>will do, for example:
>>
>> {n,x}={Length[#],Last[#]}& @ FixedPointList[....]
>>
>> However I believe this would cause problems. The reason is that x is
>>really a very long list (FixedPoint works for lists too), and it could
>>take many iterations for this to settle. Mathematica, I believe, stores
>>only a maximum of two values at any given moment when executing
>>FixedPoint, but it stores all intermediate values for FixedPointList,
>>and most certainly would run out of memory.
>>
>> Could any think of how to trick Mathematica to count the iteration
>>without trying to store all the results?
>>
>
>poly[x_] := x^5 - x^4 + 2 x^3 - x^2 + 3;
>
>n = 1;
>
>FixedPoint[(n++; # - poly[#]/poly'[#]) &, 2.]
>
>-0.8574417862415682
>
>n
>
>23
>
>Length[FixedPointList[(n++; # - poly[#]/poly'[#]) &, 2.]]
>
>23
>
>
>Bob Hanlon
>




  • Prev by Date: Re: subscripted variables and comments
  • Next by Date: Re: With[{software=Mathematica}, Frustration]
  • Previous by thread: Re: FixedPoint vs. FixedPointList
  • Next by thread: fade to mauve