haohaoljf 发表于 2006-6-1 16:59

[求助]最小二乘曲线拟合中一个小问题!!(有程序)

<P>曲线拟合的程序如下:(摘至《精通matlab6.5》)<BR><A><FONT color=#003366>% </FONT></A>被拟合的原始数据<BR>x=0:0.1:1;y=;<BR><FONT color=#ff3300>dy=0.15; % 原数据 y 的标准差<BR></FONT>for n=1:6 % 依次用 1 到 6 阶多项式去拟合<BR>=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>=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><FONT color=#003366>% </FONT></A>适当的三阶多项式拟合情况图示<BR>clf,plot(x,y,'b+');axis();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'])<BR><BR>哪个高手能帮我解决一下<FONT color=#e6421a size=5>dy=0.15是怎么的来的<BR>原数据y的标准差根据std(y)好象不是这么多啊!<BR>我就郁闷啊,毕业设计就要结束了,跪请哪位高手帮忙解决一下!!<BR></FONT></P>

ericlin 发表于 2006-6-2 12:16

<P>也有可能是作者笔误吧?</P>

haohaoljf 发表于 2006-6-3 16:04

回复:(ericlin)也有可能是作者笔误吧?

<P>但运行没有错误的!!</P>
页: [1]
查看完整版本: [求助]最小二乘曲线拟合中一个小问题!!(有程序)