Global search and Handle function specification
古いコメントを表示
The original code was using "fmincon" to minimize the function MSM_likelihood below:
[parameters,LL,exitflag,output]=fmincon('MSM_likelihood',startingvals,[],[],[],[],LB,UB, [],options,kbar,data,A_template);
HOWEVER, I am trying to run the optimization by using Global Search instead and that requires a function handle, which I believe I used sixmin for that. My code is below:
sixmin = @(input,kbar,data,A_template,estim_flag)MSM_likelihood;
opts = optimoptions(@fmincon,'Algorithm','interior-point');
problem = createOptimProblem('fmincon','x0',startingvals,...
'objective',sixmin(input,kbar,data,A_template,estim_flag),'lb',LB,'ub',UB,...
'options',opts);
gs = GlobalSearch;
[x,f] = run(gs,problem)
Somehow, the code doesn't run as expected. Please help! I really appreciate it!
回答 (2 件)
Walter Roberson
2016 年 2 月 26 日
0 投票
'objective' needs to be followed by a function handle, but instead you are following it by the result of calling sixmin on particular parameters. You should probably just have sixmin (no parameters following) at that point.
4 件のコメント
Tien Nguyen
2016 年 2 月 26 日
Steven Lord
2016 年 2 月 29 日
When that function handle is invoked with five input arguments, it will call MSM_likelihood with ZERO input arguments. I'm guessing that's not what you want. If you want to pass all five inputs into MSM_likelihood:
sixmin = @(input,kbar,data,A_template,estim_flag) ...
MSM_likelihood(input,kbar,data,A_template,estim_flag);
I broke this definition across two lines using ... for ease of display in Answers, but you could put it all on one line if you want.
Tien Nguyen
2016 年 3 月 2 日
Walter Roberson
2016 年 3 月 2 日
sixmin = @(input) MSM_likelihood(input,kbar,data,A_template,estim_flag);
Alan Weiss
2016 年 2 月 29 日
You might want to try the following line of code instead:
sixmin = @MSM_likelihood;
The function handle for fmincon must contain exactly one argument. See Passing Extra Parameters for more information.
Alan Weiss
MATLAB mathematical toolbox documentation
カテゴリ
ヘルプ センター および File Exchange で Surrogate Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!