我要用matlab中的fminsearch函数求二元函数f(x,y)=1/((x-1)^2+0.16)+1/((x-1)^2+0.16)的极值

只这是我写的程序:f=@(x,y) 1./((x-1).^2+0.16)+1./((y-4).^2+0.16);
x=-1:0.1:3;
y=3:0.1:5;
[X,Y]=meshgrid(x,y);
z=f(X,Y);
mesh(X,Y,z);
opt=optimset('display','iter');
[xy,z,exitflag]=fminsearch(f,[2.5,3.5],opt)
运行后出错
??? Input argument "y" is undefined.

Error in ==> fminsearch at 175
fv(:,1) = funfcn(x,varargin{:});
请问是什么原因?
谢谢

第1个回答  2011-07-17
第一行函数:
f=@(x) 1./((x(1)-1).^2+0.16)+1./((x(2)-4).^2+0.16);
matlab 默认矩阵形式的本回答被提问者采纳
第2个回答  2011-07-14
f=@(x,y) 1./((x-1).^2+0.16)+1./((y-4).^2+0.16);
x=-1:0.1:3;
y=3:0.1:5;
[X,Y]=meshgrid(x,y);
z=f(X,Y);
mesh(X,Y,z);
opt=optimset('display','iter');
[xy,z,exitflag]=fminsearch(f,[2.5,3.5],opt)
相似回答