我正在使用fmincon()
完成一个示例。
我将目标函数定义为objFun.m
function f=objFun(x)
f = 100*(x(2) - (x(1))^2)^2 + (1 - x(1))^2;
end
定义一个初始点x0x0=[1; -1]
如果我用这个点运行目标函数作为测试我得到
>> objFun(x0)
ans =
400
但是当我尝试在fmincon()
中使用它时
>> [x, fval] = fmincon(objFun, x0, [1;2],1,[],[],[0; -inf],[inf, 0]);
Not enough input arguments.
Error in objFun (line 2)
f = 100*(x(2) - (x(1))^2)^2 + (1 - x(1))^2;
我怀疑我错过了一些很简单的东西,但是什么呢?
1条答案
按热度按时间3htmauhk1#
你需要传递一个句柄给函数
@objFun
而不是函数本身,你的A
和x0
矩阵需要转置,即:具有2列的行,A
中的每一行是另一线性约束。