Plot Results of objective function in fmincon

63 ビュー (過去 30 日間)
Amanuel Negash
Amanuel Negash 2020 年 11 月 21 日
コメント済み: Athul Prakash 2020 年 11 月 24 日
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);
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!




Community Treasure Hunt

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

Start Hunting!

Translated by