his is my code for the objective function
function y = T(x,c)% this is the objective function
if x(1)^2-x(2)+1 <= 0 y = x(1)^2 + x(2)^2;elseif x(1)^2-x(2)+1 > 0 if c == 1 y = x(1)^2 + x(2)^2 + (1/2)*(x(1)^2-x(2)+1)^2; elseif c == 10 y = x(1)^2 + x(2)^2 + (10/2)*(x(1)^2-x(2)+1)^2; elseif c == 100 y = x(1)^2 + x(2)^2 + (100/2)*(x(1)^2-x(2)+1)^2; endend
And here is my script file in trying to obtain optimal values near global optimum by following the example in this link https://uk.mathworks.com/help/gads/optimize-using-particle-swarm-optimization.html
fun = @T;n = 2;rng default[x,fval,exitflag] = particleswarm(fun,n)lb = [-50;-50];ub = -lb;[x,fval,exitflag] = particleswarm(fun,n,lb,ub)options = optimoptions('particleswarm','SwarmSize',100);[x,fval,exitflag] = particleswarm(fun,n,lb,ub,options)options.HybridFCn= @fmincon;[x,fval,exitflag] = particleswarm(fun,n,lb,ub,options)
after executing the file i get these errors
Error using particleswarm>makeState (line 700)Failure in initial objective function evaluation. PARTICLESWARM cannotcontinue.Error in particleswarm>pswcore (line 170)state = makeState(nvars,lbMatrix,ubMatrix,objFcn,options);Error in particleswarm (line 152)[x,fval,exitFlag,output] =pswcore(objFcn,nvars,lbRow,ubRow,output,options);Error in question_7b (line 5)[x,fval,exitflag] = particleswarm(fun,n)Caused by: Not enough input arguments.
Best Answer