Solver based optimization passing extra parameters
이전 댓글 표시
My solver function is giving an error: Unrecognized function or variable 'aa'.
c = sum(1./(1+exp(-x))*1./(1+exp(-y')).*(1.-aa),'all') - 0.1;
[ctmp,ceqtmp] = feval(confcn{3},X,varargin{:});
Caused by:
Failure in initial nonlinear constraint function evaluation. FMINCON cannot continue.
Objective function is:
function f = objectiveFcn(optimInput)
x = optimInput(1:8124);
y = optimInput(8125:end);
f = -sum(1./(1+exp(-x))*1./(1+exp(-y')),'all');
end
function [c,ceq] = constraintFcn(optimInput)
x = optimInput(1:8124);
y = optimInput(8125:end);
c = sum(1./(1+exp(-x))*1./(1+exp(-y')).*(1.-aa),'all') - 0.1;
ceq = [];
end
I am using the solver based approach. Can you please tell me how can I pass the 'aa' variable inside the constraint function. I have seen the mathworks page but I couldn't implement it to my case. Can anyone please show me how can I do it for the solver based approach for my case.
답변 (1개)
nonlcon=@(x)constraintFcn(x,aa)
댓글 수: 4
Yagiz Dereboy
2021년 9월 17일
You should be writing this:
aa=something;
nonlcon=@(x)constraintFcn(x,aa);
[solution,objectiveValue] = fmincon(@objectiveFcn,w,[],[],[],[],[],[],...
nonlcon,options4);
Yagiz Dereboy
2021년 9월 17일
Matt J
2021년 9월 17일
If you right-click on the task, you can convert it to editable code:

카테고리
도움말 센터 및 File Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

