插值与数据拟合模型

插值与数据拟合模型
插值与数据拟合模型

第二讲 插值与数据拟合模型

函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟用插值还是拟合,有时容易确定,有时则并不明显。 在数学建模过程中,常常需要确定一个变量依存于另一个或更多的变量的关系,即函数。但实际上确定函数的形式(线性形式、乘法形式、幂指形式或其它形式)时往往没有先验的依据。只能在收集的实际数据的基础上对若干合乎理论的形式进行试验,从中选择一个最能拟合有关数据,即最有可能反映实际问题的函数形式,这就是数据拟合问题。

一、插值方法简介

插值问题的提法是,已知1+n 个节点n j y x j j ,,2,1,0),,( =,其中j x 互不相同,不妨设b x x x a n =<<<= 10,求任一插值点)(*j x x ≠处的插值*y 。),(j j y x 可以看成是由某个函数)(x g y =产生的,g 的解析表达式可能十分复杂,或不存在封闭形式。也可以未知。

求解的基本思路是,构造一个相对简单的函数)(x f y =,使f 通过全部节点,即),,2,1,0()(n j y x f j j ==,再由)(x f 计算插值,即*)(*x f y =。

1.拉格朗日多项式插值

插值多项式

从理论和计算的角度看,多项式是最简单的函数,设)(x f 是n 次多项式,记作

0111)(a x a x a x a x L n n n n n ++++=-- (1)

对于节点),(j j y x 应有

n j y x L j j n ,,2,1,0,)( == (2)

为了确定插值多项式)(x L n 中的系数011,,,,a a a a n n -,将(1)代入(2),有

???????=++++=++++=++++---n n n n n n n

n n n n n n n n n y a x a x a x a y a x a x a x a y a x a x a x a 01110111110001010

(3) 记

T n T n n n n n n n n n n y y y Y a a a A x x x x x x X ),,,(,),,,(,11110011111

100

==??????

? ??=---- 方程组(3)简写成

Y XA = (4) 注意X det 是Vandermonde 行列式,利用行列式性质可得

∏≤<≤-=

n k j j k x x X 0)(det

因j x 互不相同,故0det ≠X ,于是方程(4)中A 有唯一解,即根据1+n 个节点可以确定唯一的n 次插值多项式。

拉格朗日插值多项式

实际上比较方便的做法不是解方程(4)求A ,而是先构造一组基函数:

n i x x x x x x x x x x x x x x x x x l n i i i i i i n i i i ,,2,1,0,)

())(()()())(()()(110110 =--------=+-+- (5) )(x l i 是n 次多项式,满足

n j i j

i j i x l j i ,,2,1,0,,0,1)( =???≠== (6)

∑==n i i i n x l y x L 0

)()( (7)

显然)(x L n 是满足(2)的n 次多项式,由方程(4)解的唯一性,(7)式表示的)(x L n 的解与(1)式相同。(5)、(7)称拉格朗日插值多项式,用)(x L n 计算插值称拉格朗日多项式插值。

误差估计

插值的误差通过插值多项式)(x L n 与产生节点),(j j y x 的)(x g 之差来估计,记作)(x R n 。虽然我们可能不知道)(x g 的解析表达式,但不妨设)(x g 充分光滑,具有1+n 阶导数。利用泰勒展开可以推出,对于任意],[b a x ∈。

),()()!1()()()()(0

)1(b a x x n g x L x g x R n

j j n n n ∈-+=-=∏=+ξξ (8) 若可以估计

1)1(|)(|++≤n n M g ξ (9)

),(,||)!1(|)(|0

1b a x x n M x R n

j j n n ∈-+=∏=+ξ (10) 实际上因为1+n M 常难以确定,所以(10)式并不能给出精确的误差估计。但是可能看出,n 增加,|)(|x R n 减少;g 越光滑,1+n M 越小,|)(|x R n 越小;x 越接近j x ,|)(|x R n 越小。

例 将区间??

????2,

0πn 等分,用x x g y cos )(==产生1+n 个节点,然后作拉格朗日插值多项式。用)(x L n 计算6

cos π(取4位有效数字)。估计|)(|x R n (取2,1=n )。 解 若1=n ,则)1,0(),(00=y x , ??? ??=0,2),(11πy x 。由(5)、(7)式 ππ

x x x l y l y x L 2102

002021)(11001-=--?+--?=+= 6667.066cos 1=??

? ??=ππL 若2=n ,则)1,0(),(00=y x ,??

? ??=??? ??=0,2),(,7071.0,4),(2211ππy x y x ,由(5)、(7)式。 ??

? ??-??? ??---?+??? ??-??? ??-??? ??--?+??? ??-??? ??-??? ??-??? ??-?=++=4202)4)(0(024042)0(7071.02040241)(2211002ππππππππππππx x x x x x l y l y l y x L ??? ??-??-??? ??-??? ??-=27071.01624822πππππx x x x

8508.066cos 2=??

? ??=ππL 。 估计|)(|x R n :对于x x g cos )(=可设11=+n M ,记节点间隔n

h 2π=。当()1,+∈j j x x x 时 4

||||2

1h x x x x j j <--+ nh h h h x x n j j ????<-∏= 324||2

于是(10)式给出

11

12)

2)(1(4)1(4324)!1(1|)(|++++=+=????+

6cos π

的精确值是0.8660(4位有效数字)??

? ????? ??6,621ππL L 的误差在|)(|x R n 范围内。 插值多项式的振荡

用拉格朗日插值多项式)(x L n 近似))((b x a x g ≤≤虽然随着节点个数的增加,)(x L n 的次数变大,多数情况下误差|)(|x R n 会变小,但n 增加时,)(x L n 的光滑性变坏,有时会出现很大的振荡。理论上,当∞→n 时,在],[b a 内并不能保证)(x L n 处处收敛于)(x g 。Runge 给出了一个有名的例子:

]5,5[,11)(2-∈+=

x x x g 取n j n

j x j ,,2,1,0,105 =+-=。对于 ,6,4,2=n 作)(x L n ,会得到如下图所示的结果。可以看出,对于较大的||x ,随着n 的增加,)(x L n 的振荡越来越大,事实上可以证明,仅当63.3||≤x 时,才有)()(lim x g x L n n =∞

→,而在此区间外,)(x L n 是发散的。 高次插值多项式的这些缺陷,促使人们转而寻求简单的低次数多项式插值。

2. 分段线性插值

简单地说,将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数,记作)(x I n ,它满足j j n y x I =)(,且)(x I n 在每个小区间],[1+j j x x 上是线性函数),,1,0(n j =。 )(x I n 可以表示为

∑==n

j j j n x l y x I 0)()( (12)

?????

??????=≤≤--=≤≤--=+++---其它时舍去时舍去,0)(,)0(,)(11111

1n j x x x x x x x j x x x x x x x x l j j j j

j j j j j j j (13)

)(x I n 有良好的收敛性,即对于],[b a x ∈有,)()(lim x g x I n n =∞

→。 用)(x I n 计算x 点的插值时,只用到x 左右的两个节点,计算量与节点个数n 无关。但n 越大,分段越多,插值误差越小。实际上用函数表作插值计算时,分段线性插值就足够了,如数学、物理中用的特殊函数表,数理统计中用的概率分布表等。

3. 三次样条插值

样条函数的由来

分段线性插值虽然简单,n 足够大时精度也相当高。但是折线在节点处显然不光滑,即)(x I n 在节点处导数不连续。这影响了它在诸如机械加工等领域(希望插值曲线光滑)中的应用。

所谓样条(Spline),来源于船舶、飞机等设计中描绘光滑外形曲线用的绘图工具。一根有弹性的细长木条用压铁固定在节点上,其它地方让它自然弯曲,如此画出的曲线称为样条曲线。因为这种曲线的曲率是处处连续的,所以要求样条函数的二阶导数连续。人们普遍使用的样条函数是分段三次多项式。 三次样条函数

三次样条函数 记作b x a x S ≤≤),(。要求它满足以下条件:

a) 在每个小区间),,1](,[1n i x x i i =-上是3次多项式;

b) 在b x a ≤≤上二阶导数连续;

c) n i y x S i i ,,1,0,)( ==。 (14) 由条件a ,不妨将)(x S 记为

{}n i x x x x S x S i i i ,,1],,[),()(1 =∈=-

i i i i i d x c x b x a x S +++=23)( (15)

其中i i i i d c b a ,,,为待定系数,共4n 个。由条件b ,

?????''=''-='='=+++)()(1,,2,1)

