0
我尝试在fmincon优化器中强加一个非线性约束。问题是只有当其中一个参数为负时,非线性约束才应该是相关的。该代码是这样的:非线性约束条件参数matlab
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
,并寻找最佳的这种非线性过程约束被违反。 有人请指出我是否没有正确定义非线性条件约束?
你能告诉你如何调用你的函数吗?因为它没有显示足够的代码。 'x = fmincon(..,..,..,..,'),并且包括所有参数的定义将会有所帮助。 – Floris