Plot Results of objective function in fmincon

35 次查看(过去 30 天)
I have t he following objective function
function [ratiioOfID,Breciprocal]= objective(x)
then I have my main script that calls fmincon as following
lb = [1000*10^(-9),1000*10^(-9),10^(-9),10^(-9)];
ub = [100000*10^(-9),100000*10^(-9),50000*10^(-9),50000*10^(-9)];
A = [];
b = [];
Aeq = [];
beq = [];
x0 =[14.65*10^(-6),98.5*10^(-6),6.8*10^(-6),0.56*10^(-6)] ;
options = optimset('TolCon',1e-18,'TolX',1e-19,'PlotFcns',@optimplotfval);
[a,b]=fmincon(@objective,x0,A,b,Aeq,beq,lb,ub,@Filter_function,options);
I want to plot ratiioOfID vs Breciprocal. however this plot gives the following figure and the figure is giving me iteration vs some value. I want to plot the results of ratiioOfID vs Breciprocal. Any help appriciated
  1 个评论
Athul Prakash
Athul Prakash 2020-11-24
I have suggested a solution in my answer below. However, it is not clear how the outputs of your Obj. fun relate to the optimization being performed. objfun should return a single scalar value, which fmincon then tries to minimize. However, objective() in your code returns 2 values and in my experience, fmincon ignores the second output and minimizes the first output value alone (just ratioOfID and doesn't optimize for Breciprocal)
The "some value" that you referred to for the y-axis in your plot may be the value of the first output ratioOfID as it is being optimized over many iterations of the solver running.
Walking through the documentation for 'fmincon' may help you.
Hope it helps!

请先登录,再进行评论。

回答(1 个)

Athul Prakash
Athul Prakash 2020-11-24
Hi Amanuel,
@optimplotfval is designed to plot the output of the Objective Function against the number of iterations.
In your case, you may write a custom plotting function and pass that instead of optimplotfval. The syntax of writing a cusotm plot function is described in this doc:
Also have a look at plot functions here:
Hope it helps!

类别

Help CenterFile Exchange 中查找有关 Nonlinear Optimization 的更多信息

产品


版本

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by