Maximize function with constraints using fmincon
Show older comments
Hi guys, I want to max a function with constraints. I think fmincon would work but I don't know how to write it that it works.
function [s] = objectfun1(w)
%thats the function, where w is unkown wheight vector of
%10 assets and M3 is constant CoskewnessMatrix
s = w'*M3*kron(w,w);s=-s;
end
x0=zeros(10,1);
Aeq=[1 1 1 1 1 1 1 1 1 1];
beq=1;
lb=zeros(10,1);
ub=ones(10,1);
w=fmincon(@objectfun1, x0, [], [], Aeq, beq,lb,ub)
Errors : _ _Undefined function or variable 'M3'.
Error in objectfun1 (line 3)
s = w'*M3*kron(w,w);s=-s;
Error in fmincon (line 545)
initVals.f = feval(funfcn{3},X,varargin{:});
Error in testSkew (line 7)
w = fmincon(@objectfun1,zeros(10,1),[],[],[1 1 1 1 1 1 1 1 1 1],1,zeros(10,1),ones(10,1));
Caused by:
Failure in initial user-supplied objective function evaluation. FMINCON cannot continue._ _
It should give me Max s and the coresponding weight vector. I would be glad for any help or the correct code :)
1 Comment
It would be a little bit computationally cheaper to write the objective function as
function [s] = objectfun1(w)
n=length(w);
tmp=w.'*M3;
s = -(w.'*reshape(tmp,n,n)*w);
end
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!