()()()(111i i i i i i i i i i i i x S x S n i x S x S x S x S (16)

容易看出,(14)、(16)式共含有4n -2个方程,为确定)(x S 的4n 个待定参数,尚需再给出2个条件。最常用的是所谓自然边界条件:

0)()(0=''=''n x S x S (17)

可以证明,4n 阶线性方程组(14)、(16)、(17)有唯一解,即)(x S 被唯一确定。但是,这种解法的工作量太大,方程组又常呈病态,所以实际上要设计简便的解法。

另外,像分段线性函数)(x I n 一样,三次样条函数)(x S 也有良好的收敛性,即在相当一般的条件下,)()(lim x g x S n =∞

→。 4. 用MATLAB 作插值计算

拉格朗日插值需先按照(5)、(7)式编写一个程序。

设n 个节点以数组x0,y0输入(注意:程序中用n 个节点,而不是(5)、(7)式中的n +1个节点),m 个插值点以数组x 输入。输出数组y 为m 个插值。比如可以写一个名为lagr1.m 的M 文件。

分段线性插值有现成的程序

y=interp1(x0,y0,x)

其中输入x0,y0,x 和输出y 的意义同上,数组长度自定义(x0,y0同长度,x,y 同长度)。

三次样条插值也有现成的程序

y=interp1(x0,y0,x,'spline')

y=spline(x0,y0,x)

其中输入x0,y0,x 和输出y 的意义同上,数组长度自定义(x0,y0同长度,x,y 同长度)。

例 对55,)

