A Python software module that allows for function design and automatic derivatives.
One of the key features of the framework is automatic differentiation (AD), which allows for efficient and accurate computation of derivatives. This is in contrast to other methods such as numerical differentiation via finite-differences derivatives approximation or symbolic differentiation provided by Maxima, SymPy, etc. Notably, commercial tools such as TOMLAB/MAD for automatic differentiation can cost over 4000$.
FuncDesigner provides various usage examples, such as the ability to use "for" cycles in its code. Users can define their own oofun with a wrapper around their functions written in other languages (C, Fortran, etc.), and missing derivatives will be covered up by finite-differences derivatives approximation via DerApproximator.
FuncDesigner and DerApproximator are excluded from the OpenOpt framework as independent Python modules. OpenOpt can optimize FuncDesigner models without needing to provide 1st derivatives.
An example of using FuncDesigner with OpenOpt to optimize an objective function is provided. The function includes variable constraints and a defined starting point. The output includes the objective function's value and the optimized variables.
Overall, FuncDesigner is a powerful tool for optimizing and solving non-linear equations. It is user-friendly and cross-platform, making it accessible for a wide range of users. Its ability to handle automatic differentiation sets it apart from other software options.
Version 0.15: N/A