声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1696|回复: 3

[编程技巧] 求助 : 这段程序怎么改? 最小二乘估计的问题

[复制链接]
发表于 2005-9-19 23:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
<P>%twoexps2.m<BR>funciton  E=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=[1 2]';<BR>y=data(1:100,2:2);  %从EXCEL里到入的。应该没问题。<BR>a0=[1:1:100]';<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&lt;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>&gt; In draw at 9<BR>??? Attempt to execute SCRIPT twoexps2 as a function.</P>
<P>Error in ==&gt; fminsearch at 175<BR>fv(:,1) = funfcn(x,varargin{:});</P>
<P>Error in ==&gt; draw at 10<BR>    a=fminsearch(@twoexps2,a0,options,x,y,b);</P>


<P>请高手帮助,谢谢!<BR></P>
回复
分享到:

使用道具 举报

发表于 2005-9-20 10:57 | 显示全部楼层

回复:(tinytony)求助 : 这段程序怎么改? 最小二乘估...

@twoexps2不对吧,变量twoexps2和文件twoexps2.m冲突了
[此贴子已经被作者于2005-9-20 11:02:38编辑过]

发表于 2005-12-23 09:33 | 显示全部楼层

回复:(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

查看全部评分

发表于 2009-6-18 09:32 | 显示全部楼层
一般在 应用中 多用向量啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 10:09 , Processed in 0.058600 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表