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

 Risposta accettata

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

5 Commenti

mohammed hussein
mohammed hussein il 30 Nov 2015
Modificato: Walter Roberson il 30 Nov 2015
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

Accedi per commentare.

Più risposte (1)

Torsten
Torsten il 30 Nov 2015
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!

Translated by