求助!!!关于用fminunc函数求极小点的问题!
各位大侠,本人在用fminunc函数求极小点时遇到了如下问题,请各位大侠指教,代码如下:function f = minfun(x)
load C:\MATLAB6p5p1\work\jhf.mat
f1=0;
for i=1:N
f1=f1+beta(i)*exp(-q * ((Samples(1,i)-x(1))^2+(Samples(2,i)-x(2))^2));
end
f=1+quad-2*f1;
其中q,quad,N是数值,Samples是2×104矩阵,beta是104×1矩阵,它们都已经在前面的计算中得出,并且存储在jhf.mat文件中。上面程序就是一个f关于x的函数,我想求f(x)关于x的极小点,所以我在matlab命令窗口中输入如下:
options = optimset('HessUpdate','Steepdesc','LineSearchType','cubicpoly');
x=fminunc('minfun',[0;0],options);
结果出错提示:
??? Error using ==> beta
Not enough input arguments.
Error in ==> C:\Documents and Settings\user\桌面\matlab程序\最速下降SVC\minfun.m
On line 5 ==> f1=f1+beta(i)*exp(-q * ((Samples(1,i)-x(1))^2+(Samples(2,i)-x(2))^2));
Error in ==> C:\MATLAB6p5p1\toolbox\optim\fminunc.m
On line 149 ==> f = feval(funfcn{3},x,varargin{:});
本人不太明白这是怎么回事,请各位大侠指教,不胜感激。
[[it] 本帖最后由 jasonpp 于 2008-10-5 19:36 编辑 [/it]]