Let us first consider the constructon of the following simple iteration
Clear["Global`*"]
p[z_] := z^3 - 1;
beta = -Sign[p'[z]];
theIterationFunction = z - p[z]/(p'[z] + beta p[z]) // FullSimplify
which results in the following correct iteration function
$$theIterationFunction=z+\frac{-1+z^3}{-3 z^2+\left(-1+z^3\right) \text{Sign}[z]^2}.$$
Now by choosing any value for $z$, the output would be simply given in Mathematica 8, since the computation of $\text{Sign}[z]$ has been done automatically. My problem is in a similar but more complicated iteration. Please consider the following
Clear["Global`*"]
p[z_] := z^3 - 1;
w = z + beta p[z]; FD = (p[w] - p[z])/(w - z);
theIterationFunction2 = z - p[z]/FD // FullSimplify
which yeilds in
$$theIterationFunction2=z-\frac{\text{beta} \left(-1+z^3\right)^2}{-z^3+\left(z+\text{beta} \left(-1+z^3\right)\right)^3}.$$
In fact, here $beta$, must be calculate by the formula $beta=\frac{-p[z]+p[z+\text{beta} p[z]]}{\text{beta} p[z]}$. That is, there is a self-defined formula for $beta$, which itself depends on $beta$. Thus, we must choose a starting value for $beta$, such as $beta=0.1$ at the beggining, but after that, each time theIterationFunction2 must calculate a new value based on its formula. For example, at the very beggining, we set $beta=0.1$ and $z=2.$, and the output will be a new value for $beta$ (NEEDLESS TO BE SHOWN) and my aimed value $y$. Now, if I give $y$, the last value of $beta$ which is saved in the memory must be used to produce a new value for $beta$ and my aimed new value $yy$. The process must be go on in this way. Hence, altogether I must define a function recursively with a pre-assumed starting value for $beta$, while I am un-able to do so! I will be thankful if anyone could help me to define such a function recursively.