数学建模~插值与拟合
4.3 MATLAB实现插值
Matlab 实现:实现分段线性插值不需 要编制函数程序,它自身提供了内部的功 能函数 interp1(一维插值) intep2(二维) interp3(三维) intern(n维)
例 山区地貌:
在某山区测得一些地点的高程如下表。平面区域为 1200<=x<=4000,1200<=y<=3600)
试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。
X Y
1200 1600 2000 2400 2800 3200 3600
1200
1130 1320 1390 1500 1500 1500 1480
数学建模~插值与拟合
一、概述
我们经常会遇到大量的数据需要处理, 而处理数据的关键就在于这些算法,例如 数据拟合、参数估计、插值等数据处理算 法。此类问题在MATLAB中有很多现成的 函数可以调用,熟悉MATLAB,这些方法 都能游刃有余的用好。
数据拟合在很多赛题中有应用,与图形 处理有关的问题很多与插值和拟合有关系, 例如98年美国赛A题,生物组织切片的三维插 值处理,94年A题逢山开路,山体海拔高度的 插值计算,2003年吵的沸沸扬扬的“非典” 问题也要用到数据拟合算法,观察数据的走 向进行处理, 2005年的雨量预报的评价的插 值计算。2001年的公交车调度拟合问题, 2003年的饮酒驾车拟合问题。
用MATLAB作插值计算
一维插值函数: yi=interp1(x,y,xi,'method')
xi处的插 值结果
插值节点
注意:所有的插值方法 都要求x是单调的,并且xi不 能够超过x的范围.
被插值点
插值方法
‘nearest’ 最邻近插值; ‘linear’ 线性插值; ‘spline’ 三次样条插值; ‘cubic’ 立方插值; 缺省时 分段线性插值.
如果不要求近似函数通过所有数据点, 而是要求它能较好地反映数据变化规律的近 似函数的方法称为数据拟合。(必须有函数 表达式)
近似函数不一定(曲线或曲面)通过所 有的数据点。
三、插值与拟合的区别和联系
1、联系 都是根据实际中一组已知数据来构造一个能够 反映数据变化规律的近似函数的方法。 2、区别 插值问题不一定得到近似函数的表达形式,仅 通过插值方法找到未知点对应的值。数据拟合 要求得到一个具体的近似函数的表达式。
3200
900 700 1100 1200 1550 1600 1300
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) 画出插值后的温度分布曲面图.
To MATLAB (wendu)
1600
1250 1450 1500 1200 1200 1550 1500
2000
1280 1420 1500 1100 1100 1600 1550
2400
1230 1400 1400 1350 1550 1550 1510
2800
1040 1300 900 1450 1600 1600 1430
例:测得平板表面3×5网格点处的温度分别为: 82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面的温度分布曲面z=f(x,y)的图形.
1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.
输入以下命令:
x=1:5; y=1:3; temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86]; mesh(x,y,temps)
四、插值的使用及求解
4.1 引言 当数据量不够,需要补充,且认定已有数
据可信时, 通常利用函数插值方法。
实际问题当中碰到的函数 f (x) 是各种各 样的,有的表达式很复杂,有的甚至给不出数 学的式子,只提供了一些离散数据,警如,某 些点上的函数值和导数值。
4.2Байду номын сангаас插值方法
选用不同类型的插值函数,逼近的效 果就不同,一般有:
预测点和实测点的图形
插值后的图形
喝两瓶酒的拟合曲线 喝1-5瓶酒的拟合曲线
二、基本概念
在实际中,常常要处理由实验或测量所 得到的一些离散数据。插值与拟合方法就是 要通过这些数据去确定某一类已知函数的参 数或寻求某个近似函数,使所得到的近似函 数与已知数据有较高的拟合精度。
如果要求这个近似函数(曲线或曲面) 经过所已知的所有数据点,则称此类问题为 插值问题。 (不需要函数表达式)
%作图
To MATLAB (temp)
例 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值.
X0 3
5
7
9
11 12 13 14 15
Y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6
y
机翼下
轮廓线
x
To MATLAB(plane)
返回
用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
被插值点 插值方法
‘nearest’ 最邻近插值; ‘linear’ 双线性插值; ‘cubic’ 双三次插值; 缺省时 双线性插值.
要求x0,y0单调;x,y可取为矩阵,或x 取行向量,y取为列向量,x,y的值分别不能超 出x0,y0的范围.
例:从1点12点的11小时内,每隔1小时测量一次温 度,测得的温度的数值依次为:5,8,9,15,25, 29,31,30,22,25,27,24.试估计每隔 1/10小时的温度值.
hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:0.1:12; t=interp1(hours,temps,h,'spline'); plot(hours,temps,'+',h,t,hours,temps,'r:') xlabel('Hour'),ylabel('Degrees Celsius’)
数学建模插值与拟合
数学建模插值与拟合数据插值与拟合插值与插值函数:已知由(可能未知或⾮常复杂)产⽣的⼀批离散数据,且个互异插值节点,在插值区间内寻找⼀个相对简单的函数,使其满⾜下列插值条件:再利⽤已求得的计算任⼀⾮插值节点的近似值,这就是插值。
其中称为插值函数,称为被插函数。
最⼩⼆乘拟合:已知⼀批离散的数据,互不相同,寻求⼀个拟合函数,使与的误差平⽅和在最⼩⼆乘意义下最⼩。
在最⼩⼆乘意义下确定的称为最⼩⼆乘拟合函数。
1)Lagrange插值法a.待定系数法:假设插值多项式,利⽤待定系数法即可求得满⾜插值条件的插值函数。
关键在于确定待定系数。
b.利⽤基函数的构造⽅法⾸先构造个满⾜条件:的次插值基函数,再将其线性组合即可得如下的Lagrange插值多项式:其中c.Lagrange插值余项注:上述两种构造⽅法所得的Lagrange插值多项式是⼀样的,即满⾜插值条件的Lagrange插值多项式是唯⼀的。
2)分段线性插值作分段线性插值的⽬的在于克服Lagrange插值⽅法可能发⽣的不收敛性缺点。
所谓分段线性插值就是利⽤每两个相邻插值节点作线性插值,即可得如下分段线性插值函数:其中特点:插值函数序列具有⼀致收敛性,克服了⾼次Lagrange插值⽅法的缺点,故可通过增加插值节点的⽅法提⾼其插值精度。
但存在于节点处不光滑、插值精度低的缺点。
3)三次样条插值三次样条插值的⽬的在于克服Lagrange插值的不收敛性和提⾼分段线性插值函数在节点处的光滑性。
所谓三次样条插值⽅法就是在满⾜下列条件:a.b.在每个⼦区间上是三次多项式的三次样条函数中寻找满⾜如下插值条件:以及形如等边界条件的插值函数的⽅法。
特点:三次样条插值函数序列⼀致收敛于被插函数,因此可通过增加节点的⽅法提⾼插值的精度。
4)插值⽅法的Matlab实现⼀维数据插值MATLAB中⽤函数interp1来拟合⼀维数据,语法是YI = INTERP1(X,Y,XI,⽅法)其中(X,Y)是已给的数据点,XI 是插值点,其中⽅法主要有'linear' -线性插值,默认'pchip' -逐段三次Hermite插值'spline' -逐段三次样条函数插值其中最后⼀种插值的曲线⽐较平滑例:x=0:.12:1; x1=0:.02:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,'o'); hold on;y1=interp1(x,y,x1,'spline');plot(x1,y1,':')如果要根据样本点求函数的定积分,⽽函数⼜是⽐较光滑的,则可以⽤样条函数进⾏插值后再积分,在MATLAB 中可以编写如下程序:function y=quadspln(x0,y0,a,b)f=inline(‘interp1(x0,y0,x,’’spline’’)’,’x’,’x0’,’y0’);y=quadl(f,a,b,1e-8,[],x0,y0);现求six(x)在区间[0,pi]上的定积分,只取5点x0=[0,0.4,1,2,pi];y0=sin(x0);I=quadspln(x0,y0,0,pi)结果得到的值为 2.01905,精确值为2⼆元函数插值:MATLAB中⽤函数interp2来拟合⼆维⽹格(X,Y)上的数据Z,语法是YI = INTERP2(X,Y, Z,XI, YI,⽅法)其中(X,Y,Z)是已给的数据点,(XI,YI)是插值点坐标,其中⽅法主要有'linear' -线性插值,默认'pchip' -逐段三次Hermite插值'spline' -逐段三次样条函数插值其中最后⼀种插值的曲⾯⽐较平滑例:[x,y]=meshgrid(-3:.6:3,-2:.4:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x..*y);[x1,y1]=meshgrid(-3:.2:3,-2:.2:2);%⽣成⽹格,x1和y1均为同样size的矩阵z1=interp2(x,y,z,x1,y1,’spline’); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1);axis([-3,3,-2,2,-0.7,1.5]);-33如果数据不是在⽹格上取的,则可⽤函数griddata 来解决语法是YI = griddata(X,Y, Z ,XI, YI ,‘v4’)其中(X , Y ,Z )是已给的数据点,(XI ,YI )是插值点坐标,其中除了⽅法‘v4’外还有 'linear' -线性插值,默认 'cublc' -逐段三次Hermite 插值 'nearest' 其中‘v4’⽅法⽐较好例x=-3+6*rand(200,1); %⽣成随机点的x坐标向量xy=-2+4*rand(200,1); %⽣成随机点的y坐标向量yz=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); % 上述点的样本值向量z[x1,y1]=meshgrid(-3:.2:3,-2:.2:2); %⽣成⽹格,x1和y1均为同样size的矩阵z1=griddata(x,y,z,x1,y1,’v4’);surf(x1,y1,z1);axis([-3,3,-2,2,-0.7,1.5]);⽣成的图类似上图。
(数学建模课件)第八部分插值与拟合
例9 多项式函数拟合 x=[34 36 37 38 39 39 39 40 40 41 42 43 43 45 47 48]; y=[1.30 1.00 0.73 0.90 0.81 0.70 0.60 0.50 0.44 0.56 0.30 0.42 0.35 0.40 0.41 0.60]; close; plot(x,y) p=polyfit(x,y,2) xi=linspace(34,48,1000); %绘图的X轴数据 z=polyval(p,xi); %得到多项式在数据点处 的值 close; plot(x,y,’ko’,xi,z,’r-’)
xi=0:2*pi*300; yi=interp1(x,y,xi,’cubic’); plot(xi,yi);
2020/7/8
例3 三次样条插值 x=1:12; y=[5 6 9 15 25 29 31 30 22 25 27 24]; close; plot(x,y,x,y,’+’) pp=spline(x,y); [b,c]=unmkpp(pp)
例5 下表给出某企业从1968—2008年间,工龄为 10年、20年、30年的职工的月均工资数据。试 用线性插值求出1973—2003年每隔10年,工龄 为15年、25年职工的月均工资。
工龄 10 年份
1968
507
1978
793
1988
1032
1998
1265
2008
2020/7/8
2496
20
2020/7/8
2、二维插值
Z1=interp2 (X,Y,Z,X1,Y1,’method’) 其中X和Y为两个向量,分别描述原始数据点的 自变量取值,Z是对应于X和Y的函数值;X1和 Y1是两个向量,描述欲插值的点。Method的含 义同一维插值。Z1是根据相应的插值方法得到 的插值结果。
插值与拟合
且 f(1.5) ≈L1(1.5) = 0.885。
Lagrange插值法的缺点
• 多数情况下,Lagrange插值法效果是不错的, 但随着节点数n的增大,Lagrange多项式的次 (Runge)现象。
• 例:在[-5,5]上用n+1个等距节点作插值多项 式Ln(x),使得它在节点处的值与函数y = 1/(1+25x2)在对应节点的值相等,当n增大时, 插值多项式在区间的中间部分趋于y(x),但 对于满足条件0.728<|x|<1的x, Ln(x)并不趋 于y(x)在对应点的值,而是发生突变,产生 剧烈震荡,即Runge现象。
总结
• 拉格朗日插值:其插值函数在整个区间 上是一个解析表达式;曲线光滑;收敛 性不能保证,用于理论分析,实际意义 不大。
• 分段线性插值和三次样条插值:曲线不 光滑(三次样条已有很大改进);收敛 性有保证;简单实用,应用广泛。
1.2 二维插值
• 二维插值是基于一维插值同样的思想, 但是它是对两个变量的函数Z=f(x,y)进 行插值。
• n=5; • x0=-1:1/(n-1):1;y0=1./(1+25*x0.^2);y1=lagr(x0,y0,x); • subplot(2,2,2), • plot(x,z,'r-',x,y,'m-'),hold on %原曲线 • plot(x,y1,'b'),gtext('L8(x)','FontSize',12),pause %Lagrange曲线
基函数为
l0 (x)
x x1 x0 x1
x2 1 2
2
x
l1(x)
线性插值函数为
数学建模插值及拟合详解
插值和拟合【1 】试验目标:懂得数值剖析建模的办法,控制用Matlab进行曲线拟合的办法,懂得用插值法建模的思惟,应用Matlab一些敕令及编程实现插值建模.试验请求:懂得曲线拟合和插值办法的思惟,熟习Matlab相干的敕令,完成响应的演习,并将操纵进程.程序及成果记载下来.试验内容:一.插值1.插值的根本思惟·已知有n +1个节点(xj,yj),j = 0,1,…, n,个中xj互不雷同,节点(xj, yj)可算作由某个函数 y= f(x)产生;·结构一个相对简略的函数y=P(x);·使P经由过程全体节点,即 P (xk) = yk,k=0,1,…, n ;·用P (x)作为函数f ( x )的近似.2.用MA TLAB作一维插值盘算yi=interp1(x,y,xi,'method')注:yi—xi处的插值成果;x,y—插值节点;xi—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值).留意:所有的插值办法都请求x是单调的,并且xi不克不及够超出x的规模.演习1:机床加工问题机翼断面下的轮廓线上的数据如下表:x 0 3 5 7 9 11 12 13 14 15y 0用程控铣床加工机翼断面的下轮廓线时每一刀只能沿x偏向和y偏向走异常小的一步.表3-1给出了下轮廓线上的部分数据但工艺请求铣床沿x偏向每次只能移动单位.这时需求出当x 坐标每转变单位时的y 坐标. 试完成加工所需的数据,画出曲线. 步调1:用x0,y0两向量暗示插值节点;步调2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步调3:plot(x0,y0,'k+',x,y,'r')grid on答:x0=[0 3 5 7 9 11 12 13 14 15 ]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; x=0:0.1:15;y=interp1(x0,y0,x,'spline'); plot(x0,y0,'k+',x,y,'r') grid on0510150.511.522.53.用MA TLAB 作网格节点数据的插值(二维)z=interp2(x0,y0,z0,x,y,’method’)注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;缺省时:双线性插值).留意:请求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分离不克不及超出x0,y0的规模.4.用MA TLAB作散点数据的插值盘算cz =griddata(x,y,z,cx,cy,‘method’)注:cz—被插点值的函数值;x,y,z—插值节点;cx,cy—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;'v4‘:Matlab供给的插值办法;缺省时:双线性插值).演习2:航行区域的警示线某海域上频仍地有各类吨位的船只经由.为包管船只的航行安然,有关机构在低潮时对水深进行了测量,下表是他们供给的测量数据:水道水深的测量数据x 129.0140.0 103.5 88.0 185.5 195.0 105.5y 7.5 141.5 23.0 147.0 22.5 137.5 85.5z 4 8 6 8 6 8 8x157.5 107.5 77.0 81.0 162.0 162.0 117.5y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5z 9 9 8 8 9 4 9个中(x, y)为测量点,z为(x, y)处的水深(英尺),水深z是区域坐标(x, y)的函数z= z (x, y),船的吨位可以用其吃水深度来反应,分为4英尺.英尺.5英尺和英尺 4 档.航运部分要在矩形海域(75,200)×(-50,150)上为不合吨位的航船设置警示标识表记标帜.请依据测量的数据描写该海域的地貌,并绘制不合吨位的警示线,供航运部分应用. x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -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),rotate3dxlabel('X'),ylabel('Y'),zlabel('Z')%pausefigure(2),contour(cx,cy,cz,[-5 -5]);grid on,hold onplot(x,y,'+')xlabel('X'),ylabel('Y')200XYZXY80100120140160180200-60-40-20020406080100120140演习3:估量水塔的水流量—93,请绘出三次样条插值曲线,并盘算一天的总的用水量. 解:t0=[0.46,1.38,2.4,3.41,4.43,5.44,6.45,7.47,8.45,11.49,12.49,13.42,14.43,15.44,16.37,17.38,18.49,19.50,20.40,24.43,25.32];v0=[11.2,9.7,8.6,8.1,9.3,7.2,7.9,7.4,8.4,15.6,16.4,15.5,13.4,13.8,12.9,12.2,12.2,12.9,12.6,11.2,3.5]; t=0:0.1:26; y=interp1(t0,v0,t,'spline'); plot(t0,v0,'k+',t,y,'r') grid on0510********-10-55101520二.曲线拟合已知一组(二维)数据,即平面上 n 个点(xi,yi) i=1,…n, 追求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所稀有据点最为接近,即曲线拟合得最好.最经常应用的办法是线性最小二乘拟合 1.多项式拟合⏹对给定的数据(xj,yj),j = 0,1,…, n;⏹拔取恰当阶数的多项式,如二次多项式g(x)=ax^2+bx+c;⏹使g(x)尽可能逼近(拟合)这些数据,但是不请求经由给定的数据(xj,yj); 2.多项式拟合指令1)多项式f(x)=a1xm+ …+amx+am+1拟合指令:a=polyfit(x,y,m)a:输出多项式拟合系数a[a1,a2,…,am];x,y:输出长度雷同的数组;m:多项式的次数. 2)多项式在x处的值y的盘算敕令:y=polyval(a,x)演习4:对下面一组数据作二次多项式拟合写出拟合敕令:plot(x,y,'k+',x,z,'r')作出数据点和拟合曲线:0.10.20.30.40.50.60.70.80.91写出拟合的二次多项式:0317.01293.208108.9)(2-+-=x x x f3.可化为多项式的非线性拟和曲线改直是工程中又一经常应用的断定曲线情势的办法,很多罕有的函数都可以经由过程恰当的变换转化为线性函数.(1)幂函数 by ax c =+ln ln ln y c a b x -=+(2)指数函数 xy ab c =+ln ln ln y c a x b -==(3)抛物函数 2,(0)y ax bx c x =++≠b ax xcy +=- 演习5:完成教材P93页的习题5的第一小题. x0=[0,300,600,1000,1500,2000];x=0:100:2000;y0=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491];y=interp1(x0,y0,x,'spline');plot(x0,y0,'k+',x,y,'r')grid on0200400600800100012001400160018002000。
数学建模_插值与拟合总结
y0 y1
⎪⎩a0 + a1xn + a2 xn2 + L + an xnn = yn
记此方程组的系数矩阵为 A ,则
(3)
1 x0 x02 L x0n det( A) = 1 x1 x12 L x1n
LLLLLLL
1 xn xn2 L xnn 是范德蒙特(Vandermonde)行列式。当 x0 , x1,L, xn 互不相同时,此行列式值不为零。因 此方程组(3)有唯一解。这表明,只要 n + 1 个节点互不相同,满足插值要求(2)的
z=x(i); s=0.0; for k=1:n
p=1.0; for j=1:n
if j~=k p=p*(z-x0(j))/(x0(k)-x0(j));
end end s=p*y0(k)+s; end y(i)=s; end
-176-
1.2 牛顿(Newton)插值 在导出 Newton 公式前,先介绍公式表示中所需要用到的差商、差分的概念及性质。 1.2.1 差商
=
f0
+
Δf 0 h
(x − x0 ) + L +
Δn f0 n! h n
( x − x0 )( x − x1)L( x − xn−1)
若令 x = x0 + th ,则上式又可变形为
Nn (x0
+ th)
=
f0
+ tΔf0
+L +
t(t
− 1)L(t n!
−n
+ 1) Δn
f0
上式称为 Newton 向前插值公式。
f [x, x0 , x1] = f [x0 , x1, x2 ] + ( x − x2 ) f [x, x0 , x1, x2 ] LL
数学建模之插值与拟合
matlab中拟合的函数
非线性曲线拟合 Matlab中对于多项式拟合,有现成的函数
c = lsqcurvefit ( ′fun′, x0, xdata, ydata)
matlab中拟合的函数
非线性曲线拟合例题
对下面的x、y进行数据拟合
x=[3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10,5.4]; y=[16.5,150.6,263.1,24.7,208.5,9.9,2.7,163.9,325,54.3];
最小二乘法
线性最小二乘法是解决曲线拟合最常用的方法,基本 思路是,令
f (x) a1r1(x) a2r2 (x) amrm (x) • 其中,rk(x)是事先选定的一组线性无关的函数,ak是待定系
数(k=1,2,...,m,m<n)。拟a合准则是使yi,i=1,2,3...,n,与f (xi )
• 求:利用最小二乘法求得上述拟合函数
求解方法
(1)做散点图,通过散点图判断函数为:y=ax+b
(2)根据最小二乘法原理可知,即使下式中M最小
10
M yi axi b2
i 1
(3)把M看作是自变量为a和b的函数,由多元函数取最值
的条件可知:
M M
a b
a, a,
b b
0 0
M
a
M
b
目录
1
插值法与拟合法
2 matlab中插值的函数
3 matlab中拟合的函数 4 插值与拟合的运用
插值法与拟合法的基本介绍
插值法:求过已知有限个数据点的近似函数。
拟合法:已知有限个数据点,求近似函数,不要求
过已知数据点,只要求在某种意义下它在这些点上 的总偏差最小。
数学建模案例分析-- 插值与拟合方法建模1数据插值方法及应用
第十章 插值与拟合方法建模在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。
插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。
相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。
§1 数据插值方法及应用在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。
与此有关的一类问题是当原始数据),(,),,(),,(1100n n y x y x y x 精度较高,要求确定一个初等函数)(x P y =(一般用多项式或分段多项式函数)通过已知各数据点(节点),即n i x P y i i ,,1,0,)( ==,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。
1、分段线性插值这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。
如果b x x x a n =<<<= 10那么分段线性插值公式为n i x x x y x x x x y x x x x x P i i i i i i i i i i ,,2,1,,)(11111 =≤<--+--=-----可以证明,当分点足够细时,分段线性插值是收敛的。
其缺点是不能形成一条光滑曲线。
例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。
根据地图的比例,18 mm 相当于40 km 。
根据测量数据,利用MA TLAB 软件对上下边界进行线性多项式插值,分别求出上边界函数)(2x f ,下边界函数)(1x f ,利用求平面图形面积的数值积分方法—将该面积近似分成若干个小长方形,分别求出这些长方形的面积后相加即为该面积的近似解。
数学建模插值与拟合课件
设函数 y f (x) 在 n 1个相异点 x0 , x1, x2 , , xn 上的值为 y 0 , y1, y2 , , yn ,要求一个次数≤n 的代数多
项式
Pn (x) a0 a1x a2 x 2 an x n
使在节点 xi 上成立 Pn (xi ) yi (i 0,1,2, , n) ,称此为 n 次代数插值问题,Pn (x) 称为插值多项式。可以证明 n
如果不要求近似函数通过所有数据点, 而是要求它能较好地反映数据变化规律的近 似函数的方法称为数据拟合。(必须有函数 表达式)
近似函数不一定(曲线或曲面)通过所 有的数据点。
三、插值与拟合的区别和联系
1、联系 都是根据实际中一组已知数据来构造一个能够 反映数据变化规律的近似函数的方法。 2、区别 插值问题不一定得到近似函数的表达形式,仅 通过插值方法找到未知点对应的值。数据拟合 要求得到一个具体的近似函数的表达式。
图所示,当n 增大时,pn x在两端会发出激烈
的振荡,这就是所谓龙格现象。
龙格现象
2
y=1/(1+x2) y=p4(x) y=p10(x) 1.5
1
0.5
0
-0.5
-5 -4 -3 -2 -1
0
1
2
3
4
5
x
To MATLAB lch(larg1)
分段插值的概念
所谓分段插值,就是将被插值函数逐段 多项式化。一般来说,分段插值方法的处理 过程分两步,先将所考察的区间作一分划
y1
lj(x)
当n =2 时,有三点二次(抛物线)插值多项式:
P2
(x)
(x (x0
x1)(x x2 ) x1)(x0 x2 )
数学建模常见的一些方法【04拟合算法】
数学建模常见的⼀些⽅法【04拟合算法】@⽬录数学建模常见的⼀些⽅法1. 拟合算法与插值问题不同,在拟合问题中不需要曲线⼀定经过给定的点。
拟合问题的⽬标是寻求⼀个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最⼩化损失函数)。
1.1 插值和拟合的区别 插值算法中,得到的多项式f(x)要经过所有样本点。
但是如果样本点太多,那么这个多项式次数过⾼,会造成。
尽管我们可以选择分段的⽅法避免这种现象,但是更多时候我们更倾向于得到⼀个确定的曲线,尽管这条曲线不能经过每⼀个样本点,但只要保证误差⾜够⼩即可,这就是拟合的思想。
(拟合的结果是得到⼀个确定的曲线)1.2 求解最⼩⼆乘法1.3 Matlab求解最⼩⼆乘测试数据:x =4.20005.90002.70003.80003.80005.60006.90003.50003.60002.90004.20006.10005.50006.60002.90003.30005.90006.00005.6000>> yy =8.400011.70004.20006.10007.900010.200013.20006.60006.00004.60008.400012.000010.300013.30004.60006.700010.800011.50009.9000计算代码:>> plot(x,y,'o')>> % 给x和y轴加上标签>> xlabel('x的值')>> ylabel('y的值')>> n = size(x,1);>> k = (n*sum(x.*y)-sum(x)*sum(y))/(n*sum(x.*x)-sum(x)*sum(x))>> b = (sum(x.*x)*sum(y)-sum(x)*sum(x.*y))/(n*sum(x.*x)-sum(x)*sum(x))>> hold on % 继续在之前的图形上来画图形>> grid on % 显⽰⽹格线>> f=@(x) k*x+b; % 函数线>> fplot(f,[2.5,7]); % 设置显⽰范围>> legend('样本数据','拟合函数','location','SouthEast')计算过程:>> plot(x,y,'o')>> % 给x和y轴加上标签>> xlabel('x的值')>> ylabel('y的值')>> n = size(x,1);>> n*sum(x.*y)-sum(x)*sum(y)ans = 1.3710e+03>> n*sum(x.*x)-sum(x)*sum(x)ans = 654.4600>> k = (n*sum(x.*y)-sum(x)*sum(y))/(n*sum(x.*x)-sum(x)*sum(x))k = 2.0948>> b = (sum(x.*x)*sum(y)-sum(x)*sum(x.*y))/(n*sum(x.*x)-sum(x)*sum(x))b = -1.0548>> hold on>> grid on>> f=@(x) k*x+b;>> fplot(f,[2.5,7]);>> legend('样本数据','拟合函数','location','SouthEast')1.4 如何评价拟合的好坏线性函数是指对参数为线性(线性于参数)在函数中,参数仅以⼀次⽅出现,且不能乘以或除以其他任何的参数,并不能出现参数的复合函数形式。
数学建模精选经典课件之插值与拟合
可以看出这些点大致分 布在一条直线附近。
我们不妨用插值法,和拟合法两种方法对比 的看看他们的图像,找出他们的差别。
对这样的数据采用上一节介绍的插值方法近 似求描述物理规律的解析函数,必然存在下 列缺点:
在一个包含有很多数据点的区间内构 造插值函数,必然使用高次多项式。而 高次插值多项式是不稳定的。
700 850 950 1010 1070 1550 980
通过此例对最近邻点插值、双线性插值方法和双三次插值 方法的插值效果进行比较。
散乱节点定义
已知n个节点
其中
互不相同,
构造一个二元函数
通过全部已知节点,即
再用
计算插值,即
Matlab中网格节点插值的函数
cz=griddata(x0,y0,z0,cx,cy,’method’)
插值&拟合
一.插值法(内插,外插)
内插:是数学领域数值分析中的通过已知的离散数据 求未知数据的过程或方法。
在这里我们所讲的插值法指的就是内插法!
二.拟合法
科学和工程问题可以通过诸如采样、实验等方法获 得若干离散的数据,根据这些数据,我们往往希望得到 一个连续的函数(也就是曲线)或者更加密集的离散方 程与已知数据相吻合,这过程就叫做拟合 (fitting)。
数据的插值与拟合问题在很多赛题中都有应用。
与图形有关的问题很多和插值与拟合有关系,例如98 年美国赛的A题,生物组织切片的三位插值处理,94 年的A题逢山开路,山体海拔高度的插值计算。2001 年的公交调度拟合问题,2003年的饮酒驾车拟合问题, 2005年的雨量预报的评价的插值计算。甚至是上次的 东北三省赛的A题人口预测问题也涉及到了拟合计算。
互不相xj
xn
