1 view (last 30 days)

Show older comments

My fitness function is as below:

function out=myfitness(b)

u = [1 2 3 4];

out1 = u-b;

out = sum(out1.^2,2);

end

When I use the following code

clear all

clc

FUN = @myfitness;

%OPTIONS =optimoptions('fmincon','Algorithm','sqp'); % For SQP

%OPTIONS =optimoptions('fmincon','Algorithm','sqp-legacy'); % For SQP-Legacy

%OPTIONS =optimoptions('fmincon','Algorithm','trust-region-reflective'); % For Trust-region reflective

OPTIONS =optimoptions('fmincon','Algorithm','active-set'); % For Active Set

xo = [pi/2 pi/2 pi/2 pi/2]; % Starting point

%[x,fval] = patternsearch(ObjectiveFunction,x0); % For patternsearch

[x,fval,exitflag,output]= fmincon(FUN,xo);

It gives me my result. But when I check output variable "output", I see that each time "interior-point" is written in the algorithm inspite of the fact I use active-set or sqp or sqp-legacy i.e.,

output =

struct with fields:

iterations: 2

funcCount: 15

constrviolation: 0

stepsize: 2.9075

algorithm: 'interior-point'

firstorderopt: 3.9890e-08

cgiterations: 0

message: 'Local minimum found that satisfies the constra…'

Why it is so?

Alan Weiss
on 22 Apr 2021

You didn't pass the options to fmincon.

[x,fval,exitflag,output]= fmincon(FUN,xo,[],[],[],[],[],[],[],OPTIONS);

Alan Weiss

MATLAB mathematical toolbox documentation

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

Start Hunting!