1(12≤≤-+=x x y ,用n (=11)个节点(等分)作上述三种插值,用m(=21)个插值点(等分)

作图,比较结果。

插值方法小结

拉格朗日插值是高次多项式插值(n +1个节点上用不超过n 次的多项式),插值曲线光滑,误差估计有表达式。但有振荡现象,收敛性不能保证。这种插值主要用于理论分析,实际意义不大。

分段线性和三次样条插值是低次多项式插值,简单实用,收敛性有保证,但不光滑,三次样条插值的整体光滑性已大有提高,应用广泛,唯误差估计较困难。

二、最小二乘法简介

下面先看一个例子。

例1 “人口问题”是我国最大社会问题之一,估计人口数量和发展趋势是我们制定一系列相关政策的基础。有人口统计年鉴,可查的我国从1949年至1994年人口数据智料如下:

(1)在直角坐标系上作出人口数的图象。

(2)估计出这图象近似地可看做一条直线。

(3)用以下几种方法(之一)确定直线方程,并算出1999年人口数。

方法一:先选择能反映直线变化的两个点,如(1949,541.67),(1984,1034.75)二点确定一条直线,方程为:N = 14.088 t – 26915.842,代入t =1999,得N ≈12.46亿。

方法二:可以多取几组点对,确定几条直线方程,将t = 1999代入,分别求出人口数,再取其算数平值。

方法三:可采用“最小二乘法”求出直线方程。

最小二乘法简介

设),(,),,(),,(2211n n y x y x y x 是直角平面坐标系下给出的一组数据,设n x x x <<< 21,我们可以把这组数据看作是一个离散的函数。根据观察,如果这组数据图象“很象”一条直线(不是直线),我们的问题是确定一条直线b ax y +=,使得它能"最好"的反映出这组数据的变化。

对个别观察值来说,用直线b ax y +=的值来近似代替其观察值时,所产生的误差可能是正的,也可能是负的。为了不使它们相加彼此抵消,可用

∑=+-n i i i b ax y

1

|)(| 来表示用直线b ax y +=来近似代原来实验数据时所产生的误差。为了在数学上处理方便,又把上式改成

∑=+-=n i i i b ax y d 1

2)]([

也就是说,我们选取常数b a ,,使得总误差d 达到最小。这就是所谓的最小二乘法。

用微分法不难求出上面最小值问题的驻点,这里不列出其结果。事实上,在MATLAB 中已有现成的求最小二乘问题的函数polyfit ,称为多项式拟合函数,并且这个函数允许多项式的次数可以是任意次的。除外,还可以用解线性方程组中的除法运算(矩阵除法)来求解。这两个方法的区别在于:用polyfit 函数求拟合问题时,多项式的次数必须从0次到最高次数n 之间每个次数都要出现。而如果需要选择一些次数进行拟合时,就可用矩阵除法运算来进行。矩阵除法还可以求一般的线性拟合问题,例如拟合函数不是多项式的线性拟合问题。

上面例1中的问题就可以用polyfit 来求解。

例2 用最小二乘法求一个形如2

的经验公式,数据如下:

解 x=[19 25 31 38 44];

y=[19.0 32.3 49.0 73.3 98.8];

x1=x.^2;

x1=[ones(5,1),x1’];

ab=x1\y’

x0=[19:0.2:44];

y0=ab(1)+ab(2)*x0.^2;

clf

plot(x,y,’o’, x0,y0,’-r’);

多项式拟合是线性拟合问题(注意:无论拟合的多项式次是多少,多项式拟合都是线性拟合!)。但在实际应用中,有时还需要作非线性拟合问题。

所谓线性拟合问题是指:需要拟合的函数中的未知常数都线性的。如函数2bx a y +=中,常数b a ,是线性的。但bx e ax y +=、bx ae y =中的常数b a ,都是非线性。这种函数的拟合问题称为非线性拟合问题。 有的非线性拟合问题可以化为线性拟合问题。例如在函数bx ae y =中,两边取对数,得bx a y +=ln ln ,再令a a ln 1=,y z ln =,则要拟合的函数就成bx a z +=1,这样就变成线性拟合问题了。但也有不能化成线性拟合问题的情况,如函数bx

e ax y +=就是这样。

在MATLAB5.3中求非线性拟合问题的函数是lsqcurvefit 。

例3 在区间]3,1[-内拟合函数bx e ax y +=。

解 用非线性拟合函数lsqcurvefit 来拟合。

先建立拟合函数。

% 建立拟合函数,文件名是nxxyhhx.m ,必须与函数名相同。

% 要拟合的函数中参数用x 表示,即x(1)=a x(2)=b ;

% 而拟合函数中x 的值则用xdata 表示。

function v=nxxyhhx(x,xdata)

v=x(1)*xdata+exp(x(2)*xdata);

以下指令在命令窗中进行。

clf;

x=linspace(-1,3,10);

y1=2*x+exp(-0.1*x); %原型函数

plot(x,y1,'-k')

hold on

y=y1+1.2*(rand(size(x))-0.5); %将原型函数加一些扰动

plot(x,y,'*g')

x0=[2.5,-0.5];

a=lsqcurvefit('nxxyhhx',x0,x,y) %用原始实验数据拟合函数nxxyhhx (x),

vpa([a(1),a(2)],8) % nxxyhhx (t)表达式中各项的系数。

y2=nxxyhhx(a,x);

plot(x,y2,'-r')

legend('原型函数','原始数据','用原始数据拟合的结果',4);

三、血液流量问题

小哺乳动物与小鸟的心跳速度比大哺乳动物与大鸟的快。如果动物的进化为每种动物确定了最佳心跳速度,为什么各种动物的最佳心跳速度不一样呢?由于热血动物的热量通过身体表面散失,所以它们要用大量的能量维持体温,而冷血动物在休息时只需要极少的能量,所以正在休息的热血动物似乎在维持体温。可以认为,热血动物可用的能量与通过肺部的血液流量成正比。

(1)试建立一个模型,将体重与通过心脏的基础(即休息时的)血液流量联系起来,用下面的数据检验你的模型。

(2)有许多可得到脉搏数据但没有血液流量数据的动物,建立一个模型将体重与基础脉搏联系起来,用下面的数据检验你的模型。

(3)在检验你在(1)和(2)中的模型时会出现不一致,试进行分析。

表一

表三

表五

这里只对该问题作一些拟合方面的练习。其它问题读者可自己进行讨论。

符号

用w 表示动物的体重,单位:千克

用v 表示动物的基础血液流量,单位:公升/分

用t 表示动物的年龄,单位:岁

用n 表示动物的脉搏,单位:次/分

假设动物的基础血液流量与动物的体重之间存在一定的函数关系)(w f v =,可以用表一中的数据来拟合这个函数。

函数)(w f 是一个什么样的函数呢?由于我们对“动物的基础血液流量与动物的体重”之间的关系并不清楚,所以只有根据表一中的数据得出函数)(w f 一些性质。

先将表一中的数据用MATLAB 软件作出图形。从图上可以看出,这个函数关系)(w f v =应当是一个单调增加的函数。因此,拟合的函数如果不具有这一性质的话,就不能作为是好的选择。

一般地,可以假设函数)(w f 是一个多项式,通常,这个多项式的次数不要超过3、4次,具体可根据拟合的效果来定。当然也可以用其它函数来拟合。

为了提高拟合的效果,函数)(w f 还可以用分段函数来拟合。

以下是用分段函数拟合的结果:

??

???∈-+-∈-+-+-==]24,16[,6265.7431526.9204756.0]16,1.4[,0649.433418.219727.21706.00033.0)(2234w w w w w w w w w f v

拟合函数图形是:

问题1:写出拟合函数)(w f v =和作出上面图形的MATLAB 指令。 同样可以拟合人的基础血液流量与体重之间的函数关系)(w g v =,可以用表二中的数据来拟合这个函数。这里用4次多项式来拟合,拟合的结果是:

]72,18[,98.16340.41728.000351.0000025.0234∈-+-+-=w w w w w v

拟合函数图形是:

问题2:写出拟合函数)(w g v =和作出上面图形的MATLAB 指令。 将上面拟合出来的函数)(w f v =和)(w g v =在它们的公共定义域]24,18[上的图形画出来,如下图所示。从图形上可以看出人类与动物之间的差异。

问题3:写出作出上面图形的MATLAB 指令。

下面考虑动物、人类的体重与基础脉搏的函数关系。

假设人类的体重与基础脉搏之间的函数关系是)(1n H w =,利用表二中的数据来拟合这个函数。这里用3次多项式拟合。拟合的结果是: ]96,60[,216.4502450.16143347.00002566.0)(231∈-+-==n n n n n H w

其图形是:

问题4:写出拟合函数)(1n H w =和作出上面图形的MATLAB 指令。 假设哺乳动物的体重与基础脉搏之间的函数关系是)(2n H w =,利用表五中的数据来拟合这个函数。这里用分段函数来拟合。由于当100

??

???

2n n n n n H w 图形如下。

问题5:写出拟合函数)(2n H w =和作出上面图形的MATLAB 指令。

假设小鸟类、大鸟类的体重与基础脉搏之间的函数关系分别是)(31n H w =和)(32n H w =,利用表三、

四中的数据来拟合这两个函数。拟合的结果是: ]615,135[,685.29561275.10031454.00000021.0)(2331∈+-+-==n n n n n H w

]401,65[,1004631.2)(310

32∈?==n n

n H w 其图形如下。

问题6:写出拟合函数)(31n H w =和)(32n H w =和作出上面图形的MATLAB 指令。 下面考虑人类的基础血液流量与基础脉搏的函数关系。

假设人类的基础血液流量与基础脉搏之间的函数关系是)(n U v =,利用表二中的数据来拟合这个函数。拟合结果是:

]96,60[,322.9893316.37482394.000217132.0)(23∈+-+-==n n n n n U v

考虑复合函数

)]([1n H g v ==-.2489e-4*(.256557e-3*n^3-.143347*n^2+16.2450*n-450.216)^4+.3506e-2*(.256557e-3*n ^3-.143347*n^2+16.2450*n-450.216)^3-.1728*(.256557e-3*n^3-.143347*n^2+16.2450*n-450.216)^2+.1113457380e-2*n^3-.622125980*n^2+70.5033000*n-1970.917440;

用MATLAB 软件画出上面两个函数的图形:

由上图可以看出,两者有较大的差异。原因就是前面的假设不合理,或不够完善。

下面我们假设人类的的基础血液流量是体重和年龄的二元函数),(t w V v =,用表二中的数据来拟合该函数。用二元二次多项式来拟合。结果是: ),(t w V v =1606.1471439.484792.00171689.00896015.0025085

.022++---=t w t wt w 问题7:写出以上相应的MATLAB 程序和作出上面图形的MATLAB 指令。

四、冰山的运输

在以盛产石油著称的波斯湾地区,浩瀚的沙漠覆盖着大地,淡水资源十分贫乏,不得不采用淡化海水的办法为国民提供用水,成本大约是每立方米淡水0.05英镑,有些专家提出从相距9600千米之遥的南极用拖船运送冰山到波斯湾,以取代淡化海水的办法。这个模型要从经济的角度研究冰山运输的可行性。为了计算用拖船运送冰山所获得的每立方米淡水所花的费用,我们需要关于拖船的租金、运量、燃料消耗及冰山运输过程中融化速度等方面的数据,以此作为建模所必须的准备工作。

模型准备

1.

2.燃料消耗(

3.冰山在运输过程中的融化速率(米/天)。指在冰山与海水接触处每天融化的深度,融化速率除与船速有关外,

建立模型的目的

选择拖船的船型和船速,使冰山到达目的地后,可得到的每立方米淡水所花的费用最低,并与海水淡化的费用相比较。

根据建模的目的和搜集到的有限的资料,需要对问题作如下的简化和假设:

模型假设

1. 拖船航行过程中船速不变,航行不考虑天气等任何因素的影响,总航行距离为9600千米。

2. 山形状为球形,球面各点融化速率相同。

3. 冰山到达目的地后,每立方米冰可融化成0.85立方米水。

模型构成

首先需要知道冰山体积在运输过程中的变化情况;

然后是计算航行过程中的燃料消耗;

由此可以算出到达目的地后的冰山体积和运费。

在计算过程中需要根据收集到的数据拟合出经验公式。

问题:1.理解建模过程中每一步的作用;

2.用MATLAB软件求解这个模型,写出相应的MATLAB指令。

五、水塔流量估计

某居民区有一供居民用水的圆柱形水塔,一般可以通过测量其水位来估计水的流量。但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量。通常水泵每天供水一两次,每次约两个小时。

水塔是一个高12.2米、直径17.4米的正圆柱。按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作。

下表是某一天的水位测量记录、试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天

六、加工工序的问题

设有14件工件等待在一台机床上加工,某些工件的加工必须安排在另一些工件加工完后才能进行,第j 件工件加工时间j t 及先期必须完工的工件号由下表给出:

(1).足条件的加工顺序,使各个工件完工的时间之和最小。

(2).若第j 号工件紧接着第i 号工件完工后开工,机床需要准备时间是

???>-<+=j

i j i j i j i t ij ),(2, 试设计一个满足条件的加工顺序,使机床花费的总时间最小。

(3).若工件完工时间超过一定时限u ,则需支付一定的补尝费,其数额等于超过的时间与费用率i w 之积:

对于u = 100,ij 安排一个满足条件的加工顺序,使总的补尝费用最少。上面的三个问题,它们都有一定的实际意义。对于问题(1)可以看着是:如果在某个时刻同时有很多客户需要加工自己的工件,而你用来加工这些工件的机床只有一台,这里假设机床不能同时加工两个及其以上的工件,这样客户们就需要排队等待加工,这时对于客户们来说当然希望等待的时间越少越好。 对于问题(2)则可以看着是:客户对于加工费用方面的考虑,因为有很多的实际情况是加工的费用与租用机床的时间长短有关的,租用机床的时间越长,则费用越高,而机床花费的时间包括准备时间和加工工件的时间两部分。

优化模型与问题的求解

根据问题的要求,先作一个PERT 网络图,如图所示。

下图是经简化之后得到的PERT 图。其中从第i 号工件到第j 号工件之间的箭头上的数字表示完成加工第j 号工件所需的加工时间。 优化准则1.当两个工件的加工次序允许交换的话,为了使得总的完工时间最小,应先加工所需加工时间较短的工件。

可以推广到多个工件的情形。即若有n 个工件等待加工,且这n 个工件的加工次序允许交换,则可将这n 个工件加工所需的时间按从小到大的次序进行排序,然后再按加工所需时间最小的工件先加工的次序依次进行加工,就是最优的加工顺序。

优化准则2.设0,0==u t ij ,记i

i i t w v =,如果第j i ,号工件的加工次序可以交换的话,为了使补尝费用最少,应先加工j i v v ,值较大的工件。

七、截断切割

某些工业部门(如贵重石材加工等)采用截断切割的加工方式。这里“截断切割”是指将物体沿某个切割平面分成两部分。从一个长方体中加工出一个已知尺寸、位置预定的长方体(这两个长方体的对应表面是平行的),通常要经过6次截断切割。

设水平切割单位面积的费用是垂直切割单位面积费

用的r 倍,且当先后两次垂直切割的平面(不管它们之间

是否穿插水平切割)不平行时,因调整刀具需额外费用e 。

试为这些部门设计一种安排各面加工次序(称“切割

方式”)的方法,使加工费用最少。(由工艺要求,与水

平工作台接触的长方体底面是事先指定的)

详细要求如下:1)需考虑的不同切割方式的总数。

2)给出上述问题的数学模型和求解方法。

3)试对某部门用的如下准则作出评价:每次选择一

