Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Fmincon details
Login with GitLab

Fmincon

Nonlinearily constrained multivariable optimization solver
(3516 downloads for this version - 28122 downloads for all versions)
Details
Version
0.3.1
A more recent valid version exists: 1.0.8
Author
Michael Baudin
Owner Organization
DIGITEO
Maintainers
Allan CORNET
Michael BAUDIN
Vincent COUVERT
Category
License
Dependency
Creation Date
November 24, 2011
Source created on
Scilab 5.4.x
Binaries available on
Scilab 5.4.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit macOS
Install command
--> atomsInstall("fmincon")
Description
            Fmincon toolbox

Purpose
-------

The goal of this toolbox is to provide a fmincon function 
in Scilab.
The fmincon function is a nonlinearily constrained optimization
solver.
Currently, we use ipopt for the actual solver of fmincon.

The current state of the function is experimental.
Many features are yet to be implemented.

We provide upgraded versions of the optimset and 
optimget functions, which manage options which 
are required by fmincon.

The current implementation is able to manage 
the following use cases.
We use a L-BFGS formula in order to compute an approximate 
of the Hessian of the Lagrangian.

(0) The initial guess is provided in the x0 input argument.

(1) The nonlinear objective function and 
the nonlinear constraints are provided.
The fun and nonlcon function can be customized to 
configure the nonlinear objective function and nonlinear constraints.
In this case, we use order two finite differences with optimal 
step size in order to compute the gradient of the objective 
function and the gradient of the constraints.

(2) The parameters are subject to bounds.
The lb and ub parameters can be configure to set 
bounds on the parameters.

(3) The objective function and constraints function can 
provide the exact gradients as additionnal output arguments
of their function definition.
The two "GradObj" and "GradConstr" options can be turned 
"on" for that purpose.

Linear equalities and linear inequalities are not managed in the current
version.

Features
--------

 * fmincon : Solves a nonlinearily constrained optimization problem.

Acknowledments
--------------

I thank Vincent Couvert and Yann Collette for their feedback on this module.

Changelog
---------

fmincon (0.3) : Fixed bug on Linux.
fmincon (0.2) : Fixed bug in Demos/runtests.
            
Files (2)
[126.03 kB]
Source code archive
Same sources as in previous toolbox version, updated to make it available for
Scilab 5.4.0
[151.23 kB]
OS-independent binary for Scilab 5.4.x
Binary version
Automatically generated by the ATOMS compilation chain

News (0)
Comments (1)     Leave a comment 
Comment from Stephane Ploix -- February 24, 2013, 06:10:40 PM    
Here an simple example that fails on mac os x 64bits:

function J=myfun(x)
    J = 10+x*sin(cos(x));
endfunction

function [Cleq,Ceq] = mycon(x)
    Cleq=x^2-x-10;
    Ceq=[];
endfunction

x=[-10:.01:10];
y=10+x.*sin(cos(x));
ycon=x.^2-x-10;
plot(x,y,x,ycon),xgrid

[x,fval,exitflag,output]=fmincon(myfun,4,[],[],[],[],-10,10,mycon);
disp(x,'x',fval,'fval',exitflag,'exitflag',output,output.message)
plot(x,fval,'ok')

Answer from Michael BAUDIN -- March 18, 2013, 09:25:06 PM    
Hi,

Thank you for reporting this bug. 

But this is the wrong place. Please report it at:

http://forge.scilab.org/index.php/p/fmincont/issues/

Best regards,

Michaël

> Here an simple example that fails on mac os x 64bits:
> 
> function J=myfun(x)
>     J = 10+x*sin(cos(x));
> endfunction
> 
> function [Cleq,Ceq] = mycon(x)
>     Cleq=x^2-x-10;
>     Ceq=[];
> endfunction
> 
> x=[-10:.01:10];
> y=10+x.*sin(cos(x));
> ycon=x.^2-x-10;
> plot(x,y,x,ycon),xgrid
> 
> [x,fval,exitflag,output]=fmincon(myfun,4,[],[],[],[],-10,10,mycon);
> disp(x,'x',fval,'fval',exitflag,'exitflag',output,output.message)
> plot(x,fval,'ok')
> 
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.