1

我正在尝试将 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{:});
4

1 回答 1

3

您的函数g需要两个输入,x但是y您提供fminsearch了一个输入,即 vector [1 1]。您需要重写它,以便fminsearch只需要一个向量作为输入,然后将该向量拆分为两个数字以输入到g.

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

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

于 2015-01-22T23:41:28.193 回答