how to solve the following problem using optimization toolbox?
Show older comments
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 Comments
Mario Malic
on 22 Sep 2020
Provide information on full problem structure, including lb and ub. I am not sure if you need them vectorised/or if it has any benefits in fmincon or just for simplicity.
Values for x0 are in range of [0,1]? Keep in mind, that fmincon is local search, you might end up in one or the other local minima.
Muna Tageldin
on 22 Sep 2020
Muna Tageldin
on 23 Sep 2020
Mario Malic
on 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);
Answers (0)
Categories
Find more on Solver Outputs and Iterative Display in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!