next up previous
Next: Algorithm of partial inversion Up: Introduction Previous: Witness problems and new

Starting values.

When the user does not supply a starting value but supplies a range (or a range is implicit), selecting the starting value is a problem in itself. Ideally we would like to try several starting points in the valid interval, because the iterator may fail for any of the reasons listed above. This suggests the following strategy for all iterators.
  starting_points := {};
  x[0] := most_isolated_valid_point( starting_points );
  for i do
      x[i] := F(x[i-1]);
      starting_points := starting_points union {x[i-1]};
      if computation_failed or outside_domain(x[i]) then
           start_again
      else if convergence_achieved then
           successful_finish
      else if i>3 and diverging then
           start_again
      else if acceleration_possible then
           x[i] := acceleration(x[i], x[i-1], ...)
      end if
  end do;



Gaston Gonnet
1998-07-08