https://github.com/otvam/global_optim_fitting_matlab
MATLAB Toolbox for Global Fitting/Optimization
https://github.com/otvam/global_optim_fitting_matlab
cache fitting genetic-algorithm matlab optimization parallel
Last synced: 10 months ago
JSON representation
MATLAB Toolbox for Global Fitting/Optimization
- Host: GitHub
- URL: https://github.com/otvam/global_optim_fitting_matlab
- Owner: otvam
- License: bsd-2-clause
- Created: 2022-05-05T00:13:15.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-12-18T04:46:13.000Z (about 1 year ago)
- Last Synced: 2025-03-28T00:41:25.826Z (10 months ago)
- Topics: cache, fitting, genetic-algorithm, matlab, optimization, parallel
- Language: MATLAB
- Homepage:
- Size: 280 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# MATLAB Toolbox for Global Fitting/Optimization




This **MATLAB toolbox** can be used for the following problems:
* finding **global minimum** of a function
* **fitting a function** to a dataset
This toolbox is specially adapted to the **following problems**:
* **non-smooth** error function
* **non-convex** error function
* **computationally heavy** error function
* error function with **local minima**
* error function with **many input variables**
This toolbox provides a common interface for **different solvers**:
* **gradient**: fminunc / fmincon
* **simplex**: fminsearch
* **surrogate**: surrogateopt
* **evolutionary**: particleswarm / ga
* the aforementioned solvers can be **combined**
Customized **error function**:
* custom **weights** for the dataset points
* choice of the **error metric** (norm, average, percentile, etc.)
* recover from **undefined values**
* **vectorized evaluation** of the error function
* **parallel evaluation** of the error function
* **caching** of the error function
Advanced **variable handling**:
* **abstraction layer** for the variables
* **initial** values
* **scalar or vector** variables
* variable **transformation** (linear, quadratic, logarithmic, etc.)
* variable **normalization**
* **constraints** (lower and upper bounds)
* **sine transformation** for handling constraints
Advanced **monitoring** capabilities:
* compute various error metrics
* compute solver figures of merit
* plot/display the solver progress
* plot/display the final results
## Limitations
* All the provided features have a **computational cost**.
* Therefore, this library is mostly adapted to **time-consuming error functions**.
* For simple error functions, the **overhead is non-negligible**.
## Examples
* [run_example_fitting.m](run_example_fitting.m) - Simple fitting of a model with respect to a dataset.
* [run_example_optim.m](run_example_optim.m) - Find the global minimum of a function.
## Compatibility
* Tested with MATLAB R2021a.
* The `gads_toolbox` is required (for the MATLAB solvers).
* The `optimization_toolbox` is required (for the MATLAB solvers).
* The `distrib_computing_toolbox` is required (for parfor loops)
* Compatibility with GNU Octave not tested but probably problematic.
## Author
**Thomas Guillod** - [GitHub Profile](https://github.com/otvam)
## License
This project is licensed under the **BSD License**, see [LICENSE.md](LICENSE.md).