Re: Optimizing fixed point iteration
- To: mathgroup at smc.vnet.net
- Subject: [mg83128] Re: Optimizing fixed point iteration
- From: m.r at inbox.ru
- Date: Mon, 12 Nov 2007 05:14:05 -0500 (EST)
- References: <fh1ckb$csj$1@smc.vnet.net>
On Nov 9, 4:26 am, Yaroslav Bulatov <yarosla... at gmail.com> wrote:
> Can anyone see the trick to speed up the following code significantly?
>
> depth;step=.02;
> Table[(c = 0;
> NestWhile[-4 (# - a) (# - b) &, .51, (c++; Abs[#1 - #2] > .1) &, 2,
> depth]; c), {a, -1., 0., step}, {b, 0., 1., step}] // ArrayPlot
>
> This makes a plot of the number of iterations needed for the quadratic
> fixed point iterations to converge, as a function of quadratic
> parameters, however it's too slow to get sufficient granularity
Here's a compiled version:
f = Compile[{a, b, {d, _Integer}},
Module[{c = 1, x = .51, x2},
While[x2 = -4 (x - a) (x - b); c < d - 1 && Abs[x - x2] > .1,
If[Abs[x] > 1.5, Return[d - 1]];
c++; x = x2];
c]]
DynamicModule[{d = 50, u, gr},
gr = Graphics[Raster[
Reverse[
d - 1 - Table[f[a, b, d], {a, -1, 0, .001}, {b, 0, 1, .001}]],
{{0, 0}, {1, 1}}, Dynamic@{u, d - 1}]];
Manipulate @@ {gr, {u, 1, d - 2, 1}}
]
Maxim Rytin
m.r at inbox.ru