The NewtonRaphson class is an algorithmic class which obtains a
solution to a non-linear system using the Newton-Raphson iteration
scheme. The iteration scheme is based on a Taylor expansion of the
non-linear system of equations \R(\U) = \zero about an approximate
solution \U^{(i)}:

which can be expressed as:

which is solved for \Delta \U^{(i)} to give approximation for
\U^{(i+1)} = \U^{(i)} + \Delta \U^{(i)}. To start the
iteration \U^{(1)} = \U_{trial}, i.e. the current trial
response quantities are chosen as initial response quantities.
To stop the iteration, a test must be performed to see if convergence
has been achieved at each iteration. Each NewtonRaphson object is
associated with a ConvergenceTest object. It is this object which
determines if convergence has been achieved.