fminsearch 多个参数 matlab

fminsearch multiple parameters matlab

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

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

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

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