第二讲 插值与数据拟合模型函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。
而面对一个实际问题,究竟用插值还是拟合,有时容易确定,有时则并不明显。
在数学建模过程中,常常需要确定一个变量依存于另一个或更多的变量的关系,即函数。
但实际上确定函数的形式(线性形式、乘法形式、幂指形式或其它形式)时往往没有先验的依据。
只能在收集的实际数据的基础上对若干合乎理论的形式进行试验,从中选择一个最能拟合有关数据,即最有可能反映实际问题的函数形式,这就是数据拟合问题。
一、插值方法简介插值问题的提法是,已知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 nn 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 ),,,(,),,,(,11110011111100==⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=---- 方程组(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 ji 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 nj j n n n ∈-+=-=∏=+ξξ (8) 若可以估计1)1(|)(|++≤n n M g ξ (9)则),(,||)!1(|)(|01b a x x n M x R nj 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 计算6cos π(取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 2102002021)(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 x8508.066cos 2=⎪⎭⎫ ⎝⎛=ππL 。
估计|)(|x R n :对于x x g cos )(=可设11=+n M ,记节点间隔nh 2π=。
当()1,+∈j j x x x 时 4||||21h x x x x j j <--+ nh h h h x x n j j ⋅⋅⋅⋅<-∏= 324||2于是(10)式给出1112)2)(1(4)1(4324)!1(1|)(|++++=+=⋅⋅⋅⋅+<n n n n n n n h nh h h h n x R π 可以算出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 nj 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 可以表示为∑==nj j j n x l y x I 0)()( (12)⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧=≤≤--=≤≤--=+++---其它时舍去时舍去,0)(,)0(,)(111111n j x x x x x x x j x x x x x x x x l j j j jj 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 被唯一确定。
但是,这种解法的工作量太大,方程组又常呈病态,所以实际上要设计简便的解法。