MATLAB implementations of various nonlinear programming algorithms.
This repository contains MATLAB implementations of a variety of popular nonlinear programming algorithms, many of which can be found in Numerical Optimization by Nocedal and Wright, a text that I highly recommend.
List of algorithms implemented:
- line-search (simple Wolfe, strong Wolfe, Moré-Thuente)
- steepest descent
- Newton's method
- Dogleg method
- Steihaug-Toint conjugate gradient trust region method
- limited-memory BFGS
- Gauss-Newton method
All of the algorithms are heavily commented (possibly to a fault), but I wanted someone in the midst of a nonlinear programming class to be able to read through the code and understand it decently well. Although I have done my best to implement these algorithms with efficiency in mind (within the confines of MATLAB's inherent deficiencies in this regard), this repository is far more valuable as a teaching tool than as a performance-centric library.
Due to the algorithms being so heavily commented, many implementation details are contained within the code as comments instead of in a README.
Some day, I will include a demo folder that demonstrates the correctness and performance of each algorithm on a set of representative problems, and I will create a README with implementation details for each algorithm, to be located in the src folder.
Some day! 🙂