solve method

  1. @override
NonlinearResults solve()
override

Returns a NonlinearResults object which contains the data calculated by the root-finding algorithm.

Implementation

@override
NonlinearResults solve() {
  var diff = tolerance + 1;
  var n = 1;
  var x = x0;
  final guesses = <double>[];

  while ((diff >= tolerance) && (n < maxSteps)) {
    final fx = evaluateOn(x);
    final gx = (evaluateOn(x + fx) / fx) - 1;

    x = x - fx / gx;
    guesses.add(x);

    diff = (-fx / gx).abs();
    ++n;
  }

  return NonlinearResults(
    guesses: guesses,
    convergence: convergence(guesses, maxSteps),
    efficiency: efficiency(guesses, maxSteps),
  );
}