求助 : 这段程序怎么改? 最小二乘估计的问题
<P>%twoexps2.m<BR>funcitonE=twoexps2(a,x,y,b)<BR>x=x(:);y=y(:);Y=b(1)*exp(-a(1)*x)+b(2)*exp(-a(2)*x);<BR>E=sum((y-Y).^2);</P><P>%draw.m<BR>x=';<BR>y=data(1:100,2:2);%从EXCEL里到入的。应该没问题。<BR>a0=';<BR>options=optimset('fminsearch');<BR>options.TolX=0.001;<BR>options.Display='off';<BR>while 1<BR> Mb=exp(-x*a0');<BR> b=Mb\y;<BR> a=fminsearch(@twoexps2,a0,options,x,y,b);<BR> r=norm(a-a0)/norm(a);<BR> if r<0.001; break; end<BR> a0=a;<BR>end<BR>y_est=b(1)*exp(-a(1)*x)+b(2)*exp(-a(2)*x);<BR>plot(x, y, 'k+');<BR>hold on;<BR>plot(x, y_est, 'r');<BR>hold off;</P>
<P>为什么总是出现:</P>
<P>> In draw at 9<BR>??? Attempt to execute SCRIPT twoexps2 as a function.</P>
<P>Error in ==> fminsearch at 175<BR>fv(:,1) = funfcn(x,varargin{:});</P>
<P>Error in ==> draw at 10<BR> a=fminsearch(@twoexps2,a0,options,x,y,b);</P>
<P>请高手帮助,谢谢!<BR></P>
回复:(tinytony)求助 : 这段程序怎么改? 最小二乘估...
@twoexps2不对吧,变量twoexps2和文件twoexps2.m冲突了[此贴子已经被作者于2005-9-20 11:02:38编辑过]
回复:(tinytony)求助 : 这段程序怎么改? 最小二乘估...
其实这个最小二乘法用矩阵要简单多了。正则方程:设 Y=pX+e:其中<BR>Y=y1 X=1 x1<BR> y2 1 x2 <BR> ... ...<BR> yn 1 xn <BR> <BR>e=e1<BR> e2<BR> ...<BR> en<BR>X,Y,e都是矩阵。<BR>L=X'X<BR>e=L-1X'Y<BR>其中L-1表示L的逆矩阵<BR> <BR><BR> 一般在 应用中 多用向量啊
页:
[1]