插值,拟合
- 格式:doc
- 大小:134.00 KB
- 文档页数:9
1 东南大学《数学实验》报告
学号 11207204 姓名 尹辰玥 成绩
实验内容:曲线拟合与插值法建模
一 实验目的
用Matlab实现曲线拟合,并用插值法建模。
二 实验内容与要求
1、已经测得某大气压强(2/kNm)随高度(米)变化的一组数据如下:
高度 0
300 600 1000 15000 2000
压强 0.9689 0.9233 0.8969 0.8519 0.7989 0.7491
试求出每隔100米的压强值,并与理论计算公式
50077561.0332XPe的计算结果做比较。
命令 结果
>> x=[0 300 600 1000 1500
2000]';
>> y=[0.9689 0.9322 0.8969
0.8519 0.7989 0.7491]';
>> z1=diff(y)
>> z2=diff(y,2)
>> z3=diff(y,3) z1 =
-0.0367
-0.0353
-0.0450
-0.0530
-0.0498
z2 =
0.0014
-0.0097
-0.0080
0.0032
z3 =
2
>> z4=diff(y,4)
>> z5=diff(y,5)
>> p2=polyfit(x,y,5)
>> f=polyval(p2,x);
>> plot(x,y,'o',x,f,'-')
>> a=[0:100:2000]';
>> f=polyval(p2,a)
-0.0111
0.0017
0.0112
z4 =
0.0128
0.0095
z5 =
-0.0033
p2 =
-0.0000 0.0000 -0.0000 0.0000 -0.0001
0.9689
f =
0.9689
0.9565
0.9443
0.9322
0.9203
0.9085
0.8969
0.8854
0.8741
0.8629
0.8519
0.8410
0.8303
0.8197
0.8092
0.7989 3
>>
g=1.0332*exp(-(a+500)/7756)
0.7887
0.7786
0.7687
0.7589
0.7491
g =
0.9687
0.9563
0.9440
0.9319
0.9200
0.9082
0.8966
0.8851
0.8738
0.8626
0.8515
0.8406
0.8298
0.8192
0.8087
0.7984
0.7881
0.7780
0.7681
0.7582
0.7485
2、已知数据:
X 10 20 30 40 50 60 70
Y 92 100 118 146 184 232 290
(1) 利用以上数据求其一阶拟合多项式。
(2) 用差分法确定最适合的拟合多项式,据此求x=120时的y值。
命令 结果 4 >> x=[10:10:70]';
y=[92 100 118 146
184 232 290]';
p=polyfit(x,y,1)
>> f = polyval(p,x);
>> table = [x y f
y-f]
>>
plot(x,y,'o',x,f,'-')
p =
3.3000 34.0000
table =
10 92 67 25
20 100 100 0
30 118 133 -15
40 146 166 -20
50 184 199 -15
60 232 232 0
70 290 265 25
z1 =
8 5
>> z1=diff(y)
>> z2=diff(y,2)
>> z3=diff(y,3)
18
28
38
48
58
z2 =
10
10
10
10
10
z3 =
0
0
0
0
p2 =
-0.0000 0.0500 -0.7000 94.0000
f =
730.0000 6
>>p2=polyfit(x,y,3)
>> f =
polyval(p2,120)
>> f =
polyval(p2,x);
>>
plot(x,y,'o',x,f,'-')
由差分法分析看出,最适合的拟合多项式的阶数为3阶,由两次拟合曲线对比可看出,3阶拟合比较好。
3、(1)已知某平原地区的一条公路经过如下坐标所表示的点,请用样条插值绘出这条公路。(不考虑公路宽度)
X/米 0 30 50 70 80 90 120 148 170 180
Y/米 80 64 47 42 48 66 80 120 121 138
X/米 202 212 230 248 268 271 280 290 300 312
Y/米 160 182 200 208 212 210 200 196 188 186
X/米 320 340 360 372 382 390 416 430 478 440 7 Y/米 200 184 188 200 202 240 246 280 296 308
X/米 420 380 360 340 320 314 280 240 200
Y/米 334 328 334 346 356 360 392 390 400
(2)对于上表给出的数据,估计公路长度。
将表中的数据按照一维向量的形式导入matlab,用matlab中的命令:
plot(x,y,’*’)
hold on
plot(x,y)
从而得到该组数据的三点图即其大体走向,如下图所示:
x1=[0,30,50,70,80,90,120,148,170,180,202,212,230,248,268,271,280,290,300,312,320,340,360,372,382,390,416,430,478];
y1=[80,64,47,42,48,66,80,120,121,138,160,182,200,208,212,210,200,196 8 ,188,186,200,184,188,200,202,240,246,280,296];
x2=[440,420,380,360,340,320,314,280,240,200];
y2=[308,334,328,334,346,356,360,392,390,400];
通过命令:
xx=0:478;
yy=spline(x1,y1,xx;
plot(x1,y1,’o’,xx,yy,’m’))
hold on
xxx=440:-1:200;
yyy=spline(x,y,xxx);
plot(x2,y2,’o’,xxx,yyy,’m’))
得到样条插值函数所插值出来的图像:
由于只要估计公路的长度,故直接算两点间连线的长度的总合,命令