next up previous
Next: Transcendental Iterators. Up: Building additional iterators Previous: Polynomial iterators.

Substitute all non-polynomials.

Another possible way of constructing an iterator is to inspect the equation top-down and force the evaluation of any subexpression which is a special function, a power to a non-integer exponent, or anything else that is not algebraic. If after this is done, we are left with an expression containing x, this must be a rational polynomial expression. The solution of this is equivalent to the solution of a polynomial and we can proceed as with the previous iterators. For example

\begin{displaymath}\frac{x - \sin x}{1-x^2/2} = \frac{\tan x - x}{1+x^2/2} \end{displaymath}

for x0=1.23 would be handled by evaluating the $\sin x$and $\tan x$, obtaining

\begin{displaymath}\frac{x - 0.94248...}{1-x^2/2} = \frac{2.8198... - x}{1+x^2/2} \end{displaymath}

which has the roots -3.3331..., 1.2024.... From these possible values for x1 we select, as before, the closest to x0, x1=1.2024.... More formally, using Maple's RootOf notation, the iterator becomes

\begin{displaymath}x_{i+1} = {\tt RootOf} \left ( \frac{z - \sin x_i}{1-z^2/2} =
\frac{\tan x_i - z}{1+z^2/2}, z \right )
\end{displaymath}


 
Table 3: Rational polynomial iterators, obtained by solving all the transcendental subexpressions first
66644 random equations producing 14398 iterators
method failures
converged to a root 11.64% converged to a non-root .39%
failed 88.36% diverged 6.22%
average time .672 outside domain 3.51%
time per root 5.768 too many iterations 1.15%
    iterator fails 0.00%
iterators per equation .216 no iterators 88.73%

Table 3 shows the simulation results for this heuristic.


next up previous
Next: Transcendental Iterators. Up: Building additional iterators Previous: Polynomial iterators.
Gaston Gonnet
1998-07-08