插值与拟合模型 1.docx
- 文档编号:12904129
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:22
- 大小:292.57KB
插值与拟合模型 1.docx
《插值与拟合模型 1.docx》由会员分享,可在线阅读,更多相关《插值与拟合模型 1.docx(22页珍藏版)》请在冰豆网上搜索。
插值与拟合模型1
插值与拟合
§1多项式插值问题
已知函数
在n+1个互异结点处的函数值,如下表所示:
xi
x0
x1
……
xn
yi=f(xi)
y0
y1
……
yn
求一个n次多项式Pn(x),使得Pn(xi)=yi,i=1,2,……,n。
并利用Pn(x)近似未知函数f(x)。
从几何上看就是寻找一条n次多项式曲线y=Pn(x),使其通过平面上已知的n+1个点:
一、Lagrange插值
其中,
二、Newton插值
其中,
随着插值结点的增多,插值多项式的次数也增加。
然而多项式次数越高,近似效果未必越好,反而容易出现高次插值的Runge现象,为此需要考虑下面的分段插值问题。
三、分段插值
1、分段线性插值
在相邻两个结点[xk,xk+1]内,求一条线段近似函数f(x),x∈[xk,xk+1]。
2、分段抛物插值
在相邻三个结点之间用抛物线近似未知函数。
四、样条插值
分段线性插值虽然避免了高次多项式插值的Runge现象,然而在插值结点处又产生了新问题:
不光滑。
为了克服这一现象,引入三次样条插值:
在相邻两个结点之间用三次多项式函数si(x)近似未知未知函数,并保证在插值结点处满足衔接条件:
五、Matlab插值命令
yi=interp1(x,y,xi,'method')
(x,y):
插值节点;xi:
被插值点;yi:
xi处的插值结果;
method:
插值方法;‘nearest’最邻近插值;‘linear’线性插值;
‘spline’三次样条插值;‘cubic’立方插值。
缺省时:
分段线性插值。
注意:
所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
例1:
在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:
5,8,9,15,25,29,31,30,22,25,27,24。
试估计每隔1/10小时的温度值。
Matlab命令
hours=1:
12;
temps=[589152529313022252724];
h=1:
0.1:
12;
t=interp1(hours,temps,h,'spline');
plot(hours,temps,'+',h,t,hours,temps,'r:
')%作图
xlabel('Hour'),ylabel('DegreesCelsius’)
练习:
下列数据表示从1790年到2000年的美国人口数据,利用这些数据给出1790年—2000年每隔5年的美国人口数据,并预测2005年、2010年人口数,与实际值比较。
(人口单位:
千人)
年份
1790
1800
1810
1820
1830
1840
人口
3929
5308
7240
9638
12866
17069
年份
1850
1860
1870
1880
1890
1900
人口
23192
31443
38558
50156
62948
75995
年份
1910
1920
1930
1940
1950
1960
人口
91972
105711
122755
131669
150697
179323
年份
1970
1980
1990
2000
2005
2010
人口
203212
226505
248710
281416
?
?
§2二维插值问题
已知函数
在若干结点处的函数值,
,
找一个简单二元函数使其通过已知的m×n个结点,并用此函数近似f(x,y)。
一、结点类型
1、网格型结点
2、散乱结点
二、插值方法
1、最邻近插值
二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。
注意:
最邻近插值一般不连续。
具有连续性的最简单的插值是分片线性插值。
2、分片线性插值
(xi+1,yj+1)
(xi,yj+1)
x
将四个插值点(矩形的四个顶点)处的函数值依次简记为:
f(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f4
分两片的函数表达式如下:
第一片(下三角形区域):
(x,y)满足
插值函数为:
第二片(上三角形区域):
(x,y)满足
插值函数为:
注意:
(x,y)当然应该是在插值节点所形成的矩形区域内。
显然,分片线性插值函数是连续的;
3、双线性插值
双线性插值是一片一片的空间二次曲面构成。
双线性插值函数的形式如下:
其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。
三、用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
method:
插值方法
‘nearest’表示最邻近插值;‘linear’表示双线性插值;
‘cubic’表示双三次插值;缺省时表示双线性插值;
(x0,y0,z0)表示插值节点;(x,y)表示被插值点;
z表示被插值点的函数值。
要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。
例2:
测得平板表面3*5网格点处的温度分别为:
828180828479636165818484828586试作出平板表面的温度分布曲面z=f(x,y)的图形。
1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图.
输入以下命令:
x=1:
5;
y=1:
3;
temps=[8281808284;7963616581;8484828586];
mesh(x,y,temps)
2.以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.
再输入以下命令:
xi=1:
0.2:
5;yi=1:
0.2:
3;zi=interp2(x,y,temps,xi',yi,'cubic');
mesh(xi,yi,zi)
画出插值后的温度分布曲面图.
练习山区地貌:
在某山区测得一些地点的高程如下表。
平面区域为
1200≤x≤4000,1200≤y≤3600)
试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。
X
Y
1200
1600
2000
2400
2800
3200
3600
4000
1200
1130
1250
1280
1230
1040
900
500
700
1600
1320
1450
1420
1400
1300
700
900
850
2000
1390
1500
1500
1400
900
1100
1060
950
2400
1500
1200
1100
1350
1450
1200
1150
1010
2800
1500
1200
1100
1550
1600
1550
1380
1070
3200
1500
1550
1600
1550
1600
1600
1600
1550
3600
1480
1500
1550
1510
1430
1300
1200
980
通过此例对最邻近点插值、双线性插值方法和双三次插值方法的插值效果进行比较。
四、用MATLAB作散点数据的插值计算
插值函数griddata格式为:
cz=griddata(x,y,z,cx,cy,‘method’)
(cx,cy)表示被插值结点;(x,y,z)表示插值节点;cz表示被插值结点的函数值;method:
插值方法
‘nearest’最邻近插值;‘linear’双线性插值;‘cubic’双三次插值;
'v4'-Matlab提供的插值方法;缺省时,双线性插值
例3在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。
x
y
z
129140103.588185.5195105
7.5141.52314722.5137.585.5
4868688
x
y
z
157.5107.57781162162117.5
-6.5-81356.5-66.584-33.5
9988949
1、输入插值结点数据;
2、在矩形区域(75,200)*(-50,150)作二维插值,采用三次插值法;
3、作海底曲面图;
4.作出水深小于5的海域范围,即z=5的等高线。
命令如下
clear
x=[129140103.588185.5195105.5157.5107.57781162162117.5];
y=[7.5141.52314722.5137.585.5-6.5-81356.5-66.584-33.5];
z=[-4-8-6-8-6-8-8-9-9-8-8-9-4-9];
cx=75:
0.5:
200;
cy=-70:
0.5:
150;
cz=griddata(x,y,z,cx,cy','cubic');
meshz(cx,cy,cz),rotate3d
xlabel('X'),ylabel('Y'),zlabel('Z')
figure
(2),contour(cx,cy,cz,[-5-5]);grid
holdon
plot(x,y,'+')
xlabel('X'),ylabel('Y')
练习山区地貌:
在某山区测得一些地点的高程如下表:
(平面区域1200<=x<=4000,1200<=y<=3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。
3600
3200
2800
2400
2000
1600
1200
1480150015501510143013001200980
15001550160015501600160016001550
15001200110015501600155013801070
15001200110013501450120011501010
139015001500140090011001060950
13201450142014001300700900850
11301250128012301040900500700
Y/x
12001600200024002800320036004000
§3曲线拟合
在科学实验的统计方法研究中,往往要从一组实验数据
中寻找自变量x与因变量y之间的函数关系
。
在第一节中我们已经给出了一种方法:
多项式插值。
这种方法要求用来近似未知函数f的n次插值多项式准确无误地经过已知的n+1个结点。
然而当结点数据是由某种实验或者计算方法得出的,就难免带有误差,要求多项式严格经过这些结点,无形中就会将误差保留下来,而且如果每一个结点都有误差的话,由于误差累积的效应,也会导致整体的近似效果较差。
这促使我们寻求一种新的方法近似未知函数,这一方法并不要求用来近似的函数
严格通过已知结点,而只要求在结点
处误差
,
按某一标准最小。
为了计算方便,通常就采用误差的平方和最小作为度量误差的标准。
一、基于最小二乘原理的曲线拟合问题
已知函数已知函数
在m+1个互异结点处的函数值,如下表所示:
xi
x0
x1
……
xm
yi=f(xi)
y0
y1
……
ym
在给定的函数类
中求一个函数
,
使得
取得最小值。
并利用S(x)近似未知函数f(x)。
称S(x)为最小二乘拟合函数。
特别地当S是一个n次多项式时,称为最小二乘多项式拟合。
注意:
(1)插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。
而面对一个实际问题,究竟应该用插值还是拟合,有时容易确定,有时则并不明显。
(2)用最小二乘原理拟合数据时,首先要确定拟合函数S(x)的形式,这往往是最重要也是最困难的一步,它不是一个单纯的数学问题,还与所研究的变化规律及所得观测数据有关;通常应从问题的变化规律、给定数据的散点图以及实际问题的背景综合分析加以确定。
(3)当发现有多种类型曲线均符合样本点变化特征时,可以分别采用不同类型曲线进行拟合,最后通过某一评价指标确定最优的拟合结果。
(4)加权的最小二乘曲线拟合方法
其中
是权重函数,它表示不同点处的数据比重(对最优拟合曲线的影响程度)不同。
例如,权重可以用在点
处的重复观测次数表示。
例4:
根据统计资料,水泥预期销售量与价格的关系如下表:
单价
250
260
270
280
290
300
310
320
售量(×104)
200
190
176
150
139
125
110
100
确定水泥预期销售量与价格的近似函数关系。
例5:
在某化学反应里,根据实验所得生成物的浓度与时间的关系数据见下表,求浓度y与时间t的拟合曲线
t(时间)
1
2
3
4
5
6
7
8
y(浓度)
4.00
6.40
8.00
8.80
9.22
9.50
9.70
9.86
t(时间)
9
10
11
12
13
14
15
16
y(浓度)
10.00
10.20
10.32
10.42
10.50
10.55
10.58
10.60
例6:
CUMCM92A例7:
CUMCM2004C
二、Matlab作曲线拟合
1、多项式拟合
p=polyfit(x,y,n)—其中x,y为给出的数据,n为多项式的次数。
输出变量p是一个向量,其元素给出了拟合多项式的系数(按从高到低排列)
多项式在x处的值y可用以下命令计算:
y=polyval(a,x)
2.用MATLAB作非线性最小二乘拟合
Matlab的提供了两个求非线性最小二乘拟合的函数:
curvefit和leastsq。
两个命令都要先建立M-文件fun.m,在其中定义拟合函数S(x)。
(1)c=curvefit(‘fun’,[a,b],x,y);
(2)c=leastsq(‘fun’,[a,b]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 插值与拟合模型 拟合 模型