文档详情

Matlab最小二乘法曲线拟合的应用实例.doc

发布:2019-07-15约1.53千字共6页下载文档
文本预览下载声明
MATLAB机械工程 最小二乘法曲线拟合的应用实例 班 级: 姓 名: 学 号: 指导教师: 一,实验目的? 通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法? 二,实验内容? 1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求: 对该数据进行合理的最小二乘法数据拟合得下列数据。 ?x=[10000?11000?12000?13000?14000?15000?16000?17000?18000?19000?20000?21000?22000?23000];? y=[24.0?26.5?29.8?32.4?34.7?37.7?41.1?42.8?44.6?47.3?65.8?87.5?137.8?174.2]? 三,程序如下 X=10000:1000:23000; Y=[24.0,26.5,29.8,32.4,34.7,37.7,41.1,42.8,44.6,47.3,65.8,87.5,137.8,174.2] dy=1.5; %拟合数据y的步长 for n=1:6 [a,S]=polyfit(x,y,n); A{n}=a; da=dy*sqrt(diag(inv(S.R′*S.R))); Da{n}=da′; freedom(n)=S.df; [ye,delta]=polyval(a,x,S); YE{n}=ye; D{n}=delta; chi2(n)=sum((y-ye).^2)/dy/dy; end Q=1-chi2cdf(chi2,freedom); %判断拟合良好度 clf,shg subplot(1,2,1),plot(1:6,abs(chi2-freedom),‘b’) xlabel(‘阶次’),title(‘chi2与自由度’) subplot(1,2,2),plot(1:6,Q,‘r’,1:6,ones(1,6)*0.5) xlabel(‘阶次’),title(‘Q与0.5线’) nod=input(‘根据图形选择适当的阶次(请输入数值)’); elf,shg, plot(x,y,‘kx’);xlabel(‘x’),ylabel(‘y’); axis([8000,23000,20.0,174.2]);hold on errorbar(x,YE{nod},D{nod},‘r’);hold off title(‘较适当阶次的拟合’) text(10000,150.0,[‘chi2=’num2str(chi2(nod))‘~’int2str(freedom(nod))]) text(10000,140.0,[‘freedom=’int2str(freedom(nod))]) text(20000,40.0,[‘Q=’num2str(Q(nod))‘~0.5’]) disp(‘’) disp(‘拟合多项式系数’),disp(A{nod}) disp(‘拟合系数的离差’),disp(DA{nod}) 运行结果分为两个阶段,第一阶段先判断拟合度,第二阶段根据拟合度,选择合适的拟合阶次,再绘出拟合结果。 运行结果如下: 根据图形选择适当的阶次(请输入数值)4 拟合多项式系数 0.0000 -0.0000 0.0000 -0.1609 504.2295 拟合系数的离差 0.0000 0.0000 0.0000 0.0399 153.3130 四.输出图像
显示全部
相似文档