fminsearchbnd optimization function in matlab
Mostrar comentarios más antiguos
i used fminsearchbnd for boundary problem but the matlab it tell me that Undefined function 'fminsearchbnd' can any one help me with is problem i used this example
fun = @(x)(x(1)-5)^2+(x(2)+6)^2+x(3); % x0 = [0 0 0]; Lb=[0 -1 2]; Ub=[1 2 3]; [x,fval,exitflag,output] = fminsearchbnd(fun,Lb,Ub); disp(fval)
thank you
Respuesta aceptada
Más respuestas (3)
MASTER WHOS
el 7 de Feb. de 2019
0 votos
I DID THIS:
Do not put it in the MATLAB toolbox. Download the .zip file, and unzip it into a directory that has nothing else in it (and which is not under the MATLAB installation.) Then use pathtool to add the directory to the MATLAB path. After that MATLAB will be able to find the file.
but it gives error: Error in fminsearchbnd (line 264)
[xu,fval,exitflag,output] = fminsearch(intrafun,x0u,options,varargin);
what might be the problem?
11 comentarios
John D'Errico
el 7 de Feb. de 2019
Please show the COMPLETE error. That is, all the red text.
Walter Roberson
el 7 de Feb. de 2019
and a full copy of the error message . you would not get that error report unless the function was found.
MASTER WHOS
el 7 de Feb. de 2019
Attached image is the error;
And the refered equation 37 is below:
37: theta_noNull = fminsearchbnd(SQP_complex2 , [x0 , 1, x00],[x1 , 1, x3], [x2 , 1, x4]);
Torsten
el 7 de Feb. de 2019
What is SQP_complex2 ? What are the values of x0, x00, x1, x3, x2, x4 ?
MASTER WHOS
el 8 de Feb. de 2019
x0 = zeros (1 ,45); % initial value for optimization
x00 = zeros (1 ,10);
x1 = -pi/1 * ones (1 ,45);
x2 = pi/1 * ones (1 ,45);
x3 = -pi/1 * ones (1 ,10);
x4 = pi/1 * ones (1 ,10);
Torsten
el 8 de Feb. de 2019
Can't you include executable code here ?
John D'Errico
el 8 de Feb. de 2019
Ok. Your very first problem is that you cannot realistically use fminserchbnd with any serious hope of success.
You have 56 unknowns to estimate. Although one of them seems to have a lower bound of 1 which is equal to its upper bound of 1. The latter is not a problem though. Fminserchbnd can handle that case. In fact, I recall that I specifally catered to that case, looking for variables that had lower and upper bounds that were identical. So really, you have 55 unknowns to estimate.
Regardelss, that is by far too many unknowns for fminsearchbnd to handle. Perhaps 10-12 unknowns is a far more reasonable limit to gain convergence from a tool like fminsearchbnd. Once you start to try to solve problems with many tens of parameters like this, tools like fminsearch and fminsearchbnd tend to get bogged down, becoming far too inefficient. fminsearchbnd would probably require literally billions of function evaluations to achieve even approximate convergence.
I would strongly recommend instead using fmincon from the optimization toolbox, if that is an option.
(And please stop adding answers just to add comments.)
MASTER WHOS
el 8 de Feb. de 2019
Thanks for your utmost responsive support.
NB: I do not have much experience YET with MATLAB as I almost started using it last year. So, if you can use SIMPLE (easy to understand guidance) then I will appreciate the most
I AM VERY GRATEFUL FOR YOUR HELP
Torsten
el 8 de Feb. de 2019
I still don't see neither
@SQP_complex2
nor
@SQP_complex2_case2
Walter Roberson
el 8 de Feb. de 2019
I have my own private implementation of tricking fminsearch into being bounded (stops when it hits the boundary rather than reflecting as might be nice.)
I know from experience that 55 variables is completely intractable to use seriously with fminsearch . fminsearch gets caught in local minima , not as easily as fmincon gets caught but it happens all the time. It is not a global minimizer. To use it for more than light use you need to start it at multiple locations . In particular you need starting points near every valid combination of upper and lower bounds . With 55 variables that would be 2^55 configuration to examine. If you could process 2^30 per second (gigaflop range ) then that would take you 2^25 seconds . That would be a year . You probably cannot process more than 1/100 of that speed so probably 100 or so years . Just for figuring out crudely which end of each bound you probably near.
MASTER WHOS
el 8 de Feb. de 2019
0 votos
Thanks for your comment.
sorry, so, is that the only problem? [missing @SQP_complex2, & @SQP_complex2_case2] (which bring the error I attached with fminsearchbnd)?
2 comentarios
Walter Roberson
el 8 de Feb. de 2019
There is @ missing before SQP_complex_case2 unless that is a function that returns aa function handle.
MASTER WHOS
el 8 de Feb. de 2019
0 votos
Ok, thank you
Categorías
Más información sobre Surrogate Optimization en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!