fmincon オプティマイザーで非線形制約を課そうとしています。問題は、パラメーターの 1 つが負の場合にのみ、非線形制約が関連する必要があることです。コードは次のようになります。
function [c, ceq] = confun_Model11(param)
% Nonlinear inequality constraints: c(x)<=0
if param(6)<0
c = (-4)*param(5)*param(7) + param(6)^2+eps;
else
c = [];
end
%Nonlinear equality constraints: ceq(x)=0
ceq = [];
end
問題は、たとえば、診断オプションを使用すると、Matlab が非線形制約がないと言うことです。
Constraints
Number of nonlinear inequality constraints: 0
Number of nonlinear equality constraints: 0
また、最適化の検索中に、この非線形制約に違反します。非線形条件付き制約を適切に定義していない場合、誰かが指摘できますか?