Non-linear optimization with fmincon

2 次查看(过去 30 天)
Hi
I am solving a nonlinear convex optimization problem. The problem has equality nonlinear constraints. I also have non-negativity constraints. For some reason Matlab does not respect the non negativity constraints and finds an optimum in negative numbers. I have no idea why it does this.
Thanks in advance!
Juan
problem.x0 =x0;
problem.objective =@(x)objfun(x);
problem.nonlcon =@(x)confuneq(x,b1d,b1f,M1,z,g);
problem.solver ='fmincon';
problem.options =optimset('Display','iter-detailed');
problem.lb =[0.1 0.1 0.1 0.1];
problem.ub =[1000 1000 0.9 0.9];

采纳的回答

Alan Weiss
Alan Weiss 2014-3-25
Please show us your options and your call to fmincon and the resulting output. If you are using the interior-point or sqp algorithms, then fmincon strictly obeys bounds, and unless your problem is 5-dimensional or higher, all your solution components should be above 0.1.
Alan Weiss
MATLAB mathematical toolbox documentation

更多回答(1 个)

juan pf
juan pf 2014-3-25
编辑:juan pf 2014-3-25
Thank you very much for your answer -- now works! The options are below.
x0=[0.5 0.5 0.5];
problem.x0 =x0; problem.objective =@(x)objfun(x); problem.nonlcon =@(x)confuneq(x,b1d,b1f,M1,z,g); problem.Algorithm = 'sqp'; problem.solver ='fmincon'; problem.options =optimset('Display','iter-detailed'); problem.lb =[0.1 0.1 0.1]; problem.ub =[2 20 0.9];
tic; [x,fval]=fmincon(problem); time=toc;

类别

Help CenterFile Exchange 中查找有关 Nonlinear Optimization 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by