NonLinear class abstract base

An abstract class that represents a nonlinear equation, which can be solved with a particular root-finding algorithm. No complex numbers are allowed.

The so called "root-finding algorithms" are iterative methods that start from an initial value (or a couple of values) and try to build a scalar succession that converges as much as possible to the root. The algorithms implemented by this package are:

Each subclass of NonLinear has to override the solve method to build the scalar succession with a certain logic. It's expected to produce a series of values that progressively get closer to the real root.

Implementers

Constructors

NonLinear({required String function, required double tolerance, required int maxSteps})
Creates a new NonLinear object.
const

Properties

function String
The function f(x) for which the algorithm has to find a solution.
final
hashCode int
The hash code for this object.
no setterinherited
maxSteps int
The maximum number of iterations to be made by the algorithm.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
tolerance double
The algorithm accuracy.
final

Methods

convergence(List<double> guesses, int steps) double
To get a meaningful result, it makes sense to compute the rate of convergence only if the algorithm made at least 3 steps (iterations).
efficiency(List<double> guesses, int steps) double
The efficiency is evaluated only if the convergence is not double.nan. The formula is:
evaluateDerivativeOn(double x) num
Evaluates the derivative of the function on the given x value.
evaluateOn(double x) num
Evaluates the function on the given x value.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
solve() → ({double convergence, double efficiency, List<double> guesses})
Generates the succession generated by the root-finding algorithm. Returns a Record object whose members are:
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited