A JAX library for nonlinear optimization including root finding, minimization, fixed points, and least squares.
Optimistix is a nonlinear optimization library for JAX that provides solvers for root finding, minimization, fixed points, and least squares problems. It addresses the need for modular, high-performance optimization tools in scientific computing and machine learning workflows, built on JAX's autodiff and hardware acceleration capabilities.
Researchers and engineers working on scientific computing, machine learning, or numerical methods who need flexible, high-performance nonlinear solvers within the JAX ecosystem.
Developers choose Optimistix for its modular design, interoperability between different solver types, and seamless integration with JAX's autodiff and parallel computing features, offering a composable alternative to monolithic optimization libraries.
Nonlinear optimisation (root-finding, least squares, ...) in JAX+Equinox. https://docs.kidger.site/optimistix/
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically converts between problem types, such as root-finding to least squares, enabling flexible solving strategies without manual reformulation.
Allows mixing and matching components like BFGS quadratic bowls and dogleg descent paths, facilitating custom solver configurations for specific needs.
Uses PyTrees as optimization state, aligning with JAX's functional design for better composability and seamless integration into JAX workflows.
Leverages JAX's autodiff, GPU/TPU support, and autoparallelism for fast compilation and runtimes, ideal for compute-intensive scientific problems.
Integrates directly with Optax for gradient-based optimization, enhancing machine learning pipelines with combined solver and optimizer capabilities.
Requires deep familiarity with JAX and its tools, creating a barrier for teams not already invested in this ecosystem or transitioning from other frameworks.
The modular design necessitates more boilerplate code and setup compared to monolithic libraries, which can slow down prototyping for simple tasks.
Focuses on unconstrained nonlinear problems, lacking built-in support for constraints, forcing users to reformulate issues or rely on external libraries.