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