文档库 最新最全的文档下载
当前位置:文档库 › 第5章 插值与拟合

第5章 插值与拟合

第5章 插值与拟合
第5章 插值与拟合

第5章 插值与拟合

大多数数学建模问题都是从实际工程或生活中提炼出来的,往往带有大量的离散的实验观测数据,要对这类问题进行建模求解,就必须对这些数据进行处理。其目的是为了从大量的数据中寻找它们反映出来的规律。用数学语言来讲,就是要找出与这些数据相应的变量之间的近似关系。对于非确定性关系,一般用统计分析的方法来研究,如回归分析的方法。对于确定性的关系,即变量间的函数关系,一般可用数据插值与拟合的方法来研究。本章学习数据插值与拟和的基本方法和相关的MATLAB 命令。

5.1 引例

简单地讲,插值是对于给定的n 组离散数据,寻找一个函数,使该函数的图象能严格通过这些数据对应的点。拟合并不要求函数图象通过这些点,但要求在某种准则下,该函数在这些点处的函数值与给定的这些值能最接近。

例1:对于下面给定的4组数据,求在110=x 处y 的值。

这就是一个插值问题。我们可以先确定插值函数,再利用所得的函数来求

110=x 处y 的近似值。需要说明的是这4组数据事实上已经反映出x 与y 的函数

关系为:x y =

,当数据量较大时,这种函数关系是不明显的。也就是说,插值

方法在处理数据时,不论数据本身对应的被插值函数)(x f y =是否已知,它都要找到一个通过这些点的插值函数,此函数是被插值函数的一个近似,从而通过插值函数来计算被插值函数在未知点处的近似值。对于所构造的插值函数要求相对简单,便于计算,一般选用多项式函数来逼近。

例2:观测物体的直线运动,得以下数据,求物体的运动方程。

这是一个拟合问题,其明显的特征是与数据对应的函数未知,要找到一个函数

来比较准确地表述这些数据蕴藏的规律。显然,我们找出的函数不一定会通过这些点,也没有必要,因为观测数据本身并不是完全准确的。

5.2 理论基础:数据插值与拟合

5.2.1插值问题的原理与方法

以一维多项式插值方法为例。一般地,对于给定的n +1组数据

),,2,1,0(),(n i y x i i =,),,2,1,0(n i x i =互不相等,确定一个n 次多项式)(x P n ,使),,2,1,0()(n i y x P i i n ==。其中)(x P n 称为插值函数,),(i i y x 为

插值节点,)

