Matlab中用fminsearch函数寻找最小值

Matlab中用fminsearch函数寻找最小值的时候我的程序是这样的,请问一下,哪里有问题
>> f=@(x,y)1./((x-1).^2+0.16)+1./((y-4).^2+0.16);
>> opt=optimset('Display','iter');
>> [xy,z,exitflag]=fminsearch(f,[2.5,3.5],opt)
错误使用 @(x,y)1./((x-1).^2+0.16)+1./((y-4).^2+0.16)
输入参数的数目不足。

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

f=@(x)1./((x(1)-1).^2+0.16)+1./((x(2)-4).^2+0.16);
opt=optimset('Display','iter');
[xy,z,exitflag]=fminsearch(f,[2.5,3.5],opt)

追问

请问为什么用x和y就不行呢

追答

因为默认就是以向量形式输入的,即x(1),x (2),x(3),...

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答