第九讲数据插值与拟合
zi int erp2(x, y, z, xi, yi,'method')
其中 x,y,z为插值节点,zi为被插值点(xi,yi)处的插值结果 且, xi, yi为被插值节点构成的新的网格数据
‘methods’代表的意思和可选择的插值方法和前面一样
注意:所有的插值方法都要求x和y是单调的网格,x和 y可以 是等距的也可以是不等距的
相当于在每一小段上应满足四个条件(方程),可以确 定四个待定参数.三次多项式正好有四个系数,所以可 以考虑用三次多项式函数作为插值函数,这就是分段三 次埃尔米特插值,它与分段线性插值一起都称为分段多 项式插值
(3)三次样条插值
2、曲线拟合的最小二乘法
给定平面上的点 (xi , y), i 1,2,, n,
函数等等)
f (x) c00 (x) c11 (x) cm m (x)
现在要确定系数 c0 , c1,, cm , 使 达到极小为此
三、插值的matlab实现
1、一维插值
MATLAB中的插值函数为interp1,其调用格式为
yi int erp1(x, y, xi,'method')
其中x,y为插值点,yi为在被插值点xi处的插值结果, x, y为向量。 注意:所有的插值方法都要求x是单调的,并且xi不 能够超过x的范围。
yi int erp1(x, y, xi,'method')
' method' 表示采用的插值方法
MATLAB提供的插值方法有几种
'linear' :分段线性插值 'cubic' ' pchip ' :三次Hermite插值(立方插值)
例2 气旋变化情况的可视化 下表是气象学家测量得到的气象资料,它们分别表示在南 半球地时按不同纬度。不同月份的平均气旋数字.根据这 些数据,绘制出气旋分布曲面图形
y=5:10:85;x=1:12; [x,y]=meshgrid(x,y); plot(x,y,'*'); pause z=[2.4,1.6,2.4,3.2,1.0,0.5,0.4,0.2,0.5,0.8,2.4,3.6;
' spline' :三次分段样条插值
'nearest ' :最近点等值方式
缺省时表示线性插值
例1 在一 天24小时内,从零点开始每间隔2小时测得的环 境温度数据分别为
12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,
推测中午(即13点)时的温度.
x=0:2:24; y=[12 9 9 10 18 24 28 27 25 20 18 15 13]; x1=13 ; y1=interp1(x,y,x1,‘spline’)
2、浓度的变化规律 在化学反应中,为研究某化合物的浓度随时间的变化规律, 测得一组数据如表
表中的数据反映了浓度随时间变化的函数关系,它是一 种离散关系若需要推断20,40分钟时的浓度值,能否用 一个显函数y=f(t)来拟合表中的离散数据,然后再计算浓 度值f(20), f(40)?
问题分析 (1)首先将这些离散数据分布在直角坐标系下,由此可 发现浓度与时间之间呈现什么规律.这种数据分布在 直角坐标系下的图形被称为散点图;
(2)根据散点图,判段它接近于哪类函数曲线, 即确定函数形式
(3)函数形式确定以后,关键是要确定函数中含有的 待定参数。
最常用的确定待定系数的方法是,曲线拟合的最小二乘法
二、 插值与拟合
1、插值方法 (1)分段线性插值
分段线性插值的提法如下:
(2)分段三次埃尔米特插值 在插值问题中,如果除了插值节点的函数值给定外,还 要求在节点的导数值为给定值,即插值问题变为
18.7 21.4 16.2 9.2 2.8 1.7 1.4 2.4 5.8 9.2 10.3 16; 20.8 18.5 18.2 16.6 12.9 10.1 8.3 11.2 12.5 21.1 23.9 25.5; 22.1 20.1 20.5 25.1 29.2 32.6 33.0 31.0 28.6 32.0 28.1 25.6; 37.3 28.8 27.8 37.2 40.3 41.7 46.2 39.9 35.9 40.3 38.2 43.4; 48.2 36.6 35.5 40 37.6 35.4 35 34.7 35.7 39.5 40 41.9; 25.6 24.2 25.5 24.6 21.1 22.2 20.2 21.2 22.6 28.5 25.3 24.3; 5.3 5.3 5.4 4.9 4.9 7.1 5.3 7.3 7 8.6 6.3 6.6; 0.3,0,0,0.3,0,0,0.1,0.2,0.3,0,0.1,0.3]; figui,yi]=meshgrid(1:12,5:1:85); zi=interp2(x,y,z,xi,yi,'spline' ); figure mesh(xi,yi,zi) xlabel('月份'), ylabel('纬度'), zlabel('气旋'), axis([0 12 0 90 0 50]) title('南半球气旋可视化图形')
进行曲线拟合有多种方法,最小二乘法是解决曲线拟 合最常用的一种方法
最小二乘法的原理是求f(x),使
n
n
2 i
[ f (xi ) yi ]2
i 1
i 1
达到最小
简单地说,最小二乘法准则就是使所有散点到曲线的距 离平方和最小
线性最小二乘法
拟合函数可由一些简单的“基函数”(例如幂函数,三
角
0 (x),1 (x),, n (x) 来线性表示
插值则要求函数在每个观测点处一定要满足 yi f (xi )
插值函数一般是已知函数的线性组合或者称为加权平 均.插值在工程实践和科学实验中有着非常广泛而又十 分重要的应用,例如,信息技术中的图像重建、图像放 大中为避免图像的扭曲失真的插值补点、建筑工程的外 观设计。化学工程实验数据与模型的分析、天文观测数 据、地理信息数据的处理如(天气预报)以及社会经济 现象的统计分析等等.
引言
在工程实践和科学实验中,常常需要从一组实验观测数据
(xi , yi ), i 0,1,, n 揭示自变量x与因变量y之间的关系,
一般可以用一个近似的函数关系式y=f(x)来表示
通常可以采用两种方法:曲线拟合和插值
拟合主要是考虑到观测数据受随机误差的影响,寻求整体 误差最小、较好反映观测数据的近似函数,并不保证所得 到的函数一定满足 yi f (xi ) 曲线拟合的目的是根据实验获得的数据去建立因变量 与自变量之间有效的经验函数关系,为进一步的深入 研究提供线索
若要得到一天24小时的温度曲线
x=0:2:24; y=[12 9 9 10 18 24 28 27 25 20 18 15 13] xi=0:1/3600:24; yi=interp1(x,y,xi,’spline’ ); plot(x, y, ’o’, xi, yi)
2、高维插值 (1) 网格数据插值问题 N维插值函数interpN() 其中N可以为2,3,……,如N=2为二维插值,调用格式为
一、实例及其模型
1、船在该海域会搁浅吗
在某海域测得一些点(x,y)处的水深z(单位:英尺)由 下表给出,水深数据是在低潮时测得的.船的吃水深度 为5英尺,问在矩形区域(75,200)*(-50,150)里的哪些 地方船要避免进人.
分析
由于测量点是散乱分布的,先在平面上作出测量点的分 布图,再利用二维插值方法补充一些点的水深,然后作 出海底曲面图和等高线图,并求出水深小于5的海域范 围.