DerApproximator Publisher's description
from Dmitrey Kroshko
DerApproximator is a small yet important package for.....
* DerApproximator is a small yet important package for getting/checking derivatives via finite-difference approximation, extracted from OpenOpt framework to be standalone Python module. It is required by FuncDesigner (for obtaining derivatives of oofuns beyond standard set without routines to yield them directly) and some OpenOpt solvers (when there are some functions without user-supplied derivatives).
* Requirements for the package (as well as for OpenOpt and FuncDesigner) are NumPy and python-setuptools; OS - any where Python and numpy work (Linux, Windows, Mac OS X etc).
* If user provides start point of type Python list, it is automatically casted to NumPy array.
o get_d1 returns 1st derivatives of a func f : R^n -> R^m (example)
o get_d2 returns 2nd derivatives of a func f : R^n -> R (example)
o check_d1 checks user-provided routing for obtaining 1st derivatives of a function
* Default diffInt is 1.5e-8 for get_d1, check_d1 and 1.5e-4 for get_d2. You can overwrite it by "diffInt" argument. Another one argument is stencil, default value 3 for DerApproximator, FuncDesigner and OpenOpt NSP is 3, for OpenOpt NLP it's 1:
o stencil = 1: (f(x+diffInt) - f(x)) / diffInt
o stencil = 2: (f(x+diffInt) - f(x-diffInt)) / (2*diffInt)
o (since v 0.19) stencil = 3: (-f(x+2*diffInt) + 8*f(x+diffInt) - 8*f(x-diffInt) + f(x-2*diffInt)) / (12*diffInt)
* If it turns out that f(x+diffInt) is NaN (not a number) or f(x-diffInt) is NaN, than only one side will be involved into calculations. BTW this is a typical situation for lots of numerical optimization problems, and currently functions approx_fprime and check_grad from scipy.optimize are even more primitive - they have only one stencil and no handling of NaNs.
What's New in This Release:В· Some improvements for obtaining derivatives in points from R^n where left or right derivative for a variable is absent, especially for stencil > 1
System Requirements:В· Python
Program Release Status: Minor Update
Program Install Support: Install and Uninstall