Я пытаюсь решить проблему оптимизации в MATLAB с помощью функции fmincon, но возникает проблема с нелинейными ограничениями, поскольку MATLAB сообщает, что не хватает входных аргументов.
Это моя функция nlcon:
function [c,ceq] = nlcon(w_md2,std)
c =[];
ceq = w_md2'*std-1;
end
это выполнение fmincon:
covMat = cov(mon_ret) ;
[corMat, std] = corrcov(covMat);
w0 = repmat(n1, port_size, 1);
md2function = @(w_md2) md2(covMat, w_md2);
nonlincon = @nlcon;
w_md_2 = fmincon(md2function, w0, [], [], Aeq, Beq, lbnds, ubnds, nonlincon)
и это ошибка:
Not enough input arguments.
Error in nlcon (line 3)
ceq = w_md2'*std-1;
Error in fmincon (line 639)
[ctmp,ceqtmp] = feval(confcn{3},X,varargin{:});
Error in main (line 60)
w_md_2 = fmincon(md2function, w0, ...
Caused by:
Failure in initial nonlinear constraint function evaluation. FMINCON cannot continue.
Был бы очень рад, если бы кто-то мог помочь, поскольку я совсем новичок в MATLAB.
С наилучшими пожеланиями