MATLAB优化工具箱如何得到每次迭代的目标函数值

2025-10-25 08:43:05

1、创建output function

%%% 代码

% state.Generation 当前代数

% state.Score 种群的目标函数值

function [state, options,optchanged] = outfun(options,state,flag)

optchanged = false;

switch flag

 case 'init'

        disp('Starting the algorithm');

    case {'iter','interrupt'}

        plot(state.Generation,min(state.Score(:,1)),'.');

        hold on;

        disp('Iterating ...');

        disp(state.Generation);

    case 'done'

        disp('Performing final task');

end

%%%

2、创建options

在optimset中加入'OutputFcn', @outfun

%%% 

options = optimset('OutputFcn', @outfun);

%%%

3、运行程序

[x,fval,flag,output,population] = gamultiobj(@objfun,nvars,...

                                             [],[],[],[],lb,ub,options);

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