optimization function in matlab

i would like to ask about the optimization in matlab function that works with multi variable input with each input has different boundaries the output is only one variables

 Accepted Answer

help fmincon
Or, as found on the file exchange, fminsearchbnd.

5 Comments

thank you John D'Errico for answering me
i am trying these function a lot of time but it doesn't work
i have the equation
Function =(X-5)^2+(Y+6)^2+Z
when the boundary of
X from 0 to 1
Y from -1 to 2
Z from 2 to 3
i did that in matlab but i doesn't work
fun = inline('(x-5)^2+(y+6)^2+Z');
x0 = [1 1 1];
Lb=[0 -1 2];
Ub=[1 2 3];
[x,fval,exitflag,output] = fminsearch(fun,x0,Lb,Ub);
disp(fval)
it gives me error
Error in fminsearch (line 190)
fv(:,1) = funfcn(x,varargin{:});
Error in Untitled (line 5)
[x,fval,exitflag,output] = fminsearch(fun,x0,Lb,Ub);
can you help me with that problem
thank you
fminsearch does not permit boundary conditions. As John indicated, you need to use fmincon() or you need to get the fminsearchbnd File Exchange contribution.
thank you Walter Roberson i used the fmincon()
fun = inline('(x-5)^2+(y+6)^2+Z');
x0 = [1 1 1];
Lb=[0 -1 2];
Ub=[1 2 3];
[x,fval,exitflag,output] = fmincon(fun,x0,Lb,Ub);
disp(fval)
but also gives me the error
Error using fmincon (line 293) Row dimension of A is inconsistent with length of b.
Error in Untitled (line 5) [x,fval,exitflag,output] = fmincon(fun,x0,Lb,Ub);
Read the help for fmincon.
You cannot simply pass in a list of variables in any order as arguments and expect fmincon to know that the 3rd and 4th arguments are to be interpreted as bounds.
READ THE HELP!!!!!
[x,fval,exitflag,output] = fmincon(fun,x0,[],[],[],[],Lb,Ub);
As you were passing in those arguments, fmincon thought they were to be treated as the equations for a set of linear INEQUALITY constraints. As such, what it thought were A and b were inconsistent in size.
Thank you john

Sign in to comment.

More Answers (1)

fun = @(x)(x(1)-5)^2+(x(2)+6)^2+x(3);
x0 = [1 1 1];
Lb=[0 -1 2];
Ub=[1 2 3];
[x,fval,exitflag,output] = fmincon(fun,x0,[],[],[],[],Lb,Ub);
disp(fval)
Best wishes
Torsten.

Community Treasure Hunt

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

Start Hunting!