PRIMA: Optimization without Using Derivatives

PRIMA is a package for solving general nonlinear optimization problems without using derivatives.
187 Downloads
Updated 10 Jun 2024
(More information is available at http://www.libprima.net ; in case of questions or requests, open an issue at the GitHub repository of PRIMA)
PRIMA is a package for solving general nonlinear optimization problems without requiring derivatives. It is the successor of PDFO.
PRIMA provides a MATLAB functions prima, which can automatically identify the type of your problem and then solve it by one of Powell's methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA.
The prima function is designed to be compatible with the fmincon function available in the Optimization Toolbox of MATLAB. You can call prima in the same way as calling fmincon:
x = prima(fun, x0)
x = prima(fun, x0, A, b)
x = prima(fun, x0, A, b, Aeq, beq)
x = prima(fun, x0, A, b, Aeq, beq, lb, ub)
x = prima(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)
x = prima(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options)
x = prima(problem) % PROBLEM is a structure defining the optimization problem
[x, fval] = prima(___)
[x, fval, exitflag, output] = prima(___)
In addition, prima can be called in some flexible ways that are not supported by fmincon. If your problem can be solved by fmincon without specifying the derivatives, then it can probably be better solved by prima; if your problem cannot be solved by fmincon, then try prima.
If you need help with the setup of MEX, see https://www.mathworks.com/matlabcentral/fileexchange/127968-setup_mex .
The "P" in the name stands for Powell, and "RIMA" is an acronym for "Reference Implementation with Modernization and Amelioration".
PRIMA is dedicated to the late Professor M. J. D. Powell FRS (1936--2015).

Cite As

Z. Zhang, PRIMA: Reference Implementation for Powell's Methods with Modernization and Amelioration, available at https://github.com/libprima/prima, DOI: 10.5281/zenodo.8052655, 2023

MATLAB Release Compatibility
Created with R2023a
Compatible with R2018a and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

benchmark/rescue_idz

benchmark/rescue_idz/archiva/230305

benchmark/rescue_idz/archiva/230305/norma

benchmark/rescue_idz/fortran/tests/testsuite

benchmark/rescue_idz/matlab/examples

benchmark/rescue_idz/matlab/interfaces

benchmark/rescue_idz/matlab/interfaces/+newuoa_mat

benchmark/rescue_idz/matlab/interfaces/+newuoa_mat/private

benchmark/rescue_idz/matlab/interfaces/private

benchmark/rescue_idz/matlab/setup_tools

benchmark/rescue_idz/matlab/tests

benchmark/rescue_idz/matlab/tests/private

benchmark/rescue_idz/norma

benchmark/rescue_idz/norma/fortran/tests/testsuite

benchmark/rescue_idz/norma/matlab/interfaces

benchmark/rescue_idz/norma/matlab/interfaces/+newuoa_norma_mat

benchmark/rescue_idz/norma/matlab/interfaces/+newuoa_norma_mat/private

benchmark/rescue_idz/norma/matlab/interfaces/private

benchmark/rescue_idz/norma/matlab/setup_tools

matlab/examples

matlab/interfaces

matlab/interfaces/+newuoa_mat

matlab/interfaces/+newuoa_mat/private

matlab/interfaces/private

matlab/setup_tools

matlab/tests

matlab/tests/private

python/profiles

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
0.7.3

Support Apple Silicon chips.

0.7.2.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.7.2

0.7.1.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.7.1

0.7.0.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.7

0.6.2.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.6.2

0.6.1

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.6.1

0.6

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.6

0.5.1.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.5.1

0.5

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.5

0.4.0.0

See release notes for this release on GitHub: https://github.com/libprima/prima/releases/tag/v0.4

0.3

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.