3
$\begingroup$

I have reduced an error in my program to this line of code:

FindRoot[Nest[# (1 - #) k &, 1/2, 2^4] - 1/2, {k, 3.5}]

It works for $2^1, 2^2, 2^3, 2^4,$ but then for $2^n, n\ge5,$ it stops. Nothing happens. Mathematica is "thinking" forever. FindRoot is not doing a single iteration.

Why does this happen?

I have some ideas of my own, none of which have gotten me anywhere:

  1. The values are very small, is it a precision problem?

  2. Maybe I'm not using Nest properly?

$\endgroup$
2
  • $\begingroup$ You do realize that you trying to find the root for polynomial of order 2^2^n? So for n=5 it's 4294967296 order! $\endgroup$ Commented Apr 30, 2013 at 21:53
  • $\begingroup$ To speed things up a bit I suggest to Expand your expression and Chop the small parts at every nesting: Nest[Chop[Expand[# (1 - #) k]] &, 0.5, 2^4] - 0.5 $\endgroup$ Commented Apr 30, 2013 at 21:57

1 Answer 1

4
$\begingroup$

Make it a purely numeric function so that FindRoot cannot do anything fancy with the symbolic form. This can be done as below.

ff[k_?NumberQ] := Nest[# (1 - #) k &, 1/2, 2^4]

FindRoot[ff[k] == 1/2, {k, 3.5}]

(* Out[22]= {k -> 3.49856169933}` *)
$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.