|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
<P>曲线拟合的程序如下:(摘至《精通matlab6.5》)<br><A>% </A>被拟合的原始数据<br>x=0:0.1:1;y=[2.1,2.3,2.5,2.9,3.2,3.3,3.8,4.1,4.9,5.4,5.8];<br>dy=0.15; % 原数据 y 的标准差<br>for n=1:6 % 依次用 1 到 6 阶多项式去拟合<br>[a,S]=polyfit(x,y,n); % 计算拟合多项式系数<br>A{n}=a; % 用元胞数组记录不同阶次多项式的系数<br>da=dy*sqrt(diag(inv(S.R'*S.R))); % 计算各系数的误差<br>DA{n}=da'; % 用元胞数组记录不同阶次多项式系数的误差<br>freedom(n)=S.df; % 记录自由度<br>[ye,delta]=polyval(a,x,S); % 计算拟合多项式值的范围<br>YE{n}=ye; % 用元胞数组记录不同阶次拟合多项式的均值<br>D{n}=delta; % 用元胞数组记录不同阶次拟合多项式的离差<br>chi2(n)=sum((y-ye).^2)/dy/dy; % 计算不同阶次的 <IMG src="http://www.ddvip.net/machine/matlab/index1/img_matlab/30/30_clip_image002_0000.gif">量。<br>end<br>Q=1-chi2cdf(chi2,freedom); % 用于判断拟合良好度<br>% 适当度的图示<br>subplot(1,2,1),plot(1:6,abs(chi2-freedom),'b')<br>xlabel(' 阶次 '),title('chi 2 与自由度 ')<br>subplot(1,2,2),plot(1:6,Q,'r',1:6,ones(1,6)*0.5)<br>xlabel(' 阶次 '),title('Q 与 0.5 线 ')<br></P>
<P><A>% </A>适当的三阶多项式拟合情况图示<br>clf,plot(x,y,'b+');axis([0,1,1,6]);hold on<br>errorbar(x,YE{3},D{3},'r');hold off<br>title(' 较适当的三阶拟合 ')<br>text(0.1,5.5,['chi2=' num2str(chi2(3)) '~' int2str(freedom(3))])<br>text(0.1,5,['freedom=' int2str(freedom(3))])<br>text(0.6,1.7,['Q=' num2str(Q(3)) '~0.5'])</P>
<P><br><br>请问高手:原数据 y 的标准差是怎么确定的???????????<br>毕业设计急用!!<br></P>[em06][em06][em06][em06][em06][em06]
[此贴子已经被cdwxg于2006-6-1 1:39:53编辑过]
|
|