fminsearch matlab多参数

时间:2015-01-22 23:34:40

标签: matlab optimization arguments fminsearch

我尝试使用带有多个参数的fminsearch,但我似乎无法使用两个参数。我也试过在matlab中使用优化工具,但后来我得到了:

Optimization running.
Error running optimization.
Not enough input arguments. 

我做什么:

fval = fminsearch(@g,[1 1])

函数g如下所示:

function r=g(x,y)
   r=x.^3+3*x*y.^2+12*x*y;
end

但我明白了:

Error using g (line 2)
Not enough input arguments.

Error in fminsearch (line 190)
fv(:,1) = funfcn(x,varargin{:});

1 个答案:

答案 0 :(得分:3)

您的函数g需要两个输入,xy,但是您提供了fminsearch个输入,即向量[1 1]。您需要重写它,以便fminsearch只需要一个矢量作为输入,但然后该矢量被分成两个数字输入g

fminsearch(@(v) g(v(1),v(2)),[1 1])

这使得一个匿名函数将一个向量作为输入(v),然后使用第一个元素(v(1))作为g的第一个输入,第二个元素作为第二个输入。