max ,min (],[00i n

i i n

i x b x a b a ≤≤≤≤==为插值区间,

),,2,1,0()(n i y x P i i n ==为插值条件。

当1=n 时为线性插值。)(1x P 表示过两点),(),(1100y x y x 、的直线方程,即

)()(00

10

101x x x x y y y x P ---+

=,

稍加整理,即得 10

100101

1)(y x x x x y x x x x x P --+--=

记 101

0)(x x x x x l --=

,0

101)(x x x x x l --=,

则它们满足:)1,0,(10)(=?

??=≠=j i j i j

i x l j i 。

称)(x l i 为基函数,那么)(1x P 是两个基函数的线性组合。

当2=n 时为抛物插值。)(2x P 表示过三点),(),(),(221100y x y x y x 、、的抛物线方程,仿照线性插值的情形取基函数)

)(()

)(()(2010210x x x x x x x x x l ----=

))(())(()(2101201x x x x x x x x x l ----=

,)

)(()

)(()(0212012x x x x x x x x x l ----=,使它们满足

)2,1,0,(10)(=???=≠=j i j

i j i x l j i ,

则)(2x P 可表示为三个基函数的线性组合,即

2211002)()()()(y x l y x l y x l x P ++=。

下面针对一般情况给出一个结论:

定理:满足插值条件),,2,1,0()(n i y x P i i n ==的次数不超过n 的插值多项式是存在且唯一的。(其证明过程只需用到线性方程组解的克来姆法则和范德蒙行列式的性质,这里不再赘述。)

由上述结论可知,满足插值条件的)(2x P 即为所求。不失一般性,满足插值条件的n 次多项式为:

i n

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

)()(,其中基函数),,2,1,0()

()

()(0

,0,n i x x

x

x x l n

j i j j i

n

j i j j

i =--=

∏∏=≠=≠。

几点说明:

1、项式插值的基函数仅与节点有关,而与被插值的原函数)(x f y =无关;

2、值多项式仅由数对),,2,1,0(),(n i y x i i =确定,而与数对的排列次序无关;

3、述多项式插值又称为拉格朗日插值,多项式插值除上述方法外,还有牛顿(newton )插值法和埃尔米特(hermite )插值法等,可参看有关数值分析的书籍。

5.2.2 拟合问题的原理与方法

根据前述的拟合问题,其关键在于准则的选取,选取的准则不同,其对应的拟合方法及其复杂程度也不相同。对于一维曲线拟合,设n 个不同的离散数据点为

),,2,1(),(n i y x i i =,要寻找的拟合曲线方程为)(x P y =,记拟合函数在i x 处

的偏差为),2,1()(n i y x P i i i =-=δ,常用的准则有:

准则1:选取)(x P ,使所有偏差的绝对值之和最小,即

min )(1

1

→-=∑∑==n

i i i n

i i

y x P δ

准则2:选取)(x P ,使所有偏差的绝对值的最大值最小,即

min )(max max 1

1

→-===i i n

i i n i y x P δ。

准则3:选取)(x P ,使所有偏差的平方和最小,即

[]min )(2

1

1

2→-=∑∑==n

i i i n

i i

y x P δ

相对而言,准则3最便于计算,因而通常根据准则3来选取拟合曲线)(x P y =。准则3又称为最小二乘准则,对应的曲线拟合方法称为最小二乘法。

确定了准则之后,就该确定拟合函数)(x P y =的形式了,这是一个难点。一般的做法是首先绘出所给数据的散点图,观察数据所呈现出来的曲线的大致形状,再结合该问题所在专业领域内的相关规律和结论,来确定拟合函数的形式。实际操作时可在直观判断的基础上,选几种常用的曲线分别进行拟合,比较选择拟合效果最好的曲线。常用的曲线有直线、多项式、双曲线和指数曲线等。

拟合函数一旦确定之后,剩下的工作就是根据给定的数据确定拟合函数中的待定系数,如最简单的直线拟合,x a a x P 10)(+=中就有两个系数10a a 、需要确定。根据这些待定系数在拟合函数中出现的形式,曲线拟合又可分为线性曲线拟合和非线性曲线拟合。一般地,如果拟合函数)(x P 中的系数n a a a ,,,10 全部以线性形式出现,如多项式拟合函数n n x a x a a x P +++= 10)(,则称为线性曲线拟合;若拟合函数)(x P 中的系数n a a a ,,,10 不能全部以线性形式出现,如指数拟合函数x

a e

a a x P 210)(-+=,则称为非线性曲线拟合。下面以线性多项式曲线拟合为例

来介绍曲线拟合的一般方法。

一般地,对于给定的n 组数据),,2,1(),(n i y x i i =,要要寻找一个

m )(n m <<次多项式j m

j j

x a

x P ∑==

)(满足准则3,即使

[]

min )(),,,(2

102

1

1

210→??

?

???-=-==∑∑∑∑====n

i i m j j i j n

i i i n

i i m y x a y x P a a a Q δ 由多元函数极值存在的必要条件,系数),2,1,0(m j a j =满足

m j a Q

j

,2,1,0,0==?? 即

m k y x x a x

n

i i k

i m j j

i j n

i k i

,2,1,0,1

1

==∑∑∑===

具体地写出来,就是

?????????

?

?

??=??? ??++??? ??+??

? ??=??

?

??++??? ??+??? ??=???

??++??? ??+∑∑∑∑∑∑∑∑∑∑∑===+===+=====n

i i

m i m n i m i n i m i n

i m i n i i

i m n i m i n i i n i i n

i i m n i m i n i i y x a x a x a x y x a x a x a x y a x a x na 112111011111120111110 这是关于系数),2,1,0(m j a j =的线性方程组,通常称为正规方程组。可以证明,上述方程组有唯一解,因而拟合多项式)(x P 是存在且唯一的。 综上所述,多项式拟合的一般步骤是:

1、 根据具体问题,确定拟合多项式的次数m ;

2、 由所给数据计算正规方程组的系数,写出正规方程组;

3、 解正规方程组,求出拟合多项式中的系数),2,1,0(m j a j =;

4、 写出拟合多项式∑==

m

j j j

x a

x P 0

)(。

对于一般的曲线拟合,只需要修改拟合函数为∑==

m

j j j x r a x P 1

)()(,即将多项

式拟合函数中的多项式函数j

x 改为一般的函数)(x r j ,其他方法与步骤同上。

5.3 用Matlab 软件求解插值与拟合问题

在Matlab 中提供了一个一维插值函数Interp1,它的调用格式为

cy=Interp1(x , y , cx , ‘method’)

其中x 、y 是所给数据的横纵坐标,要求x 的分量按升序或降序排列,cx 是待求的插值点的横坐标,返回值cy 是待求的插值点的纵坐标,method 是插值方法,该函数提供了四种可选的插值方法:

nearest ——最邻近点插值。它根据已知两点间的插值点和这两已知点间位置的远近来进行插值,取较近已知插值点处的函数值作为未知插值点处的函数值。

linear ——线性插值。它将相邻的数据点用直线相连,按所生成的直线进行插值。

spline ——三次样条插值。它利用已知数据求出样条函数后,按样条函数进行插值。

cubic ——三次插值。它利用已知数据求出三次多项式函数后,按三次多项式函数进行插值。缺省时插值方法为分段线性插值,对于三次样条插值,将在补充内容中介绍。

下面用该函数来求解插值问题例1。输入命令: >> x=[100 121 144 169]; >> y=[10 11 12 13]; >> cx=110;

>> cy=interp1(x,y,cx,'linear');

运行结果为cy =10.4762。由于线性插值只需要两个点,因而在上述命令中实际上只用了前两个点。

若将最后一个命令中的method 改为缺省、nearest 、cubic 和spline ,运行结果为依次为cy =10.4762、cy =10、cy =10.4869、cy =10.4877。显然三次样条插值的结果最好。

在Matlab 中提供了一个多项式最小二乘拟合函数polyfit(x , y ,n) ,它的调用格式为

P=polyfit(x , y ,n)

其中x 、y 是所给数据的横纵坐标,n 为拟合多项式的次数,返回值P 是拟合多项式按自变量降幂排列的系数向量。

下面用该函数来求解拟合问题例2。输入命令: >> t=[0 0.9 1.9 3 3.9 5];

>> s=[0 10 30 50 80 110]; >> plot(t,s,'*-')

>> xlabel('运动时间—— t (秒)') >> ylabel('运动位移—— s (米)')

>> gtext('物体运动的时间与位移散点图')

下面显示的是物体运动的时间与位移散点图,不难看出图形近似为一条直线,因此用一次多项式来拟合,输入命令:

>> P=polyfit(t,s,1) 运行结果为:P =22.2538 -7.8550,即x x P 2538.22855.7)(+-=。下面绘出的是拟合曲线和散点图对比图形,可以看出拟合效果并不理想。根据物理学中物体运动的方程,我们用二次曲线来拟合,输入命令:

>> P=polyfit(t,s,2)

得到拟合函数为:22488.20814.115834.0)(x x x P ++-=,对比图形如下,可以看出拟合效果有明显改善,拟合曲线与散点图基本上是吻合的,因此该物体运动的方程是

22488.20814.115834.0)(t t t s ++-=

可见曲线拟合本身就是一个猜测的过程,通常是不断地修正拟合函数,使拟合效果达到满意的程度。

5.4 一个建模案例:

某地区作物生长所需要的营养元素主要有氮(N)、钾(K)、磷(P)。某作物研究所在该地区对土豆与生菜做了一定数量的实验,实验数据如下列表格所示,其中ha表示公顷,t表示吨,kg表示公斤。当一个营养素的施肥量变化时,总将另两个营养素的施肥量保持在第七个水平上,如对土豆产量关于N的施肥量做实验时,P与K的施肥量分别取为196kg/ha与372kg/ha。试分析施肥量与产量之间的关系。

土豆

5.4.1 模型假设

1、研究所的实验是在相同的正常实验条件(如充足的水分供应,正常的耕作程序)下进行的,产量的变化是由施肥量的改变引起的,产量与施肥量之间存在一定的规律。(此假设的目的是抓住影响产量的主要因素而剔除次要因素,使要研究的问题内部诸因素明朗化,即抓住主要矛盾)

2、土壤本身已含有一定数量的氮、磷、钾等肥料,即具有一定的天然肥力。(此假设非常符合常理,而且实验数据也证明了此假设的合理性,因而此假设将实验数据中所隐藏的信息清晰化)

3、每次实验是相互独立的,互不影响。(此假设澄清了在连续进行的实验中,后期实验产量与前期施肥无关)

5.4.2 符号约定

W :农作物产量;x :施肥量;N 、P 、K :氮、磷、钾肥的施肥量;w T :农

产品价格;x T :肥料价格;n T 、p T 、k T :氮、磷、钾肥的价格;

10

10210,,,,,,,,,c c c c c b b b b a '':常数。 5.4.3问题分析

5.4.3.1 普遍规律

施肥量与产量满足下图所示关系,它分为三个不同的区段,在第一区段,当施肥量较小时,作物产量随施肥量的增加而迅速增加,第二区段,随着施肥量的增加,作物产量平缓上升,第三区段,当施肥量超过一定限度后,产量反而随施肥量的增加而减少。

产量

施肥量

5.4.3.2 数据分析

通过绘制散点图,初步得到农作物产量与施肥量间的定性认识。

从散点图可以发现,氮肥施加量与农作物的产量大致呈指数关系,磷肥施加量与农作物产量大致呈分段直线关系,钾肥施加量与土豆产量大致呈指数关系,与生菜产量产量关系规律不明显。但有一点,钾肥施加量的增加时,生菜产量上升幅度不大,波动也不大,这说明钾肥对生菜产量的影响较小。

5.4.3.3 理论支撑

理论(一)Nicklas 和Miller 理论:设h 为达到最高产量时的施肥量,边际产量(即产量W 对施肥量x 的导数)

dx dW

与)(x h -成正比例关系,即 )(x h a dx

dW

-=, 这是一个简单的微分方程,积分得

c x hx a W +-=)2

(2

2210x b x b b W ++= 。

理论(二)米采利希学说:只增加某种养分时,引起产量的增加dx

dW

与该种养分供应充足时达到的最高产量A 和现在产量W 之差成正比,即

)(W A a dx

dW

-= , 这是一个可分离变量的微分方程,积分得

)exp(ax b A W -+= 。

)exp(210x b b b W -+=

理论(三):英国科学家博伊德发现,在某些情况下,将施肥对象按施肥水平 分成几组,则各组效应曲线就呈直线形式,若按水平分为两组,可以用下式表示:

??

?≤≤'+'<≤+=)

()0(10

10n i i x x x x c c x x x c c W

5.4.4 模型建立

本问题的性质是确定变量间的相关关系,结合前述理论和数据分析的结果,可

以初步确定施肥量与产量之间的关系,即拟合曲线的形式。具体地,

氮肥对土豆和生菜的效应方程为:

2120)(a n a n a n W ++=

磷肥对土豆的效应方程为:

??

?≤≤'+'<≤+=)

34298()980()(10

10p p c c p p

c c p W

磷肥对生菜的效应方程为:

???≤≤'+'<≤+=)

68554.202()54.2020()(10

1

0p p c c p p

c c p W

钾肥对土豆的效应方程为:

)exp()(210k b b b k W -+=

钾肥对生菜的效应方程为:

k a a k W 10)(+=

5.4.5 模型求解

上述模型中的拟合曲线既有线性的,又有非线性的,下面仅对氮肥对土豆的效应方程进行求解。输入命令:

>> txn=[0,34,67,101,135,202,259,336,404,471]';

>> tyn=[15.18,21.36,25.72,32.29,34.03,39.45,43.15,43.46,40.83,30.75]'; >> [a,s]=polyfit(txn,tyn,2); 运行结果:

a=[-0.0003 0.1971 14.7416]

因此氮肥对土豆的效应的拟合曲线方程是:

7416.141971.00003.0)(2++-=n n n W

散点图与拟合曲线对比图形如下:

上图显示出拟合效果较好。对于其余的几种情况,读者可以自己上机求解。

5.6 习题

1、山区地貌:在某山区测得一些地点的高程如下表:

(平面区域1200≤x ≤4000,1200≤y ≤3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。

2 5.6 补充知识:

对于多项式插值,一般情况下,节点数目越多,插值函数的精度越高,但与此同时,多项式的次数也会增大,这样可能造成插值函数的收敛性和稳定性越来越差,逼近的效果往往不理想,一个典型的例子是函数

]5,5[,11

)(2

-+=

x

x f 考察其5次多项式插值函数和10次多项式插值函数,会发现它们与被插值函数在节点处的函数值相等,这是由插值方法本身决定的,但在其它点处的函数值相差很大,而且随着节点的增多,其插值多项式在两端发生激烈的震荡,这就是所谓的龙格现象。这说明,在大范围内使用高次插值,逼近效果往往并不理想。解决此问题的思路是化整为零,采用分段插值,即在小范围内使用低次多项式来逼近。三次样条插值正是在这样的背景下产生的。

三次样条插值实质上就是分段三次插值,其插值函数由分段三次多项式构成,样条指的是绘图员常用的一种工具。在机械制造、航海和航空等工业绘图中,绘图员经常要解决这样的问题:已知一些数据点),(),(),(221100y x y x y x 、、,如何

通过这些数据点作一条比较光滑(如二阶导数连续)的曲线?绘图员采用的方法是用一根富有弹性的细木条(即样条),用压铁迫使样条通过这些节点,并调整样条的外型使之达到光滑的要求。用数学的语言来叙述,就得到三次样条插值函数的定义:

设在区间],[b a 上有1+n 的不同的节点b x x x a n =<<<= 10,函数

)(x f y =在这些节点处的值),,1,0()(n i y x f i i ==,如果分段函数)(x S 满足

1、)(x S 在所有n 个小区间),,2,1(],[1n i x x i i =-上的表达式都是次数不超过3次的多项式;

2、n i y x S i i ,,1,0,)( ==;

3、)(x S 在所有内节点处具有连续的二阶导数。

则称)(x S 为)(x f 在区间],[b a 上的三次样条插值函数,简称三次样条。

下面来确定三次样条的系数。由三次样条的定义的第1条要求,它共有n 4个待定系数,需要n 4个条件。定义的第2条提供了1+n 个条件,第3条提供了)1(3-n 个条件,剩下的2个条件可以根据实际需要进行补充。通常的做法是在区间],[b a 的两端点处各加一个条件,常见的有以下三种:

1、 问题本身已给出00)(m x S ='及n n m x S =')(,即0m 和n m 为已知;

2、 问题本身已给出00)(M x S =''及n n M x S ='')(,即0M 和n M 为已知,特别地,取0)()(0=''=''n x S x S ;

3、 若)(x f 是以0x x a b n -=-为周期的函数,则可以要求)(x S 也是周期函数,即有)()(0n x S x S '='和)0()0(0-''=+''n x S x S 。

记)(x S 在节点处的一阶和二阶导数值分别为i i i i M x S m x S =''=')(,)(,

n i ,,1,0 =。由定义的第1条件,在任意小区间],[1i i x x -上,)(x S ''都是线性的,

记1--=i i i x x h ,由拉格朗日插值公式有

],[)(11

1

i i i

i i

i i i x x x h x x M h x x M x S ---∈-+-=''

将上式积分一次得

],[2)(2)()(112

121i i i i

i i i i i x x x C h x x M h x x M x S ---∈+-+--='

再次积分得

],[6)(6)()(12

13

131i i i i i

i i i i i x x x C x C h x x M h x x M x S ---∈++-+-=

将i i i i y x S y x S ==--)(,)(11代入上式得

6

)

(111----

-=

i i i i i i i M M h h y y C , 111266---???

?

??+-+???? ??-=i i

i i i i i i i i i x M h h y x M h h y C , 即将1i C 和2i C 由i M 和1-i M 来表示。这样,只需要确定了),,1,0(n i M i =,

)(x S 即被确定。

由)(x S '在内节点处连续,即1,,2,1,)0()0(-=-'=+'n i x S x S i i 得到

1-n 个关于i M 的方程:1,,2,1,211-==+++-n i d M M M i i i i i i βα。其中

i i i i h h h +=

+1α,i i i i h h h +=++11β,???

?

??---+=-+++i i i i i i i i i h y y h y y h h d 11116,1.2,1-=n i 。

将补充条件1,代入)(x S '的表达式得:

111

02C h M m +-=,12

n n n n C h M m +=。

66,11

)(2

≤≤-+=

x x x g 代入1i C 的表达式整理得:

????

?

???

????? ??

--=+???? ??--=+--n n n n n n n h y y m h M M m h y y h M M 11010

11106262,10==βαn , ???? ??--=

0101106m h y y h d ,???

? ??--=-n n n n n n h y y m h d 16。 联合前面得到的1-n 个方程,得关于i M 的1+n 个方程组

???

??????

?

??????????=???????????????????????????????????

?????---n n n n n

n d d d d d M M M M M 1210121012211020

0002000000

2000

02000

02

αββαβα

β 其系数矩阵是三对角型,可用追赶法求解方程组。

对于后两种补充条件,求解方法和上面类似,这里不再赘述。

5.7补充习题:

用三次样条插值选取11个基点计算插值。

第五章插值与拟合答案—牟善军

习题5.1: Matlab程序如下: clc,clear x=1:0.5:10; y=x.^3-6*x.^2+5*x-3; y0=y+rand; f1=polyfit(x,y0,1) y1=polyval(f1,x); plot(x,y,'+',x,y1); grid on title('一次拟合曲线'); figure(2); f2=polyfit(x,y0,2) y2=polyval(f2,x); plot(x,y,'+',x,y2); grid on title('二次拟合曲线'); figure(3); f4=polyfit(x,y0,4) y3=polyval(f4,x); plot(x,y,'+',x,y3); grid on title('四次拟合曲线'); figure(4); f6=polyfit(x,y0,6) y4=polyval(f6,x); plot(x,y,'+',x,y4); grid on title('六次拟合曲线'); 计算结果及图如下 f1 = 43.2000 -148.8307 f2 = 10.5000 -72.3000 90.0443

f4 = 0.0000 1.0000 -6.0000 5.0000 -2.3557 f6 = -0.0000 0.0000 -0.0000 1.0000 -6.0000 5.0000 -2.3557 5.2高程数据问题解答如下:matlab程序: clc,clear x0=0:400:5600 y0=0:400:4800 z0=[1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150 1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210 1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350 1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500

第四章曲线拟合和多项式插值 - Hujiawei Bujidao

数值计算之美SHU ZHI JI SUAN ZHI MEI 胡家威 http://hujiaweibujidao.github.io/ 清华大学逸夫图书馆·北京

内容简介 本书是我对数值计算中的若干常见的重要算法及其应用的总结,内容还算比较完整。 本人才疏学浅,再加上时间和精力有限,所以本书不会详细介绍很多的概念,需要读者有一定的基础或者有其他的参考书籍,这里推荐参考文献中的几本关于数值计算的教材。 本书只会简单介绍下算法的原理,对于每个算法都会附上我阅读过的较好的参考资料以及算法的实现(Matlab或者其他语言),大部分代码是来源于参考文献[1]或者是经过我改编而成的,肯定都是可以直接使用的,需要注意的是由于Latex对代码的排版问题,导致中文注释中的英文字符经常出现错位,对于这种情况请读者自行分析,不便之处还望谅解。写下这些内容的目的是让自己理解地更加深刻些,顺便能够作为自己的HandBook,如有错误之处,还请您指正,本人邮箱地址是:hujiawei090807@https://www.wendangku.net/doc/ca15385040.html,。

目录 第四章曲线拟合和多项式插值1 4.1曲线拟合 (1) 4.1.1使用线性方程进行曲线拟合 (1) 4.1.2非线性方程进行曲线拟合 (2) 4.1.3使用二次或者高次多项式进行曲线拟合[最小二乘问题].3 4.2多项式插值 (4) 4.2.1拉格朗日插值多项式 (4) 4.2.2牛顿插值多项式 (5) 4.2.3分段线性插值 (7) 4.2.4保形分段三次插值 (8) 4.2.5三次样条插值 (10) 4.3Matlab函数解析 (13) 参考文献14

第4、5讲 插值与拟合 作业参考答案

第四、五讲作业题参考答案 一、填空题 1、拉格朗日插值基函数在节点上的取值是( 0或1 )。 2、当1,1,2x =-,时()034f x =-, ,,则()f x 的二次插值多项式为 ( 2527 633 x x +- )。 3、由下列数据 所确定的唯一插值多项式的次数为( 2次 )。 4、根据插值的定义,函数()x f x e -=在[0,1]上的近似一次多项式1()P x = ( 1(1)1e x --+ ),误差估计为( 18 )。 5、在做曲线拟合时,对于拟合函数x y ax b = +,引入变量变换y =( 1 y ),x =( 1 x )来线性化数据点后,做线性拟合y a bx =+。 6、在做曲线拟合时,对于拟合函数Ax y Ce =,引入变量变换( ln()Y y = )、 X x =和B C e =来线性化数据点后,做线性拟合Y AX B =+。 7、设3()1f x x x =+-,则差商[0,1,2,3]f =( 1 )。 8、在做曲线拟合时,对于拟合函数()A f x Cx =,可使用变量变换(ln Y y =)(ln X x = )和B C e =来线性化数据点后,做线性拟合Y AX B =+。 9、设(1)1,(0)0,(1)1,(2)5,()f f f f f x -====则的三次牛顿插值多项式为 ( 3211 66x x x +-),其误差估计式为( 4()(1)(1)(2),(1,2)24f x x x x ξξ+--∈-) 10、三次样条插值函数()S x 满足:()S x 在区间[,]a b 内二阶连续可导, (),,0,1,2,,,k k k k S x y x y k n ==(已知)且满足()S x 在每一个子区间1[,] k k x x +上是( 三次多项式 )。

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

利用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

第五章数据拟合.

第五章 数据拟合 这就是数据拟合成曲线的思想,简称为曲线拟合(fitting a curve)。根据一组二维数据,即平面上的若干点,要求确定一个一元函数y = f (x ),即曲线,使这些点与曲线总体来说尽量接近, 曲线拟合其目的是根据实验获得的数据去建立因变量与自变量之间有效的经验函数关系,为进一步的深入研究提供线索。本章的目的,掌握一些曲线拟合的基本方法,弄清楚曲线拟合与插值方法之间的区别,学会使用MATLAB 软件进行曲线拟合。 §1 最小二乘法 给定平面上的点(x i, y i ),(i = 1,2,…,n ),进行曲线拟合有多种方法,其中最小二乘法是解决曲线拟合最常用的方法。最小二乘法的原理是: 求 ∑∑==-==n i i i n i i y x f x f 1212])([),(δδ使 达到最小 如图1所示,其中δi 为点(x i ,y i )与曲线y=f (x )的距离。曲线拟合的实际含义是寻求一个函数y=f (x ),使f (x )在某种准则下与所有数据点最为接近,即曲线拟合得最好。最小二乘准则就是使所有散点到曲线的距离平方和最小。拟合时选用一定的拟合函数f (x ) 形式,设拟合函数可由一些简单的“基函数”(例如幂函数,三角函数等等) )(),...,(),(10x x x m ???来线性表示: )(...)()()(1100x c x c x c x f m m ???+++= 图1 曲线拟合示意图 现在要确定系数c 0,c 1,…,c m ,使d 达到极小。为此,将f (x )的表达式代入d 中,d 就成为c 0,c 1,…,c m 的函数,求d 的极小,就可令d 对 c i 的偏导数等于零,于是得到m +1个方程组,从中求解出c i 。通常取基函数为1,x ,x 2,x 3,…,x m ,这时拟合函数f (x )为多项式函数。当m =1时,f (x ) = a + bx ,称为一元线性拟合函数,它是曲线拟合最简单的形式。除此之外,常用的一元曲线拟合函数还有双曲线f (x ) = a + b/x ,指数曲线f (x ) = a e bx 等,对于这些曲线,拟合前须作变量代换,转化为线性函数。

实验四 插值法与曲线拟合

计算方法实验报告 专业班级:医学信息工程一班姓名:陈小芳学号:201612203501002 实验成绩: 1.【实验题目】 插值法与曲线拟合 2.【实验目的】 3.【实验内容】 4. 【实验要求】

5. 【源程序(带注释)】 (1)拉格朗日插值 #include #include #include #include #include #define n 4 //插值节点的最大下标 main() { double x1[n+1]={0.4,0.55,0.65,0.8,0.9}; double y1[n+1]={0.4175,0.57815,0.69657,0.88811,1.02652}; double Lagrange(double x1[n+1],double y1[n+1],float t); int m,k;float x,y;float X;double z; printf("\n The number of the interpolation points is m ="); //输入插值点的个数 while(!scanf("%d",&m)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\n The number of the interpolation points is m ="); } for(k=1;k<=m;k++) { printf("\ninput X%d=",k); while(!scanf("%f",&X)) { fflush(stdin); printf("\n输入错误,请重新输入:\n"); printf("\ninput X%d=",k); } z=Lagrange(x1,y1,X); printf("P(%f)=%f\n",X,z); } getch(); return (0); } double Lagrange(double x[n+1],double y[n+1],float X) { int i,j;

插值和拟合区别

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

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

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 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 差商表的构造过程:

插值和拟合参考答案

插值和拟合 实验目的:了解数值分析建模的方法,掌握用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 15 y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 用程控铣床加工机翼断面的下轮廓线时 每一刀只能沿x方向和y方向走非常小的一步。 表3-1给出了下轮廓线上的部分数据 但工艺要求铣床沿x方向每次只能移动0.1单位. 这时需求出当x坐标每改变0.1单位时的y坐标。 试完成加工所需的数据,画出曲线. 步骤1:用x0,y0两向量表示插值节点; 步骤2:被插值点x=0:0.1:15; 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

第五章 插值与最小二乘法

第五章 插值与最小二乘法 5.1 插值问题与插值多项式 实际问题中若给定函数是区间上的一个列表函数 ,如果,且f(x)在区间上是连续的,要求用一个简单的,便于计算的解析表达式在区间上近似f(x),使 (5.1.1) 就称为的插值函数,点称为插值节点,包含插值节点的区间称为插值区间. 通常,其中是一组在上线性 无关的函数族,表示组成的函数空间表示为 (5.1.2) 这里是(n+1)个待定常数,它可根据条件(5.1.1)确定.当 时,表示次数不超过n次的多项式集合, ,此时 (5.1.3) 称为插值多项式,如果为三角函数,则为三角插值,同理还有 分段多项式插值,有理插值等等.由于计算机上只能使用+、-、×、÷运算,故常用的就是多项式、分段多项式或有理分式,本章着重讨论多项式插值及分段多项式插值,其他插值问题不讨论. 从几何上看,插值问题就是求过n+1个点的曲线,使它近似于已给函数,如图5-1所示.

插值法是一种古老的数学方法,它来自生产实践.早在一千多年前,我国科学家在研究历法时就应用了线性插值与二次插值,但它的基本理论却是在微积分产生以后才逐步完善的,其应用也日益广泛.特别是由于计算机的使用和航空、造船、精密机械加工等实际问题的需要,使插值法在理论上和实践上得到进一步发展.尤其是近几十年发展起来的样条(Spline)插值,获得了极为广泛的应用,并成为计算机图形学的基础. 本章主要讨论如何求插值多项式、分段插值函数、三次样条插值、插值多项式的存在唯一性及误差估计等.此外,还讨论列表函数的最小二乘曲线拟合问题与正交多项式. 讲解: 插值多项式就是根据给定n+1个点 ,求一个n次多项式: 使 即 这里是n+1个待定系数,根据n+1个条件得到的方程组是关于参数 的线性方程组。当节点互异时由于系数行列式 所以解是存在唯一的。但直接求解较复杂,也得不到统一的表达式。所以通常求插值多项式不用这种方法,而使用下节给出的基函数方法。 5.2 Lagrange插值 5.2.1 线性插值与二次插值 最简单的插值问题是已知两点及,通过此两点的插值多项式是一条直线,即两点式

第四章 插值法与函数逼近

第四章 插值法与函数逼近 A 插值法 1. 根据( 2.2)定义的范德蒙行列式,令 证明 是n 次多项式,它的根是,且 . 2. 当x = 1 , -1 , 2 时, f (x)= 0 , -3 , 4 ,求f (x )的二次插值多项式. 3. 4. 给出cos x ,0°≤x ≤90°的函数表,步长h =1′=(1/60)°,若函数表具有5位有效数字, 研究用线性插值求cos x 近似值时的总误差界. 5. 设,k =0,1,2,3,求. 6. 设 为互异节点(j =0,1,…,n ),求证: i) ii) 7. 设 且,求证 8. 在上给出的等距节点函数表,若用二次插值求的近似值,要使截 断误差不超过,问使用函数表的步长应取多少? 9. 若,求 及. 10. 如果是次多项式,记,证明的阶差分 是次多项式,并且为正整数). 11. 证明. 12. 证明 13. 证明 14. 若 有个不同实根,证明 2000 0112111 21 ()(,, ,,)11 n n n n n n n n n x x x V x V x x x x x x x x x x ----== ()n V x 01, ,n x x -101101()(,, ,)() ()n n n n V x V x x x x x x x ---=--0k x x kh =+032max ()x x x l x ≤≤j x 0()(0,1, ,); n k k j j j x l x x k n =≡=∑0 ()()1,2,,). n k j j j x x l x k n =-≡0(=∑[] 2(),f x C a b ∈()()0f a f b ==21 ()()(). 8max max a x b a x b f x b a f x ≤≤≤≤≤-"44x -≤≤()x f x e =x e 6 10-h 2n n y =4n y ?4 n y δ()f x m ()()()f x f x h f x ?=+-()f x k ()(0)k f x k m ?≤≤m k -()0(m l f x l +?=1()k k k k k k f g f g g f +?=?+?1 1 0010 . n n k k n n k k k k f g f g f g g f --+==?=--?∑∑1 2 00 . n j n j y y y -=? =?-?∑1011()n n n n f x a a x a x a x --=++++n 12,,,n x x x

相关文档
相关文档 最新文档