个加工费用最少的待切割面进行切割。

4)对于e=0的情形有无简明的优化准则。

5)用以下实例验证你的方法:待加工长方体和成品

长方体的长、宽、高分别为10、14.5、19和3、2、4,二

者左侧面、正面、底面之间的距离分别为6、7、9(单位

均为厘米)。垂直切割费用为每平方厘米1元,r 和e 的

数据有以下4组:

a. r=1, e = 0;

b. r =1.5, e =0;

c. r =8, e =0;

d. r =1.5; 2 <= e <= 15. 对最后一组数据应给出所有

最优解,并进行讨论。

插值与数据拟合模型

第二讲 插值与数据拟合模型 函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟用插值还是拟合,有时容易确定,有时则并不明显。 在数学建模过程中,常常需要确定一个变量依存于另一个或更多的变量的关系,即函数。但实际上确定函数的形式(线性形式、乘法形式、幂指形式或其它形式)时往往没有先验的依据。只能在收集的实际数据的基础上对若干合乎理论的形式进行试验,从中选择一个最能拟合有关数据,即最有可能反映实际问题的函数形式,这就是数据拟合问题。 一、插值方法简介 插值问题的提法是,已知1+n 个节点n j y x j j ,,2,1,0),,( =,其中j x 互不相同,不妨设b x x x a n =<<<= 10,求任一插值点)(*j x x ≠处的插值*y 。),(j j y x 可以看成是由某个函数)(x g y =产生的,g 的解析表达式可能十分复杂,或不存在封闭形式。也可以未知。 求解的基本思路是,构造一个相对简单的函数)(x f y =,使f 通过全部节点,即),,2,1,0()(n j y x f j j ==,再由)(x f 计算插值,即*)(*x f y =。 1.拉格朗日多项式插值 插值多项式 从理论和计算的角度看,多项式是最简单的函数,设)(x f 是n 次多项式,记作 0111)(a x a x a x a x L n n n n n ++++=-- (1) 对于节点),(j j y x 应有 n j y x L j j n ,,2,1,0,)( == (2) 为了确定插值多项式)(x L n 中的系数011,,,,a a a a n n -,将(1)代入(2),有 ???????=++++=++++=++++---n n n n n n n n n n n n n n n n y a x a x a x a y a x a x a x a y a x a x a x a 01110111110001010 (3) 记 T n T n n n n n n n n n n y y y Y a a a A x x x x x x X ),,,(,),,,(,11110011111 100 ==?????? ? ??=---- 方程组(3)简写成 Y XA = (4) 注意X det 是Vandermonde 行列式,利用行列式性质可得 ∏≤<≤-= n k j j k x x X 0)(det 因j x 互不相同,故0det ≠X ,于是方程(4)中A 有唯一解,即根据1+n 个节点可以确定唯一的n 次插值多项式。 拉格朗日插值多项式 实际上比较方便的做法不是解方程(4)求A ,而是先构造一组基函数: n i x x x x x x x x x x x x x x x x x l n i i i i i i n i i i ,,2,1,0,) ())(()()())(()()(110110 =--------=+-+- (5) )(x l i 是n 次多项式,满足

曲线拟合与插值理论与实例

第11章曲线拟合与插值 在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。这种方法在下一节讨论。这里讨论的方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。图11.1说明了这两种方法。标有'o'的是数据点;连接数据点的实线描绘了线性内插,虚线是数据的最佳拟合。 11.1 曲线拟合 曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。

图11.1 2阶曲线拟合 在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。为了阐述这个函数的用法,让我们以上面图11.1中的数据开始。 ? x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; ? y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; 为了用polyfit,我们必须给函数赋予上面的数据和我们希望最佳拟合数据的多项式的阶次或度。如果我们选择n=1作为阶次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择n=2作为阶次,得到一个2阶多项式。现在,我们选择一个2阶多项式。 ? n=2; % polynomial order ? p=polyfit(x, y, n) p = -9.8108 20.1293 -0.0317 polyfit的输出是一个多项式系数的行向量。其解是y = -9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。

插值和拟合

插值和拟合的定义 1.定义:若x为自变量,y为因变量,则x与y之间有一个确定的函数表达式f(x),现实中,这个函数关系式很难确定,运用逼近的方法处理:取得一组数据点(xi,yi,i=1,2,3...n),构造一个简单函数p(x)作为f(x)的近似表达式,且p(x)满足: p(xi)=f(xi)=yi i=1,2,3,4...n 这就是插值问题。 若不要求p(x)通过所有数据点,而是要求曲线在某种准则下整体与数据点接近,例如运用最小二乘法得到p(x),这种问题称为拟合。 2插值类型:一维插值是指对一维函数y=f(x)进行插值,二维插值就是对二维函数y=f(x,y)进行插值. 3.插值的matlab函数及其应用 (1).一维插值:yi=interp1(x,Y,xi,’method’),对一组节点(x,Y)进行插值,计算插值点xi 的函数值。method包括了一下几种类型: Nearest:线性最邻近插值(速度最快,平滑性最差) Linear:线性插值(默认项)(生成效果连续,但是顶点处有坡度变化) Spline:三次样条插值(运行时间较长,插值数据和导数均连续) Pchip:分段三次艾米尔特(hermite)插值 Cubic:双三次插值(较高版本的matlab不能运用,v5cubic能够运行) 运行的代码及插值效果: clear; clc; x=0:0.2:2; y=(x.^2-3*x+5).*exp(-3*x).*sin(x); xi=0:0.03:2; yi_nearest=interp1(x,y,xi,'nearest'); yi_linear=interp1(x,y,xi,'linear'); yi_spline=interp1(x,y,xi,'spline'); yi_pchip=interp1(x,y,xi,'pchip'); yi_cubic=interp1(x,y,xi,'v5cubic'); figure; hold on; subplot(2 ,3, 1); plot(x,y,'r*'); title('已知数据值'); subplot(2, 3 ,2); plot(x,y,'r*',xi,yi_nearest,'b-'); title('最邻近插值');

插值与拟合(使用插值还是拟合)

利用matlab实现插值与拟合实验 张体强1026222 张影 晁亚敏 [摘要]:在测绘学中,无论是图形处理,还是地形图处理等,大多离不开插值与拟合的应用,根据插值与拟合原理,构造出插值和拟合函数,理解其原理,并在matlab平台下,实现一维插值,二维插值运算,实现多项式拟合,非线性拟合等,并在此基础上,联系自己所学专业,分析其生活中特殊例子,提出问题,建立模型,编写程序,以至于深刻理解插值与拟合的作用。 [关键字]: 测绘学插值多项式拟合非线性拟合 [ Abstract]: in surveying and mapping, whether the graphics processing, or topographic map processing and so on, are inseparable from the interpolation and fitting application, according to the interpolation and fitting theory, construct the fitting and interpolation function, understanding its principle, and MATLAB platform, achieve one-dimensional interpolation, two-dimensional interpolation, polynomial fitting, non-linear fitting, and on this basis, to contact their studies, analysis of their living in a special example, put forward the question, modeling, programming, so that a deep understanding of interpolation and fitting function. [ Key words]: Surveying and mapping interpolation polynomial fitting nonlinear

实验七数据插值与曲线拟合实验并且附有答案

试验七数据插值与曲线拟合实验 一、试验目的 1.掌握数据统计和分析的方法。 2.掌握数据插值与曲线拟合的方法及其应用。 二、试验内容 1.已知原始数据)5/ x y pi x- = =,,插值点为 * 4:1:0x * e x p( ). sin( =,试用四种不同的插值方法进行插值,并在一副图中绘出四种4:3.0:0 pi xi* 插值曲线。 x=0:1:4*pi; y=sin(x).*exp(-x/5); xi=0:0.3:4*pi; y1=interp1(x,y,xi,'nearest'); y2=interp1(x,y,xi,'linear'); y3=interp1(x,y,xi,'spline'); y4=interp1(x,y,xi,'cubic'); plot(x,y,'r',xi,y1,'b',xi,y2,'g',xi,y3,'y',xi,y4,'k') 2.考虑下面的数据,一位举重教练收集了不同性别的举重动员每个年龄的最大举重磅数,他相信这三者之间存在着函数关系,请创建一个年龄数组,以便估算当前队伍中队员(要求13~20岁每一岁都有)的最大举重。 y=[270 290 330 350 380;250 270 310 330 360 ]'; X=[ones(size(t)) t t.^2]; Z=X\y; %得到系数 T=(13:20)'; Y=[ones(size(T)) T T.^2]*Z 运行结果:Y = 269.1990 249.1990 280.8565 260.8565 293.7351 273.7351 307.8351 287.8351 323.1562 303.1562

(完整版)Matlab学习系列13.数据插值与拟合

13. 数据插值与拟合 实际中,通常需要处理实验或测量得到的离散数据(点)。插值与拟合方法就是要通过离散数据去确定一个近似函数(曲线或曲面),使其与已知数据有较高的拟合精度。 1.如果要求近似函数经过所已知的所有数据点,此时称为插值问 题(不需要函数表达式)。 2.如果不要求近似函数经过所有数据点,而是要求它能较好地反 映数据变化规律,称为数据拟合(必须有函数表达式)。 插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数。区别是:【插值】不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。【拟合】要求得到一个具体的近似函数的表达式。 因此,当数据量不够,但已知已有数据可信,需要补充数据,此时用【插值】。当数据基本够用,需要寻找因果变量之间的数量关系(推断出表达式),进而对未知的情形作预测,此时用【拟合】。

一、数据插值 根据选用不同类型的插值函数,逼近的效果就不同,一般有:(1)拉格朗日插值(lagrange插值) (2)分段线性插值 (3)Hermite (4)三次样条插值 Matlab 插值函数实现: (1)interp1( ) 一维插值 (2)intep2( ) 二维插值 (3)interp3( ) 三维插值 (4)intern( ) n维插值 1.一维插值(自变量是1维数据) 语法:yi = interp1(x0, y0, xi, ‘method’) 其中,x0, y0为原离散数据(x0为自变量,y0为因变量);xi为需要插值的节点,method为插值方法。 注:(1)要求x0是单调的,xi不超过x0的范围; (2)插值方法有‘nearest’——最邻近插值;‘linear’——线性插值;‘spline’——三次样条插值;‘cubic’——三次插值;

数学建模案例分析插值与拟合方法建模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,,)(11 1 11 =≤<--+--= ----- 可以证明,当分点足够细时,分段线性插值是收敛的。其缺点是不能形成一条光滑曲线。 例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。

基于MATLAB的数值计算_插值及曲线拟合

基于MATLAB的数值计算一插值及曲线拟合摘 要:本文基于MATLA的数值计算功能,重点介绍了插值及曲线拟合的应用及特点. 关键词:MATLAB;数值计算;插值及曲线拟合本文从MATLAB的功能特点出发,阐述了它在数值计算中的基本要素和相关函数,以工程计算中常用到的数据插值和曲线拟合为主旨,通过三个实例,验证、分析了用MATLAB进行数据的插值和曲线拟合的合理性、可靠性和 准确性。 1插值及曲线拟合 插值与拟合是来源于实际、又广泛应用于实际的两种重要方法.随着计算机的不断发展及计算水平的提高,它们在国民经济和科学研究等方面扮演着越来越重要的角色。 1 .1插 值 插值计算在数据拟合和数据平滑等方面应用普遍。插值计算的目的是通过离散的数据点来获得更为丰富的信息,它可以细分为一维插值和二维插值。一维插值是在线的方向上对数值点进行插值:二维插值则可以理解为在面的方向上进行插值。比较典型的例子就是在绘图过程中,当绘制二维曲线时,利用一维插值从少量数据中获得足够的信息进行描点;在绘制三维曲线时,则必须对两个方向的数据进行插值来获得其他点的信息。 1.2曲线拟合 很多的时候,在工程研究与计算中得到的原始数据往往只是在某些点上的离散值,它们所代表的函数关系不易得出一个容易表示的数学表达式;或者所得出的数据的函数表达式比较复杂,不易计算,这样在计算这些函数其他所需要的数值方面就带来了诸多不便.解决这个难题的方法之一就是利用一些性质相对“好”的简单函数,在某种规定和标准之下,去拟合或逼近这些“困难”函数,然后通过这些简单函数去获得所希望得到的结果。曲线拟合根据拟合方法的不同,有参数拟合和非参数拟合。参数拟合,曲线不通过所有点,采用最小二乘法:非参数拟合,曲线通过所有点,采用插值法。 2插值及曲线拟合应用实例 2. 1一维插值与拟合应用 一维插值是进行数据分析和曲线拟合的重要手段,interp 1函数使用多项式技术,用多项式函数拟合所提供的数据,计算目标插值点上的

插值和拟合区别

插值和拟合区别 运输1203黎文皓通过这个学期的《科学计算与数学建模》课程的学习,使我掌握了不少数学模型解决实际问题的方法,其中我对于插值与拟合算法这一章,谈一谈自己的看法可能不是很到位,讲得不好的地方也请老师见谅。 首先,举一个简单的例子说明一下这个问题。 如果有100个平面点,要求一条曲线近似经过这些点,可有两种方法:插值和拟合。 我们可能倾向于用一条(或者分段的多条)2次、3次或者说“低次”的多项式曲线而不是99次的曲线去做插值。也就是说这条插值曲线只经过其中的3个、4个(或者一组稀疏的数据点)点,这就涉及到“滤波”或者其他数学方法,也就是把不需要90多个点筛选掉。如果用拟合,以最小二乘拟合为例,可以求出一条(或者分段的多条)低次的曲线(次数自己规定),逼近这些数据点。具体方法参见《数值分析》中的“线性方程组的解法”中的“超定方程的求解法”。经过上面例子的分析,我们可以大致的得到这样一个结论。插值就是精确经过,拟合就是逼近。 插值和拟合都是函数逼近或者数值逼近的重要组成部分。他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律目的,即通过"窥几斑"来达到"知全豹"。 所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调

整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。 而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。 从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。 不过是插值还是拟合都是建立在一定的数学模型的基础上进行的。多项式插值虽然在一定程度上解决了由函数表求函数的近似表达式的问题,但是在逼近曲线上有明显的缺陷,很可能不能很好的表示函数的走向,存在偏差,在实际问题中我们往往通过函数近似表达式的拟合法来得到一个较为准却的表达式。

数值分析法 曲线拟合法插值建模法

数值分析法 相关知识 在生产和科学实验中,自变量x 与因变量y 间的函数关系()y f x =有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。当要求知道其它点的函数值时,需要估计函数值在该点的值。 为了完成这样的任务,需要构造一个比较简单的函数()y x ?=,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数()y x ?=有很多方法。根据测量数据的类型有以下两类处理观测数据的方法。 (1)测量值是准确的,没有误差,一般用插值。 (2)测量值与真实值有误差,一般用曲线拟合。 曲线拟合法 已知离散点上的数据集1122{(,),(,),,(,)}n n x y x y x y ,即已知在点集12{,,,}n x x x 上的函数值12{,,,}n y y y ,构造一个解析函数(其图形为一曲线)使()f x 在原离散点 i x 上尽可能接近给定的i y 值,这一过程称为曲线拟合。 曲线拟合的一般步骤是先根据实验数据,结合相关定律,将要寻求的最恰当的拟合曲线方程形式预测出来,再用其他的数学方法确定经验公式中的参数。 对于事先给定的一组数据,确定经验公式一般可分为三步进行: (1)、确定经验公式的形式:根据系统和测定的数据的特点,并参照已知图形的特点确定经验公式的形式。 (2)、确定经验公式中的待定系数:计算待定系数的方法有许多常用的法有图示法、均值法、差分法、最小二乘法、插值法等。 (3)、检验:求出经验公式后,还要将测定的数据与用经验公式求出的理论

数据作比较,验证经验公式的正确性,必要时还要修正经验公式。 关于确定经验公式的形式,可从以下几个方面入手: (1)、利用已知的结论确定经验公式形式,如由已知的胡克定律可以确定在一定条件下,弹性体的应变与应力呈线性关系等。 (2)、从分析实验数据的特点入手,将之与已知形式的函数图形相对照,确定经验公式的形式。 (3)、描点作图法:将已知的点用光滑的曲线连接起来,寻找曲线的形式。 (4)、多项式近似、线性插值或样条插值等。多项式近似是工程中十分常见的方法,它首先需要确定多项式的次数,一般可以用差分法、差商法来估计。 <一>、差分方程法 <1>、差分方程:差分方程反映的是关于离散变量的取值与变化规律。通过建立一个或几个离散变量取值所满足的平衡关系,从而建立差分方程。 (1)、说明:差分方程就是针对要解决的目标,引入系统或过程中的离散变量,根据实际背景的规律、性质、平衡关系,建立离散变量所满足的平衡关系等式,从而建立差分方程。通过求出和分析方程的解,或者分析得到方程解的特别性质(平衡性、稳定性、渐近性、振动性、周期性等),从而把握这个离散变量的变化过程的规律,进一步再结合其他分析,得到原问题的解。 (2)、应用:差分方程模型有着广泛的应用。实际上,连续变量可以用离散变量来近似和逼近,从而微分方程模型就可以近似于某个差分方程模型。差分方程模型有着非常广泛的实际背景。在经济金融保险领域、生物种群的数量结构规律分析、疾病和病虫害的控制与防治、遗传规律的研究等许许多多的方面都有着非常重要的作用。可以这样讲,只要牵涉到关于变量的规律、性质,就可以适当地用差分方程模型来表现与分析求解。

数学建模插值及拟合详解

插值和拟合 实验目的:了解数值分析建模的方法,掌握用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方向和y方向走非常小的一步。 表3-1给出了下轮廓线上的部分数据 但工艺要求铣床沿x方向每次只能移动0.1单位. 这时需求出当x坐标每改变0.1单位时的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 on

回归、插值、逼近、拟合的区别

回归、插值、逼近、拟合的区别 1、回归:一般指线性回归,是求最小二乘解的过程。在求回归前,已经假设所有型值点同时满足某一曲线方程,计算只要求出该方程的系数 2、多项式插值:用一个多项式来近似代替数据列表函数,并要求多项式通过列表函数中给定的数据点。(插值曲线要经过型值点。)离散的点 3、多项式逼近:为复杂函数寻找近似替代多项式函数,其误差在某种度量意义下最小。(逼近只要求曲线接近型值点,符合型值点趋势。)连续的函数 4、多项式拟合:在插值问题中考虑给定数据点的误差,只要求在用多项式近似代替列表函数时,其误差在某种度量意义下最小。离散的点 注意: 表列函数:给定n+1个不同的数据点(x0,y0),(x1,y1)...,(xn,yn),称由这组数据表示的函数为表列函数。 逼近函数:求一函数,使得按某一标准,这一函数y=f(x)能最好地反映这一组数据即逼近这一表列函数,这一函数y=f(x)称为逼近函数 插值函数:根据不同的标准,可以给出各种各样的函数,如使要求的函数y=f(x)在以上的n+1个数据点出的函数值与相应数据点的纵坐标相等,即yi=f(x1)(i=0,1,2....n)这种函数逼近问题称为插值问题,称函数y=f(x)为数据点的插值函数,xi称为插值点。 插值和拟合都是函数逼近或者数值逼近的重要组成部分 他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的 目的,即通过"窥几斑"来达到"知全豹"。 简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。 而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。 从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。

matlab实现插值法和曲线拟合电子教案

m a t l a b实现插值法和 曲线拟合

插值法和曲线拟合 电子科技大学 摘要:理解拉格朗日多项式插值、分段线性插值、牛顿前插,曲线拟合,用matlab编程求解函数,用插值法和分段线性插值求解同一函数,比较插值余项;用牛顿前插公式计算函数,计算函数值;对于曲线拟 合,用不同曲线拟合数据。 关键字:拉格朗日插值多项式;分段线性插值;牛顿前插;曲线拟合 引言: 在数学物理方程中,当给定数据是不同散点时,无法确定函数表达式,求解函数就需要很大的计算量,我们有多种方法对给定的表格函数进行求解,我们这里,利用插值法和曲线拟合对函数进行求解,进一步了解函数性质,两种方法各有利弊,适合我们进行不同的散点函数求解。 正文: 一、插值法和分段线性插值 1拉格朗日多项式原理 对某个多项式函数,已知有给定的k + 1个取值点: 其中对应着自变量的位置,而对应着函数在这个位置的取值。 假设任意两个不同的x j都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为: 其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为: [3] 拉格朗日基本多项式的特点是在上取值为1,在其它的点 上取值为0。 2分段线性插值原理 给定区间[a,b], 将其分割成a=x 0

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MA TLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MA TLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 (2) 编写MA TLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0, , 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0 )()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为

插值法与数据拟合法

第七讲插值方法与数据拟合 § 7.1 引言 在工程和科学实验中,常常需要从一组实验观测数据(x i , y i ) (i= 1, 2, …, n) 揭示自变量x与因变量y 之间的关系,一般可以用一个近似的函数关系式y = f (x) 来表示。函数f (x) 的产生办法因观测数据与要求的不同而异,通常可采用两种方法:插值与数据拟合。 § 7.1.1 插值方法 1.引例1 已经测得在北纬32.3?海洋不同深度处的温度如下表: 根据这些数据,我们希望能合理地估计出其它深度(如500米、600米、1000米…)处的水温。 解决这个问题,可以通过构造一个与给定数据相适应的函数来解决,这是一个被称为插值的问题。 2.插值问题的基本提法 对于给定的函数表 其中f (x) 在区间[a, b] 上连续,x0,x1,…,x n为[a, b] 上n + 1个互不相同的点,要求在一个性质优良、便于计算的函数类{P(x)} 中,选出一个使 P(x i ) = y i,i= 0, 1, …, n(7.1.1) 成立的函数P(x) 作为 f (x) 的近似,这就是最基本的插值问题(见图7.1.1)。 为便于叙述,通常称区间[a, b] 为插值区间,称点x0,x1,…,x n为插值节点,称函数类{P(x)} 为插值函数类,称式(7.1.1) 为插值条件,称函数P(x) 为插值函数,称f (x) 为被插函数。求插值函数P(x) 的方法称为插值法。 § 7.1.2 数据拟合 1.引例2 在某化学反应中,已知生成物的浓度与时间有关。今测得一组数据如下: 根据这些数据,我们希望寻找一个y = f (t) 的近似表达式(如建立浓度y与时间t之间的经验公式等)。从几何上看,就是希望根据给定的一组点(1, 4.00),…,(16, 10.60),求函数y = f (t) 的图象的一条拟合曲

MATLAB插值与拟合实验报告材料

实用标准文档 MATLAB实验报告 题目:第二次实验报告 学生姓名: 学院: 专业班级: 学号: 年月

MATLAB第二次实验报告 ————插值与拟合插值即在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn}通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小。 一、插值 <1>拉格朗日插值(课上例子) m=101; x=-5:10/(m-1):5; y=1./(1+x.^2);z=0*x; plot(x,z,'r',x,y,'LineWidth',1.5), gtext('y=1/(1+x^2)'),pause n=3; x0=-5:10/(n-1):5; y0=1./(1+x0.^2); y1=fLagrange(x0,y0,x); hold on,plot(x,y1,'b'),gtext('n=2'),pause, hold off n=5;

