parallel computing in MultiStart for global maximum
Show older comments
My task is to estimate 11 parameters which would make the maximum likelihood function fit best. So yufun is my function, r is the data that I have and params including the 11 parameters is the one I would like to estimate.
The program seems stuck at a function whose name is remoteparfor. I found it because when I click on pause, it stop at remoteparfor. More specifictly, it stop at this loop:
while isempty(r)
r = q.poll(1, java.util.concurrent.TimeUnit.SECONDS);
obj.displayOutput();
% Only test to see if the session is failing if we didn't get a
% results from the queue
if isempty(r) && ~obj.Session.isSessionRunning
errorMessageInput = iGetParpoolLinkForError();
error(message('parallel:lang:parfor:SessionShutDown', errorMessageInput));
end
end
my code is attached as below:
% params=sym('params');
% r_bar=params(1);
% p_bar=params(2);
% tp=params(3);
% rho_p=params(4);
% n_bar=params(5);
% tn=params(6);
% rho_n=params(7);
% phi_pp=params(8);
% phi_pn=params(9);
% phi_np=params(10);
% phi_nn=params(11);
tic;
ms = MultiStart('UseParallel','always');
r=normrnd(0.009347597,0.002834309,1000,1);
yufun=@(params)(-1*bege_gjrgarch_likelihood(r, params));
opts = optimoptions(@fmincon,'Algorithm','sqp');
problem = createOptimProblem('fmincon','x0',zeros(1,11),...
'objective',yufun,'lb',[0,0,0,0,0,0,0,-1,-1,-1,-1],...
'ub',ones(1,11));
[params,fval,exitflag,output,solutions] = run(ms,problem,20);
toc;
Does anyone can help me solve this problem ? Or can provide another way to get global maximum.
Answers (0)
Categories
Find more on Use COM Objects in MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!