how to solve the following problem using optimization toolbox?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have this estimation problem where I use maximum likelhood estimation to solve it where the problem has pdf of:
f(x)=m1*(1/(sqrt(2*pi)*o_x)))*exp(-0.5*power(z-ux,2)/o_x^2))+(1-m1)*m1*(1/(sqrt(2*pi)*o_y)))*exp(-0.5*power(z-uy,2)/o_y^2));
both are normal distributions (I want to estimate m1, ux,uy,o_x,o_y) using optimisation toolbox
I used fmincon since I am trying to limit the range of possible values (impost constraints on the values of m1, ux,uy,o_x,o_y)
I used a for loop for the main program.
problem.objective = @(y)norm_likelhood_fun(y,z); %%%%z is the data and y is a vector representing vector of values to be estimated
for j=1:100
% problem.x0=(problem.ub+problem.lb)/2;
problem.x0 = rand(5,1);
[y,feval]=...
fmincon(problem);
%y = run(gs,problem);
y_f(:,j)=y;
end
In each loop iteration, different initial values are used to search for minumum( I know the optimiser is sensitive to initial values). My question is how can I reach the convergence (different initial values lead to the same solution). What is the best algorithm suited for this problem?. How can I visualize the data with optimisation problem I have (contour lines)?
4 commentaires
Mario Malic
le 23 Sep 2020
I don't think it's possible, it's 5D problem. Do you really need 10^-30 on TolX and TolFun?
Issue with your options are, that your MaxIter, TolFun and TolX are from optimset, but you use optimoptions. I don't know what values you get in fval (rename from feval, as feval is a function), so try these options.
options = optimoptions('fmincon','Display','iter-detailed','Algorithm','sqp','MaxIterations',10000, ...
'StepTolerance',10^-10,'TolFun',10^-10,'OptimalityTolerance',1e-12, 'Plotfcn', @optimplotfval);
Réponses (0)
Voir également
Catégories
En savoir plus sur Genetic Algorithm dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!