MATLAB: Finding Pareto Front of Shaffer’s 2nd function.

optimization

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 on
plot(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,
>> main
Error 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;
end
end
% Evaluate second objective
y(:,2) = (x -5).^2;

Best Answer

options = optimoptions(@gamultiobj, 'HybridFcn',{@fminunc, fminuncOptions});