slp error matlab function

1 view (last 30 days)
Ous Chkiri
Ous Chkiri on 8 Mar 2021
Edited: Ous Chkiri on 8 Mar 2021
I have error on my code.This slp method to minimize function
clear;
clc;
x=[1;1];
dxlb=[-1;-1];
dxub=[1;1];
Tolx=0.01;
TolCon=0.01;
[f,g]=f_SLPclass(x);
[gradf,gradg]=g_SLPclass(x);
coverged=false;
iter=0;
while converged
c=gradf';
a=gradg';
b=-g;
dx=linprog(c,a,b,[],[],dxlb,dxub);
x=x+dx;
[f,g]=f_SLPclass(x);
[gradf,gradg]=g_SLPclass(x);
iter=iter+1;
converged=max(abs(dx)<Tolx)&& max(g)<TolCon;
end
fprintf('\n number of iteration %f\n',iter);
fprintf('\n Optimum Point: (%f,%f,%f,%f,%f)\n',x1,x2,x3,x4,x5);
  2 Comments
Matt J
Matt J on 8 Mar 2021
What error?
Ous Chkiri
Ous Chkiri on 8 Mar 2021
Error using SLP>f_SLPclass
Too many output arguments.
Error in SLP (line 8)
[f,g]=f_SLPclass(x);

Sign in to comment.

Accepted Answer

Matt J
Matt J on 8 Mar 2021
Edited: Matt J on 8 Mar 2021
Your functions f_ and g_SLPclass have missing parts.
function [f,g]=f_SLPclass(x) %return outputs
assert(length(x)==5, "x should be 5 elements long, but instead it is length " + length(x));
xcell=num2cell(x);
[x1,x2,x3,x4,x5]= deal(xcell{:});
f=0.0624*(x1+x2+x3+x4+x5);
g=-1+61/x1^3 +37/x2^3 +19/x3^3 +7/x4^3 +1/x5^3;
end
  6 Comments
Matt J
Matt J on 8 Mar 2021
Edited: Matt J on 8 Mar 2021
Ous Chkiri
Ous Chkiri on 8 Mar 2021
Yes your right Sorry. It gives another error

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!