Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-07-06
年龄: 40
帖子: 11
声望力: 17 ![]() |
![]()
自定义拟合数据时的问题:
本人在自定义拟合函数时,想要设定拟合的限定条件,比如说想使得拟合前、后的质量大致的相等,有个想法是,在拟合的时候如果说是这次拟合的质量与拟合前的质量差大于上次拟合的质量差,那么拟合方向朝着上次的发展,这个在程序中如何实现呢 ,望高手赐教,不甚感激~ 其次,由于本人每次都要拟合很多数据,目前的这个程序要花费很多的时间,所以也烦请赐教下如何更改程序而使得程序的运行效率提高呢? clear,clc fid1=fopen('b3andb25603.txt','w'); fid2=fopen('bandR25603.txt','w'); x=0.2:0.2:4.8; y=[ 455.229 52.765 35.212 40.566 45.549 26.638 7.783 9.97 5.051 4.171 3.681 0.501 0 0 0 0 0 0 0 0 0 0 0 0 407.451 84.16 17.786 26.998 43.44 39.725 15.89 8.549 6.81 6.118 2.169 0.919 0.441 0 0 0 0 0 0 0 0 0 0 0 220.457 64.813 28.326 31.582 43.862 29.885 8.756 6.486 3.541 7.392 1.687 0.23 0.441 0 0 0 0 0 0 0 0 0 0 0 188.963 50.099 31.619 26.381 36.226 12.43 6.145 4.282 1.892 2.254 0 0.29 0.279 0 0.131 0 0 0 0 0 0 0 0 0 184.464 48.644 10.163 14.263 28.438 11.246 10.007 2.864 2.802 1.748 0.551 0.263 0.126 0 0.118 0 0 0 0 0 0 0 0 0]; x=x(: ); for i=1:1:5 yy=y(i, : ); yy=yy( : ); M(i)=3.1415926/6.0*y(i, : )*x( : ) %质量,拟合前的质量 SSy(i)=var(yy)*(length(yy)-1); fx1=@(b,x)b(1)*x.^b(2).*exp(-b(3)*x); b=rand(1,3); for l=1:500 % while(1) b=lsqcurvefit(fx1,b,x,yy); b=nlinfit(x,yy,fx1,b); ynext=fx1(b,x); Mfit(i)=3.1415926/6.0*ynext( : )'*x( : ) ; errm(i)=M(i)-Mfit(i); RSS(i)=(yy-ynext)'*(yy-ynext); R(i)=(SSy(i)-RSS(i))/SSy(i); a(i,4)=R(i); if abs(errm(i))<=M(i)*0.2 | l==500 a(i,1)=b(1); a(i,2)=b(2); a(i,3)=b(3); a(i,4)=R(i); c(i,1)=M(i); c(i,2)=Mfit(i); c(i,3)=errm(i)/M(i); cc(i)=errm(i)/M(i); break end end end gg=[M ;errm;cc ] for i=1:5 fprintf(fid1,'%20.8f %20.8f \n',a(i,3),a(i,2)); fprintf(fid2,'%30.8f %30.8f %30.8f %20.8f \n',a(i, : )); end 不好意思,因为一直提示说图片过多,所以把当中程序中的:号改成了中文输入形式 此帖于 2009-04-20 22:30 被 toumingyouyou 编辑。 原因: 输入 |
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[资料] | lbc898 | MATLAB论坛 | 0 | 2009-03-16 18:52 |
[求助]请问这种图怎么画 | yape14 | MATLAB论坛 | 4 | 2008-09-22 09:04 |
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 | yijianmei | MATLAB论坛 | 1 | 2008-07-24 10:15 |
仪表信息图像采集处理研究 | liuna2008 | MATLAB论坛 | 0 | 2008-04-12 18:53 |
Simplify Instrument Communication: Using Instrument Drivers with the Instrument Contr | TechnicalArticles | MATLAB技术文章 | 0 | 2008-01-06 16:32 |