Вы должны использовать другой синтаксис fmincon
:
fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
Затем, если вы хотите ограничить только одно из значений, вы можете использовать эти границы:
lb = [1 -Inf -Inf];
ub = [1 Inf Inf];
Поскольку вам также необходимо указать входные данные Aeq
и beq
, не забудьте, что вы можете использовать []
для любых входов, которые вы не хотите / не должны указывать, как показано в this пример в документации:
fun = @(x)1+x(1)./(1+x(2)) - 3*x(1).*x(2) + x(2).*(1+x(1));
lb = [0,0];
ub = [1,2];
A = [];
b = [];
Aeq = [];
beq = [];
x0 = [0.5,1];
[x,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)