数学建模实验报告4
时间:2020-09-21 12:45:34 来源:工作范文网 本文已影响 人
PAGE / NUMPAGES
桂林电子科技大学2017-2018学年 第1学期
数学建模
实验名称
实验四、插值与拟合
检查情况:
成绩 教师签名:
院 系
计算机与信息安全学院
专业
计算机科学与技术
学 号
姓名
同 作 者
实验日期
2017
年
12
月
24
日
实验目的
应用matlab处理数据并分析,主要学会并熟练掌握数据拟合和插值。
实验内容
题目1
在化工生产中常常需要知道丙烷在各种温度T和压力P下的导热系数K。下面是实验得到的
一组数据:
T/°C
68
68
87
87
106
106
140
140
K
P/103kPa
9.7981
13.324
9.0078
13.355
9.7918
14.277
9.6563
12.463
0696
K
0.0848
0.0897
0.0762
0.0807
0.0696
0.0753
0.0611
0.0651
0753
试求 T=99/°C和 P=10.3×103 kPa下的K。
p2=[9.0078,13.355]; k2=[0.0762,0.0807]; %T=87℃
p3=[9.7918,14.277]; k3=[0.0696,0.0753]; %T=106℃
a2=polyfit(p2,k2,1); a3=polyfit(p3,k3,1);
x1=polyval(a2,10.3); x2=polyval(a3,10.3); %x1,x2 分别是 P=10.3(103 kPa) 下87℃和 106℃时的 k 值
x=[87,106];y=[x1,x2];
a=polyfit(x,y,1);%求解多项式的系数
z=polyval(a,99)%求解多项式z在x=99下对应的值。
实验结果:
z =
0.0729
题目2
下表给出了某一海域以码为单位的直角坐标Oxy上一点(x,y)(水面一点)以英尺为单位的水深z,水深数据是在低潮时测得的,船的吃水深为5英尺,问在矩形区域 (75,200)x(-50,150) 里那些地方船要避免进入。
x
129
140
103.5
88
185.5
195
105.5
157.5
107.5
77
81
162
162
117.5
y
7.5
141.5
23
147
22.5
137.5
85.5
-6.5
-81
3
56.5
-66.5
84
-33.5
z
4
8
6
8
6
8
8
9
9
8
8
9
4
9
插值法求解:
代码:
x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];
y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];
z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];
cx = 75:0.5:200;
cy = -50:0.5:150;
[cx,cy]=meshgrid(cx,cy);
cz=griddata(x,y,z,cx,cy,'cubic');
%等高线图 红色区域为危险区域,所以船只要避免进入
figure(2)
contour(cx,cy,cz,[-5,-5],'r')
hold on
plot(x,y,'*')
xlabel('X'),ylabel('Y')
实验结果:
船的吃水深度为5英尺时,红色区域为危险区域,船要避免进入。
题目3
用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何?
线性最小二乘拟合
程序如下:
x=1:0.5:10;
y=x.^3-6*x.^2+5*x-3;
y0=y+rand;
f1=polyfit(x,y0,1)% 输出多项式系数
y1=polyval(f1,x);% 计算各 x点的拟合值
plot(x,y,'+',x,y1)
grid on
title(' 一次拟合曲线 ');
figure(2);
f2=polyfit(x,y0,2)%2 次多项式拟合
y2=polyval(f2,x);
plot(x,y,'+',x,y2);
grid on
title(' 二次拟合曲线 ');
figure(3);
f4=polyfit(x,y0,4)%4 次多项式拟合
y3=polyval(f4,x);
plot(x,y,'+',x,y3)
grid on
title(' 四次拟合曲线 ');
figure(4);
f6=polyfit(x,y0,6)%6 次多项式拟合
y4=polyval(f6,x);
plot(x,y,'+',x,y4)
grid on
title(' 六次拟合曲线 ');
运行结果如下:依次为各个拟合曲线的系数(按降幂排列)
f1 =43.2000 -149.0663
f2 = 10.5000 -72.3000 89.8087
f4 =0.0000 1.0000 -6.0000 5.0000 -2.5913
f6 = 0.0000 -0.0000 0.0000 1.0000 -6.0000 5.0000
-2.4199
运行后, 比较拟合后多项式和原式的系数, 发现四次多项式系数与原系数比较接近, 四次多项式的四次项系数很小。
作图后, 发现一次和二次多项式的图形与原函数的差别比较大, 属于欠拟合的情况, 而四次多项式和六次多项式符合得比较好。作图如下:
实验总结
本次实验,主要学习和实践了插值和拟合这两个在实际应用中十分广泛的建模方法,同时,它们也是我们学习数学建模的基础。插值和拟合,基础但不简单,需要大量的训练才能很好的进行掌握。