课程设计名称: 设计二:数据拟合 指导教师: 张莉 课程设计时数: 6 课程设计设备:安装了Matlab、C++软件的计算机 课程设计日期: 实验地点: 第五教学楼北902 课程设计目的:
1. 了解最小二乘拟合的原理,掌握用MATLAB作最小二乘拟合的方法; 2. 学会利用曲线拟合的方法建立数学模型。
课程设计准备:
1. 在开始本实验之前,请回顾相关内容;
2. 需要一台准备安装Windows XP Professional操作系统和装有数学软件的计算机。
课程设计内容及要求
要求:设计过程必须包括问题的简要叙述、问题分析、实验程序及注释、实验数据及结果分析和实验结
论几个主要部分。
1. 用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度,在一定的时间测量刀具的厚度,得数据如表所示,请选用合适的函数来描述切削时间与刀具厚度的关系。 切削时间t/h 0 1 29.1 9 26.8 2 29.8 10 26.5 3 28.1 11 26.3 4 28.0 12 26.1 5 27.7 13 25.7 6 27.5 14 25.3 7 27.2 15 24.8 刀具厚度y/cm 30.0 切削时间t/h 8 刀具厚度y/cm 27.0 首先对数据进行分析,画出离散的点,观察点近似的曲线:
t=0:1:15;
y=[30.0 29.1 29.8 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8]; plot(t,y,'r*')
专业知识整理分享
WORD格式可编辑
30292827262524051015
判断出曲线是近似直线函数,所以对数据进行测试可以做三次函数拟合:
t=0:1:15;
y=[30.0 29.1 29.8 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8]; %plot(t,y,'r*') A=polyfit(t,y,3) z=polyval(A,t); plot(t,y,'r*',t,z,'b')
3130292827262524051015
专业知识整理分享
WORD格式可编辑
拟合结果: A =
-0.3099 29.5676
拟合函数为:y=-0.3099t+29.5676
2. Malthus人口指数增长模型 年 人口(亿) 年 人口(亿) 年 人口(亿) 1790 3.9 1870 38.6 1950 150.7 1800 5.3 1880 50.2 1960 179.3 1810 7.2 1890 62.9 1970 204.0 1820 9.6 1900 76.0 1980 226.5 1830 12.9 1910 92.0 1990 251.4 1840 17.1 1920 106.5 2000 281.4 1850 23.2 1930 123.2 1860 31.4 1940 131.7 用以上数据检验马尔萨斯人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进。 首先对数据进行分析,画出离散的点,观察点近似的曲线:
x=1790:10:2000;
y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4]; plot(x,y,'r*')
专业知识整理分享
WORD格式可编辑
300250200150100500050100150200250
判断出曲线是近似抛物线函数,所以对数据进行二次函数拟合:
x=1:10:220;
y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4]; %plot(x,y,'r*') A=polyfit(x,y,2); z=polyval(A,x); plot(x,y,'r*',x,z,'b') y=poly2str(A,'x')
专业知识整理分享
WORD格式可编辑
300250200150100500050100150200250
拟合函数结果: y =
0.0067365 x^2 - 0.13636 x + 6.4212
3.价格预测
美国旧车价格的调查数据
xi 1 2615 2 1943 3 1494 4 1087 5 765 6 538 7 484 8 290 9 226 10 204 yi 分析用什么形式的曲线来拟合数据,并预测使用4、5年后的旧车平均价格大致为多少。 首先对数据进行分析,画出离散的点,观察点近似的曲线:
x=1:1:10;
y=[2615 1943 1494 1087 765 538 484 290 226 204]; plot(x,y,'r*')
专业知识整理分享
WORD格式可编辑
30002500200015001000500012345678910
判断出曲线是近似多次函数,所以对数据进行三次函数拟合:
x=1:1:10;
y=[2615 1943 1494 1087 765 538 484 290 226 204]; %plot(x,y,'r*') A=polyfit(x,y,3); z=polyval(A,x); plot(x,y,'r*',x,z,'b') y=poly2str(A,'x')
30002500200015001000500012345678910
拟合结果:
专业知识整理分享
WORD格式可编辑
y =
-2.6548 x^3 + 79.9522 x^2 - 852.8324 x + 3380.1 预测4、5年后的旧车价格为:
>>y= -2.6548 *4^3 + 79.9522* 4^2 - 852.8324* 4 + 3380.1 y =
1.0781e+003
>> y= -2.6548 *5^3 + 79.9522* 5^2 - 852.8324* 5 + 3380.1 y = 782.8930
4.用最小二乘法求一个形如yabx2的经验公式,数据如下:
x y 19 19.0 25 32.3 31 49.0 38 73.3 44 98.8
x=[19,25,31,38,44];
y=[19.0,32.3,49.0,73.3,97.8];
fun1=inline('c(1)+c(2)*x.^2','c','x'); %拟合函数 k=[0 0];
c=lsqcurvefit(fun1,k,x,y) %求拟合系数
['y=',num2str(c(1)),'+',num2str(c(2)),'x^2']%拟合函数表达式 y1=c(1)+c(2)*x.^2; %拟合函数表达式值
plot (x,y,'b*', x, y1,'r-');%绘制x,y点与拟合函数,比较拟合程度
专业知识整理分享
WORD格式可编辑
10090807060504030201015202530354045
实验结果如下:
Optimization terminated: first-order optimality less than OPTIONS.TolFun, and no negative/zero curvature detected in trust region model. c =
0.9726 0.0500 ans =
y=0.97258+0.050035x^2
专业知识整理分享
WORD格式可编辑
课程设计总结: 这次实验主要讲的是数据的拟合,对数据的处理首先是观察图像在近似拟合,有的函数掌握的还不够彻底,需要查阅资料才能完成,以后遇到这种问题会更加仔
细,有些错误的地方还希望老师指出,再加以改进,谢谢!
专业知识整理分享
因篇幅问题不能全部显示,请点此查看更多更全内容