Matlab最小二乘法曲线拟合的应用实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB机械工程
最小二乘法曲线拟合的应用实例
班级:
姓名:
学号:
指导教师:
一,实验目的
通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法
二,实验内容
1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求:
对该数据进行合理的最小二乘法数据拟合得下列数据。
x=[10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 2 0000 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,17 4.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
四.输出图像