I couldn't understand what was wrong with the following code of mine,
main.m
x = -5:0.1:5;y = schaffer2(x);plot(x,y(:,1),'.r'); hold onplot(x,y(:,2),'.b');lb = -5;ub = 5; fminuncOptions = optimoptions(@fminunc, ... 'Display','iter', ... 'Algorithm','quasi-newton');options = optimoptions('HybridFcn',{@fminunc, fminuncOptions});options = optimoptions(options, 'gamultiobj', ... 'PopulationSize',60, ... 'PlotFcns',@gaplotpareto);[x,f,exitflag] = gamultiobj(@schaffer2,1,[],[],[],[],lb,ub,options);
This code is generating the following error,
>> mainError using optimoptions (line 114)Invalid solver specified. Provide a solver name or handle (such as 'fmincon' or @fminunc).Type DOC OPTIMOPTIONS for a list of solvers.Error in main (line 15)options = optimoptions('HybridFcn',{@fminunc, fminuncOptions});>>
Can somebody explain why is this code generating error?
_____
schaffer2.m
function y = schaffer2(x) % y has two columns
% Initialize y for two objectives and for all x
y = zeros(length(x),2); % ready for vectorization
% Evaluate first objective.
% This objective is piecewise continuous.
for i = 1:length(x) if x(i) <= 1 y(i,1) = -x(i); elseif x(i) <=3 y(i,1) = x(i) -2; elseif x(i) <=4 y(i,1) = 4 - x(i); else y(i,1) = x(i) - 4; endend% Evaluate second objective
y(:,2) = (x -5).^2;
Best Answer