DescriptionThis is a rewrite of large-scale nonlinear equation solvers in scipy.optimize.
Git branch is here:
http://github.com/pv/scipy-work/commits/ticket/791-optimize-nonlin-rewrite
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/show
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
Patch Set 1 #
Total comments: 12
MessagesTotal messages: 2
|