Jean-Michel Muller's Iteration - consequences of rounding errors


Iteration: (not defined if x=0 or y=0)
  F(x,y) = (y, a+b+c - (ab+bc+ca - abc/x) /y )
 

Fixed points:    (a,a), (b,b), (c,c)
Invariant curves:
  y = a+b - ab/x (magenta/green)
  y = b+c - bc/x, y = c+a - ca/x (red)

The red curves are attracting for (c,c)
and repelling for (a,a), (b,b)
the magenta/green curve is attracting
for (b,b) and repelling für (a,a).

Because of rounding errors in floating point
computations, iterated points cannot stay on
the magenta/green curve and converge to (b,b).
Eventually all points are attracted by (c,c),
just wait until Start/Stop stops!

For rational points on y = a+b - ab/x one can
write code which uses arbitrarily large integers
and allows the iteration to converge to (b,b).
No program iterates (pi, a+b-ab/pi) correctly.