没有足够的输入参数fminsearch

时间:2015-02-20 02:41:30

标签: matlab

我正在尝试在MATLAB中编写一个脚本,使用网格函数绘制三维函数,然后找到曲面的最大值。到目前为止,这是我的代码:

%% Aquifer, 3D maximum search
figure(2)
[X,Y] = meshgrid(-10:.5:10,-10:.5:10);
h = @(x,y)-(1./(1+(x-.25).^2+(y-.5).^2+x+x.*y));
mesh(h(X,Y)) %graph aquifer surface

aquamax = fminsearch(h,[-5;-5])

当我运行代码时,我收到此错误:

Error using @(x,y)-(1./(1+(x-.25).^2+(y-.5).^2+x+x.*y))
Not enough input arguments.

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

我已经阅读了fminsearch函数,但我对它并不熟悉(在Matlab上仍然是一个菜鸟)。我是否需要重新编写代码,或者我是如何将内容输入到fminsearch中的?

1 个答案:

答案 0 :(得分:0)

您的h函数需要2个标量输入,但fminsearch只能输入一个输入,可能是矢量。将h更改为h = @(x)-(1./(1+(x(1)-.25).^2+(x(2)-.5).^2+x(1)+x(1).*x(2)));,看看是否有效。