x0=-5:10/(n-1):5; y0=1./(1+x0.^2); y2=fLagrange(x0,y0,x); hold on,plot(x,y2,'b:'),gtext('n=4'),pause, hold off n=7; x0=-5:10/(n-1):5; y0=1./(1+x0.^2); y3=fLagrange(x0,y0,x);hold on, plot(x,y3,'r'),gtext('n=6'),pause, hold off n=9; x0=-5:10/(n-1):5; y0=1./(1+x0.^2); y4=fLagrange(x0,y0,x);hold on, plot(x,y4,'r:'),gtext('n=8'),pause, hold off n=11; x0=-5:10/(n-1):5; y0=1./(1+x0.^2); y5=fLagrange(x0,y0,x);hold on, plot(x,y5,'m'),gtext('n=10') 运行后得

Matlab 曲面插值和拟合

Matlab 曲面插值和拟合 插值和拟合都是数据优化的一种方法,当实验数据不够多时经常需要用到这种方法来画图。在matlab中都有特定的函数来完成这些功能。 这两种方法的确别在于: 当测量值是准确的,没有误差时,一般用插值; 当测量值与真实值有误差时,一般用数据拟合。 插值: 对于一维曲线的插值,一般用到的函数yi=interp1(X,Y,xi,method) ,其中method包括nearst,linear,spline,cubic。 对于二维曲面的插值,一般用到的函数 zi=interp2(X,Y,Z,xi,yi,method),其中method也和上面一样,常用的是 cubic。 拟合: 对于一维曲线的拟合,一般用到的函数p=polyfit(x,y,n)和yi=polyval(p,xi),这个是最常用的最小二乘法的拟合方法。 对于二维曲面的拟合,有很多方法可以实现,但是我这里自己用的是Spline Toolbox里面的函数功能。具体使用方法可以看后面的例子。 对于一维曲线的插值和拟合相对比较简单,这里就不多说了,对于二维曲面的插值和拟合还是比较有意思的,而且正好胖子有些数据想让我帮忙处理一下,就这个机会好好把二维曲面的插值和拟合总结归纳一 下,下面给出实例和讲解。 原始数据 x=[1:1:15]; y=[1:1:5]; z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29; 0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29; 0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35; 0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36; 0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37]; z是一个5乘12的矩阵。 直接用原始数据画图如下: surf(x,y,z) title(’Original data Plot’); xlabel(’X'), ylabel(’Y'), zlabel(’Z'), colormap, colorbar; axis([0 15 0 6 0.15 0.55])

数据插值与数据拟合

数据插值与数据拟合 1、一维数据插值: y=interp1(x0,y0,x,’method’) ‘method’共有四种方法选择: ‘nearest’ 最近点插值法取较近点的值 ‘linear’线性插值法用直线连接数据点 ‘spline’样条插值法用三次样条曲线通过数据点 ‘cubic’立方插值法用三次曲线通过数据点 例:对,,用个节点(等分)作上述四种插值,用m=21个插值点(等分)作图比较结果; 练习: 根据程序washu.可得,x=0:3的193个数据,即对应得y值,现在将 x=0:56图形形状不变 从而得到x=1:56的对应的y值,并且比较分析,哪一种插值效果好 2、 数据拟合 P=polyfit(x,y,n)返回系数从高到低 polyval(p,x) 例、在化工生产中获得的氯气的等级随生产时间下降。假定在时,与之间有如下形式的非线性模型: 现收集了44组数据: 80.49160.43280.41 80.49180.46280.40 100.48180.45300.40 100.47200.42300.40 100.48200.42300.38 100.47200.43320.41 120.46200.41320.40 120.46220.41340.40 120.45220.40360.41 120.43240.42360.38

140.45240.40380.40 140.43240.40380.40 140.43260.41400.39 160.44260.40420.39 160.43260.41 要求利用该数据求的值,以确定模型。 练习 问题1: N P K 施肥量(kg/ha) 产量 (t/ha) 施肥量 (kg/ha) 产量 (t/ha) 施肥量 (kg/ha) 产量 (t/ha) 0 34 67 101 135 202 259 336 404 47115.18 21.36 25.72 32.29 34.03 39.45 43.15 43.46 40.83 30.75 24 49 73 98 147 196 245 294 342 33.46 32.47 36.06 37.96 41.04 40.09 41.26 42.17 40.36 42.73 47 93 140 186 279 372 465 558 651 18.98 27.35 34.86 38.52 38.44 37.73 38.43 43.87 42.77 46.22 (1)将上面第一个表中以施肥量为自变量n,产量为函数y,用最小二乘法拟合函数,输出a1,b1,c1的值,给出拟合误差R^2,并进行图形比较(2) 将上面第二个表中以施肥量为自变量p,产量为函数y,用最小二乘法拟合函数,输出a,b的值,给出拟合误差R^2,并进行图形比较 (3) 将上面第三个表中以施肥量为自变量k,产量为函数y,用最小二乘法拟合函数,输出a3,b3,c3的值,给出拟合误差R^2,并进行图形比较Quadratic: Compound:

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MATLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MATLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 3. 在某冶炼过程中,根据统计数据的含碳量与时间关系如下表,试求含碳量与时间t 的拟合曲线。

(1) 用最小二乘法进行曲线拟合; (2) 编写MATLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0,, 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0)()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为 1102110] ,,,[],,,[],,,[x x x x x f x x x f x x x f n n n n --= - 则n 次多项式 ) ())(](,,[) )(](,,[)](,[)()(11010102100100----++--+-+=n n n x x x x x x x x x f x x x x x x x f x x x x f x f x N 差商表的构造过程:

相关文档
最新文档