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