我有一个客观的功能'有趣的'和平等约束' ceq(x)'在' x'(1x2向量)中是非线性的。问题是' ceq'不能直接写入,即它必须使用主代码中定义的一些变量。这是功能代码。
function [c,ceq] = circlecon(x)
c = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2;
ceq = [];
这是主要代码的一部分,我希望找到最佳的' x'。
nonlcon = @circlecon;
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
我想将一些变量从主代码传递给函数' circlecon'并用它们来定义' ceq'。我怎样才能做到这一点?有关详细信息和说明,请查看此链接:Optimisation with non-linear constraints
答案 0 :(得分:0)
尝试类似:
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@(x) nonlcon(x, arg1, arg2)
arg1
,arg2
是额外的参数。请注意,Mathworks已对此进行了详细记录。