call function in fmicon optimization failing
古いコメントを表示
Hi guys, I have 4 functions where each one is derived from previous one. When I call the last one (revenue.m) I got an error using fmincon. Any clue? I want to optimize in respect to x0 that is present in each function. Many Thanks! Here is my code:
%% Total out flow equation T = zeros([N,M]); S=zeros([N,M]); for i = 1:M
R(:,i)=revenue(price(:,1),HH(:,i),ro,g,eff,x0(:,i),N,k1);
options = optimset('MaxFunEvals',Inf,'MaxIter',50,...
'Algorithm','interior-point','Display','iter');
tic
[x(:,i),fval(:,i)] = fmincon(@revenue,x0(1:2*N,i),A,b(:,i),Aeq,beq(:,i),LB(:,i),UB(:,i),[],options); %good
toc
end
with revenue fun being:
function R=revenue(price,HH,ro,g,eff,x0,N,k1)
R= -sum(price.*((HH*ro*g*eff).*x0(1:N))/k1);
end
% saved as revenue.m
Error msg:
Not enough input arguments.
Error in revenue (line 5)
R= -sum(price.*((HH*ro*g*eff).*x0(1:N))/k1);
Error in fmincon (line 535)
initVals.f = feval(funfcn{3},X,varargin{:});
Caused by:
Failure in initial objective function evaluation. FMINCON cannot continue.
end
4 件のコメント
Torsten
2018 年 5 月 25 日
fmincon expects "revenue" to be of the form
function R=revenue(x)
where x is the vector of unknowns.
Your function has the form
function R=revenue(price,HH,ro,g,eff,x0,N,k1)
sensation
2018 年 5 月 25 日
Torsten
2018 年 5 月 25 日
What is the "x" in your list that fmincon expects ? Is it x0 ?
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Optimization Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!