插值,拟合

  • 格式: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’))

得到样条插值函数所插值出来的图像:

由于只要估计公路的长度,故直接算两点间连线的长度的总合,命令