插值、拟合与MATLAB编程.docVIP

  • 2
  • 0
  • 约3.85千字
  • 约 12页
  • 2025-10-17 发布于江苏
  • 举报

插值、拟合与MATLAB编程

相关知识

在生产和科学实验中,自变量与因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。当要求知道其它点的函数值时,需要估计函数值在该点的值。

为了完成这样的任务,需要构造一个比较简单的函数,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数有很多方法。根据测量数据的类型有以下两类处理观测数据的方法。

(1)测量值是准确的,没有误差,一般用插值。

(2)测量值与真实值有误差,一般用曲线拟合。

在MATLAB中,无论是插值还是拟合,都有相应的函数来处理。

一、插 值

1、一维插值:

已知离散点上的数据集,即已知在点集X=上的函数值Y=,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。

MATLAB命令:yi=interp1(X,Y,xi,method)

该命令用指定的算法找出一个一元函数,然后以给出处的值。xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一:

‘nearest’:最近邻点插值,直接完成计算;

‘spline’:三次样条函数插值;

‘linear’:线性插值(缺省方式),直接完成计算;

‘cubic’:三次函数插值;

对于[min{xi},max{xi}]外的值,MATLAB使用外推的方法计算数值。

例1:已知某产品从1900年到2010年每隔10年的产量为:75.995,91.972,105.711,123.203,131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893,计算出1995年的产量,用三次样条插值的方法,画出每隔一年的插值曲线图形,同时将原始的数据画在同一图上。

解:程序如下

year=1900:10:2010;

product=[75.995,91.972,105.711,123.203,131.699,150.697,179.323,203.212,226.505,249.633,256.344,267.893]

p1995=interp1(year,product,1995)

x=1900:2010;

y=interp1(year,product,x,cubic);

plot(year,product,o,x,y);

计算结果为:p1995=252.9885。

?

2、二维插值

已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一

subplot(1,2,1)

mesh(x,y,t)

x1=1:0.1:6;

y1=1:0.1:4;

[x2,y2]=meshgrid(x1,y1);

t1=interp2(x,y,t,x2,y2,cubic);

subplot(1,2,2)

mesh(x1,y1,t1);

结果如右图。

作业:已知某处山区地形选点测量坐标数据为:

x=00.511.522.533.544.55

y=00.511.522.533.544.555.56

海拔高度数据为:

z=8990878592919693908782

9296989995918986848284

9698959290888584838185

8081828995969392898686

8285879899969788858283

8285899495939291868488

8892939495898786838192

9296979896939584828184

8585818280808185909395

8486819899989796958487

8081858283848790958688

8082818485868382818082

8788899899979698949287

画出原始数据图;

画出加密后的地貌图,并在图中标出原始数据。

二、拟合

曲线拟合

已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值,这一过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法,该方法是寻找函数使得最小。

MATLAB函数:p=polyfit(x

文档评论(0)

1亿VIP精品文档

相关文档