[SciPy-dev] RFR: Nonlinear solver rewrite

Pauli Virtanen pav@iki...
Thu May 7 16:23:50 CDT 2009


Hi,

The large-scale nonlinear equation solver (nonlin.py) rewrite is nearing 
completion.

Git branch is here:

    http://github.com/pv/scipy-work/commits/ticket/791-optimize-nonlin-rewrite

Review ticket is here:

    http://codereview.appspot.com/62059

Trac ticket is here:

    http://projects.scipy.org/scipy/ticket/791

You may want to try out the examples in the docstring of nonlin.py


The following new features are added

    - Proper termination conditions
    - Generic framework for tolerance-controlled inexact Newton methods
    - Backtracking and line searches
    - Limited-memory Broyden methods, including SVD rank reduction
      in addition to more basic options
    - Newton-Krylov solver, using any of the solvers from 
      scipy.sparse.linalg

The new code API is mostly backward-compatible to the old one. Some
methods that were not very useful are deprecated. All of the code is
rewritten and refactored, aiming for easier maintenance.

The API may need some tuning still; should the method_name wrappers be
discarded, and the nonlin_solve(..., jacobian='foo') be the preferred
interface?


Note that this patchset includes some work in other parts of Scipy; these
are in review separately (so don't comment on those in this ticket):

    - LGMRES sparse solver
      http://codereview.appspot.com/53096
      http://github.com/pv/scipy-work/commits/lgmres

    - Line search refactoring
      http://codereview.appspot.com/52096
      http://github.com/pv/scipy-work/commits/linesearch-refactor


Cheers,
Pauli



More information about the Scipy-dev mailing list