插值与数据拟合

合集下载

数值计算方法插值与拟合

数值计算方法插值与拟合

数值计算方法插值与拟合数值计算方法在科学计算和工程应用中起着重要的作用,其中插值和拟合是其中两个常用的技术。

插值是指通过已知的离散数据点来构造出连续函数或曲线的过程,拟合则是找到逼近已知数据的函数或曲线。

本文将介绍插值和拟合的基本概念和常见的方法。

一、插值和拟合的基本概念插值和拟合都是通过已知数据点来近似表达未知数据的方法,主要区别在于插值要求通过已知数据点的函数必须经过这些数据点,而拟合则只要求逼近这些数据点。

插值更加精确,但是可能会导致过度拟合;拟合则更加灵活,能够通过调整参数来平衡拟合精度和模型复杂度。

二、插值方法1. 线性插值线性插值是一种简单的插值方法,通过已知数据点构造出线段,然后根据插值点在线段上进行线性插值得到插值结果。

2. 拉格朗日插值拉格朗日插值是一种基于多项式插值的方法,通过已知数据点构造出一个多项式,并根据插值点求解插值多项式来得到插值结果。

3. 分段线性插值分段线性插值是一种更加灵活的插值方法,通过将插值区间分成若干小段,然后在每个小段上进行线性插值。

三、拟合方法1. 最小二乘法拟合最小二乘法是一种常用的拟合方法,通过最小化实际观测点和拟合函数之间的残差平方和来确定拟合函数的参数。

2. 多项式拟合多项式拟合是一种基于多项式函数的拟合方法,通过选择合适的多项式次数来逼近已知数据点。

3. 曲线拟合曲线拟合是一种更加灵活的方法,通过选择合适的曲线函数来逼近已知数据点,常见的曲线包括指数曲线、对数曲线和正弦曲线等。

四、插值与拟合的应用场景插值和拟合在实际应用中具有广泛的应用场景,比如图像处理中的图像重建、信号处理中的滤波器设计、金融中的风险评估等。

五、插值与拟合的性能评价插值和拟合的性能可以通过多种指标进行评价,常见的评价指标包括均方根误差、相关系数和拟合优度等。

六、总结插值和拟合是数值计算方法中常用的技术,通过已知数据点来近似表达未知数据。

插值通过已知数据点构造出连续函数或曲线,拟合则找到逼近已知数据的函数或曲线。

插值与拟合

插值与拟合

且 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)
线性插值函数为

插值与拟合方法

插值与拟合方法

插值与拟合方法在实际中,常常要处理由实验或测量所得到的一批离散数据.插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻找某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度.插值问题:要求这个近似函数(曲线或曲面)经过所已知的所有数据点.通常插值方法一般用于数据较少的情况.数据拟合:不要求近似函数通过所有数据点,而是要求它能较好地反映数据的整体变化趋势。

共同点:插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法,由于对近似要求的准则不同,因此二者在数学方法上有很大的差异.插值问题的一般提法:已知某函数)(x f y =(未知)的一组观测(或试验)数据),,2,1)(,(n i y x ii⋅⋅⋅=,要寻求一个函数)(x φ,使iiy x =)(φ),,2,1(n i ⋅⋅⋅=,则)()(x f x ≈φ.实际中,常常在不知道函数)(x f y =的具体表达式的情况下,对于i x x =有实验测量值iy y =),,2,1,0(n i ⋅⋅⋅=,寻求另一函数)(x φ使满足:)()(i i i x f y x ==φ),,2,1,0(n i ⋅⋅⋅=称此问题为插值问题,并称函数)(x φ为)(x f 的插值函数,nx x x x ,,,,21⋅⋅⋅称为插值节点,),,2,1,0()(n i y x ii⋅⋅⋅==φ称为插值条件,即)()(iiix f y x ==φ),,2,1,0(n i ⋅⋅⋅=,则)()(x f x ≈φ.(1) 拉格朗日(Lagrange )插值设函数)(x f y =在1+n 个相异点nx x x x ,,,,21⋅⋅⋅上的函数值为ny y y y ,,,,21⋅⋅⋅,要求一个次数不超过n 的代数多项式nnnx a x a x a a x P +⋅⋅⋅+++=221)(使在节点i x 上有),,2,1,0()(n i y x P ii n ⋅⋅⋅==成立,称之为n 次代数插值问题,)(x P n称为插值多项式.可以证明n 次代数插值是唯一的.事实上: 可以得到j n j n i i j in y x x xx x P j i ∑∏==⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫⎝⎛--=≠00)()( 当1=n 时,有二点一次(线性)插值多项式:101001011)(y x x x x y x x x x x P --+--=当n =2时,有三点二次(抛物线)插值多项式:2120210121012002010212))(())(())(())(())(())(()(y x x x x x x x x y x x x x x x x x y x x x x x x x x x P ----+----+----=(2)牛顿(Newton ) 插值牛顿插值的基本思想:由于)(x f y =关于二节点10,x x 的线性插值为)()()()()()()()()(00101000010101x x x x x f x f x p x x x x x f x f x f x p ---+=---+= 假设满足插值条件)2,1,0()()(2===i x p y x f iii的二次插值多项式一般形式为))(()()(1212x x x x c x x c c x p --+-+= 由插值条件可得⎪⎩⎪⎨⎧=--+-+=-+=)())(()()()()(21202202101011000x f x x x x c x x c c x f x x c c x f c 可以解出⎪⎪⎪⎩⎪⎪⎪⎨⎧------=--==020101121220101100)()()()()()(),(x x x x x f x f x x x f x f c x x x f x f c x f c所以))(()())(()()(10211020102x x x x c x p x x x x c x x c c x p --+=--+-+=类似的方法,可以得到三次插值多项式等,按这种思想可以得到一般的牛顿插值公式.函数的差商及其性质对于给定的函数)(x f ,用),,,(10n x x x f ⋅⋅⋅表示关于节点nx x x ,,,1⋅⋅⋅的n 阶差商,则有一阶差商:01011)()(),(x x x f x f x x f --=,121221)()(),(x x x f x f x x f --= 二阶差商:021021210),(),(),,(x x x x f x x f xx x f --=n 阶差商:0110211),,,(),,,(),,,(x x x x x f x x x f x x x f n n n n -⋅⋅⋅-⋅⋅⋅=⋅⋅⋅-差商有下列性质:(1)差商的分加性:∑∏=≠=-=⋅⋅⋅nk nk j j j kk n x xx f xx x f 0)(01)()(),,,(.(2)差商的对称性:在),,,(1nx x x f ⋅⋅⋅中任意调换jix x ,的次序其值不变.牛顿插值公式: 一次插值公式为))(,()()(01001x x x x f x f x p -+=二次插值公式为))()(,,()())()(,,())(,()()(1021011021001002x x x x x x x f x p x x x x x x x f x x x x f x f x p --+=--+-+=于是有一般的牛顿插值公式为)())()(,,,()()())()(,,,())()(,,())(,()()(11010111010102100100----⋅⋅⋅--⋅⋅⋅+=-⋅⋅⋅--⋅⋅⋅+⋅⋅⋅+--+-+=n n n n n n x x x x x x x x x f x p 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 p可以证明:其余项为))(())()(,,,,()(11010n n n x x x x x x x x x x x x f x R --⋅⋅⋅--⋅⋅⋅=-实际上,牛顿插值公式是拉格朗日插值公式的一种变形,二者是等价的.另外还有著名的埃尔米特(Hermite )插值等.(3)样条函数插值方法样条,实质上就是由分段多项式光滑连接而成的函数,一般称为多项式样条.由于样条函数的特殊性质,决定了样条函数在实际中有着重要的应用.样条函数的一般概念定义 设给定区间],[b a 的一个分划b x x x a n=<⋅⋅⋅<<=∆1:,如果函数)(x s 满足条件:(1) 在每个子区间),,2,1](,[1n i x x ii ⋅⋅⋅=-上是k 次多项式; (2) )(x s 及直到k -1阶的导数在],[b a 上连续.则称)(x s 是关于分划△的一个k 次多项式样条函数,nx x x ,,,1⋅⋅⋅称为样条节点,121,,,-⋅⋅⋅n x x x 称为内节点,nx x ,0称为边界节点,这类样条函数的全体记作),(k S P∆,称为k 次样条函数空间.若),()(k S x s P∆∈,则)(x s 是关于分划△的k 次多项式样条函数.k 次多项式样条函数的一般形式为∑∑=-=+-+=ki n j k j jii k x x k i x x s 011)(!!)(βα其中),,1,0(k i i=α和)1,,2,1(-=n j jβ均为任意常数,而)1,,2,1(,0,)()(-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x jj kj kj在实际中最常用的是2=k 和3的情况,即为二次样条函数和三次样条函数. 二次样条函数:对于],[b a 上的分划b x x x a n=<⋅⋅⋅<<=∆1:,则)2,()(!2!2)(11222102∆βαααP n j j jS x x x x x s ∈-+++=∑-=+其中)1,2,1(,0,)()(22-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x j j j j . 三次样条函数:对于],[b a 上的分划b x x xa n =<⋅⋅⋅<<=∆10:,则)3,()(!3!3!2)(1133322103∆βααααP n j j jS x x x x x x s ∈-++++=∑-=+其中)1,2,1(,0,)()(33-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x jjj j .1 二次样条函数插值)2,()(2∆∈P S x s 中含有2+n 个待定常数,故应需要2+n 个插值条件,因此,二次样条插值问题可分为两类:问题(1):已知插值节点ix 和相应的函数值),,2,1,0(n i y i⋅⋅⋅=,以及端点0x (或n x )处的导数值0'y (或ny '),求)2,()(2∆∈PS x s 使得⎩⎨⎧'=''='⋅⋅⋅==))(()(),,2,1,0()(20022n n i i y x s y x s n i y x s 或(5.1)问题(2):已知插值节点ix 和相应的导数值),,2,1,0(n i y i⋅⋅⋅=',以及端点0x (或n x )处的函数值0y (或ny ),求)2,()(2∆∈P S x s 使得⎩⎨⎧==⋅⋅⋅='='))(()(),,2,1,0()(20022n n i i y x s y x s n i y x s 或(5.2)事实上,可以证明这两类插值问题都是唯一可解的.对于问题(1),由条件(5.1)⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=+='==-+++==++==++=∑-=00210211222102121211112020201002)(,,3,2,)(2121)(21)(21)(y x x s n j y x x x x x s yx x x s y x x x s j j i i j i jj j ααβααααααααα 引入记号T n ),,,,,(11210-=ββααα X 为未知向量,T nn y y y y ),,,,(10'= C 为已知向量, ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=-0010)(21)(21211)(212110211211021212212222211200x x x x x x x x x x x x x x x n n n n n A 于是,问题转化为求方程组C AX =的解Tn ),,,,,(1121-=ββααα X 的问题,即可得到二次样条函数的)(2x s 的表达式.对于问题(2)的情况类似.2.三次样条函数插值由于)3,()(3∆∈P S x s 中含有3+n 个待定系数,故应需要3+n 个插值条件,因此可将三次样条插值问题分为三类: 问题(1):已知插值节点jx 和相应的函数值),,2,1,0(n j y j⋅⋅⋅=,以及两个端点0x ,n x 处的导数值0'y ,ny ',求)3,()(3∆∈PS x s 使满足条件⎪⎩⎪⎨⎧='='⋅⋅⋅==),0()(),,1,0()(33n j y x s n j y x s j j j j(5.3)问题(2):已知插值节点jx 和相应的函数值),,2,1,0(n j y j⋅⋅⋅=,以及两个端点0x ,nx 处的二阶导数值0y '',n y '',求)3,()(3∆∈PS x s 使满足条件⎪⎩⎪⎨⎧=''=''⋅⋅⋅==),0()(),,1,0()(33n j y x s n j y x s j j j j(5.4)问题(3):类似地,求)3,()(3∆∈PSx s 使满足条件⎪⎩⎪⎨⎧=+=-==)2,1,0)(0()0(),,1,0()(0)(3)(33k x s x s n j y x s k n k j j(5.5)这三类插值问题的条件都是3+n 个,可以证明其解都是唯一的〔8〕.一般的求解方法可以仿照二次样条的情况处理方法,在这里给出一种更简单的方法.仅依问题(1)为例,问题(2)和问题(3)的情况类似处理.由于在)3,()(3∆PS x s ∈区间],[b a 上是一个分段光滑,且具有二阶连续导数的三次多项式,则在子区间],[1+j jx x 上)(3x s ''是线性函数,记),,,1,0)((3n j x s d jj =''=为待定常数.由拉格朗日插值公式可得nj x x h h x x d h x x d x s j j j jj j jj j ,,1,0,,)(1113=-=-+-=''+++显然jjj h d dx s -='''+13)(在],[1+j jx x上为常数.于是在],[1+j j x x 上有31233)(6)(2))(()(j jjj j j j j j x x h d d x x d x x x s y x s --+-+-'+=+(5.6)则当1+=j x x 时,由(5.6)式和问题(1)的条件得121231362)()(+++=-++'+=j j jj j j j j j j y h d d h d h x s y x s故可解得)2(6)(113+++--='j j j jjj j d d h h y y x s(5.7)将(5.7)式代入(5.6)式得)1,,1,0](,[,)(6)(2)()2(6)(1312113-=∈--+-+-⎥⎥⎦⎤⎢⎢⎣⎡+--+=++++n j x x x x x h d d x x d x x d d h h y y y x s j j j jj j j jj j j j j j j j(5.8) 在],[1j j x x-上同样的有),,2,1](,[,)(6)(2)()2(6)(131112111111113n j x x x x x h d d x x d x x d d h h y y y x s j j j j j j j j j j j j j j j j =∈--+-+-⎥⎥⎦⎤⎢⎢⎣⎡+--+=------------(5.9) 根据)(3x s的一阶导数连续性,由(5.9)式得)()2(6)0(311113j j j j j j j j x s d d h h y y x s '=++-=-'---- 结合(5.7)式整理得⎪⎪⎭⎫ ⎝⎛---+=++++--+-+----11111111162j j j j j j j j j j j j j j j j j h y y h y y h h d h h h d d h h h 引入记号⎪⎪⎭⎫ ⎝⎛---+=+=--+--111116,j j j j j j j j j j j j j h y y h y y h h c h h h a ,111--+=-j j j j h h h a .则)1,,2,1(,2)1(11-==++-+-n j c d a d d a j j j j j j(5.10)再由边界条件:nny x s y x s '=''=')(,)(33得⎪⎪⎩⎪⎪⎨⎧⎪⎪⎭⎫ ⎝⎛--'=+⎪⎪⎭⎫ ⎝⎛'--=+----111100010106262n n n n n n n h y y y h d d y h y y h d d(5.11)联立(5.10),(5.11)式得方程组C D A =⋅(5.12)其中⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=----2121212112112200n n n n a a a a a aA ,⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=-n n d d d d 110 D ,⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--'⎪⎪⎭⎫ ⎝⎛'--=----111110001066n n n n n n hy y y h c c y h y y h C 由方程组(6.12)可以唯一解出),,1,0(n j d j=,代入(5.8)式就可以得三次样条函数)(3x s 的表达式.B样条函数插值方法磨光函数实际中的许多问题,往往是既要求近似函数(曲线或曲面)有足够的光滑性,又要求与实际函数有相同的凹凸性,一般插值函数和样条函数都不具有这种性质.如果对于一个特殊函数进行磨光处理生成磨光函数(多项式),则用磨光函数构造出样条函数作为插值函数,既有足够的光滑性,而且也具有较好的保凹凸性,因此磨光函数在一维插值(曲线)和二维插值(曲面)问题中有着广泛的应用.由积分理论可知,对于可积函数通过积分会提高函数的光滑度,因此,我们可以利用积分方法对函数进行磨光处理.定义 若)(x f 为可积函数,对于0>h ,则称积分⎰+-=22,1)(1)(hx h x h dt t f h x f为)(x f 的一次磨光函数,h 称为磨光宽度.同样的,可以定义)(x f 的k 次磨光函数为)1()(1)(22,1,>=⎰+--k dt t f h x f hx h x h k h k事实上,磨光函数)(,x f h k 比)(x f 的光滑程度要高,且当磨光宽度h 很小时)(,x f h k 很接近于)(x f .等距B样条函数对于任意的函数)(x f ,定义其步长为1的中心差分算子δ如下:⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+=2121)(x f x f x f δ在此取0)(+=x x f ,则002121+++⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+=x x x δ是一个单位方波函数(如图5-1),记0)(+=Ωx x δ.并取1=h ,对)(0x Ω进行一次磨光得++++-+++-+++--+-+=-=⎥⎥⎦⎤⎢⎢⎣⎡⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+==⎰⎰⎰⎰)1(2)1(2121)()(11212100212101x x x dt t dt t dt t t dt t x x xx x x x x x ΩΩ显然)(1x Ω是连续的(如图5-2).)(1x Ωo1-1/2 0 1/2 x -1 0 1 x 图5-1图5-2类似地可得到k 次磨光函数为kk j jk j k j k x k C x ++=+⎪⎭⎫ ⎝⎛-++-=Ω∑21!)1()(11 实际上,可以证明:)(x kΩ是分段k 次多项式,且具有1-k 阶连续导数,其k 阶导数有2+k个间断点,记为)1,,2,1,0(21+⋅⋅⋅=+-=k j k j x j.从而可知)(x kΩ是对应于分划+∞<<⋅⋅⋅<<<-∞∆+110:k x x x 的k 次多项式样条函数,称之为基本样条函数,简称为k 次B样条.由于样条节点为)1,,2,1,0(21+⋅⋅⋅=+-=k j k j xj是等距的,故)(x k Ω又称为k 次等距B样条函数.对于任意函数)(x f 的k 次磨光函数,由归纳法可以得到 [4,8] :⎪⎭⎫⎝⎛+≤≤--Ω=⎰∞+∞--22)()(1)(1,h x t h x dt t f htx h x f k h k 特别地,当1)(=x f 时,有1)(11⎰+∞∞--=-dt htx hk Ω,从而1)(⎰+∞∞-=dx x k Ω,且当k ≥1时有递推关系⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-Ω⎪⎭⎫ ⎝⎛---⎪⎭⎫ ⎝⎛+Ω⎪⎭⎫ ⎝⎛++=Ω--212121211)(11x x k x k x k x k k k一维等距B样条函数插值等距B样条函数与通常的样条如下的关系: 定理设有区间],[b a 的均匀分划nab h n j jh x x j -=⋅⋅⋅=+=),,,1,0(:0∆,则对任意 k 次样条函数),()(k S x S p k ∆∈都可以表示为B样条函数族1021-=-=⎭⎬⎫⎩⎨⎧⎪⎭⎫⎝⎛+---n j k j k k j h x x Ω的线性组合[14].根据定理 5.1,如果已知曲线上一组点()jjy x ,,其中),,1,0,0(0n j h jh x x j⋅⋅⋅=>+=,则可以构造出一条样条磨光曲线(即为B样条函数族的线性组合)⎪⎭⎫⎝⎛--=∑--=j h x x c x S n kj k j k 01)(Ω 其中)1,,1,(-⋅⋅⋅+--=n k k j c j为待定常数.用它来逼近曲线,既有较好的精度,又有良好的保凸性.实际中,最常用的是3=k 的情况,即一般形式为⎪⎭⎫ ⎝⎛--=∑+-=j h x x c x S n j j 01133)(Ω 其中3+n 个待定系数)1,,0,1(+⋅⋅⋅-=n j c j可以由三类插值条件确定.由插值条件(5.3)得()()()⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=-'='==-='=-'='∑∑∑+-=+-=+-=n n j j n i n j j i n j j y j n c h x S ni y j i c x S y j c h x S 113311330113031)(,,1,0,)(1)(ΩΩΩ(5.13)注意到)(3x Ω的局部非零性及其函数值:61)1(,32)0(33=±=ΩΩ,当2≥x 时0)(3=x Ω;且由)21()21()(223--+='x x x ΩΩΩ知,21)1(,0)0(33=±'='ΩΩ,当2≥x 时0)(3='x Ω.则(5.13)中的每一个方程中只有三个非零系数,具体的为⎪⎩⎪⎨⎧'=+-==++'=+-+-+--n n n i i i i y h c c n i y c c c y h c c 2,,1,0,6421111011(5.14)由方程组(5.14)容易求解出)1,,0,1(+⋅⋅⋅-=n j c j,即可得到三次样条函数)(3x S 表达式.类似地,由插值条件(5.4)得待定系数的)1,,0,1(+⋅⋅⋅-=n j c j所满足的方程组为⎪⎩⎪⎨⎧''=+-==++''=+-+-+--nn n n i i i i y h c c c n i y c c c y h c c c 21111021012,,1,0,642(5.15)由插值条件(5.5)得待定系数的)1,,0,1(+⋅⋅⋅-=n j cj所满足的方程组为⎪⎪⎩⎪⎪⎨⎧==++=-+---=-++-=-+-+-+-+--+--+--ni y c c c c c c c c c c c c c c c c c c c i i i i n n n n n n n n ,,1,0,640)()(2)(0)(0)(0)()(4)(1111011111111011(5.16)方程组(5.15),(5.16)也都是容易求解的.注:上述等距B样条插值公式也适用于近似等距的情形,但在端点0x 和n x 处误差可能较大,实际应用时,为了提高在端点0x 和nx 处的精度,可以适当向左右延拓几个节点.二维等距B样条函数插值设有空间曲面),(y x f z =(未知),如果已知二维等距节点()()τj y ih x y x ji++=0,,)0,(>τh 上的值为),,2,1,0;,,2,1,0(m j n i z ij⋅⋅⋅=⋅⋅⋅=,则相应的B样条磨光曲面的一般形式为⎪⎭⎫ ⎝⎛--⎪⎭⎫⎝⎛--=∑∑--=--=j y y i h x x c y x s l m lj k ij n ki τΩΩ0011),( 其中),,2,1,0;,,2,1,0(m j n i c ij⋅⋅⋅=⋅⋅⋅=为待定常数,l k ,可以取不同值,常用的也是2,=l k 和3的情形.这是一种具有良好保凸性的光滑曲面(函数),在工程设计中是常用的,但只能使用于均匀分划或近似均匀分划的情况.(4) 最小二乘拟合方法最小二乘拟合方法的思想:由于一般插值问题并不总是可解的(即当插值条件多于待定系数的个数时,其问题无解),同时,问题的插值条件本身一般是近似的,为此,只要求在节点上近似地满足插值条件,并使它们的整体误差最小,这就是最小二乘拟合法.最小二乘拟合方法可以分为线性最小二乘拟合方法和非线性最小二乘拟合方法.线性最小二乘拟合方法设{}m k kx 0)(=φ是一个线性无关的函数系,则称线性组合∑==mk k k x a x 0)()(φφ为广义多项式.如三角多项式:∑∑==+=mk k mk kkx b kx ax 0sin cos )(φ.设由给定的一组测量数据),(iiy x 和一组正数),,2,1(n i w i⋅⋅⋅=,求一个广义多项式∑==mk k k x a x 0)()(φφ使得目标函数[]21)(∑=-=ni i i i y x w S φ(5.17)达到最小,则称函数)(x φ为数据),,2,1)(,(n i y x ii⋅⋅⋅=关于权系数),,2,1(n i w i⋅⋅⋅=的最小二乘拟合函数,由于)(x φ关于待定系数ia 是线性的,故此问题又称为线性最小二乘问题. 注意:这里{}m k kx 0)(=φ可根据实际来选择,权系数iw 的选取更是灵活多变的,有时可选取1=i w ,或nw i 1=,对于nw i1=,则相应问题称为均方差的极小化问题.最小二乘拟合函数的求解要使最小二乘问题的目标函数(5.17)达到最小,则由多元函数取得极值的必要条件得),,2,1,0(0m k a Sk==∂∂ 即),,2,1,0(0)()(10m k x y x a w i k ni i m k i k k i ⋅⋅⋅⋅==⎥⎦⎤⎢⎣⎡-∑∑==φφ 亦即),,2,1,0()()()(001m k x y w a x x w n i i k i i j mj n i i k i j i ⋅⋅⋅⋅==⎥⎦⎤⎢⎣⎡∑∑∑===φφφ(5.18)是未知量为ma a a a ,,,,21⋅⋅⋅的线性方程组,称(5.18)式为正规方程组.实际中可适当选择函数系{}m k kx 0)(=φ,由正规方程组解出ma a a a ,,,,210⋅⋅⋅,于是可得最小二乘拟合函数∑==mk kk x a x 0)()(φφ.一般线性最小二乘拟合方法将上面一元函数的最小二乘拟合问题推广到多元函数,即为多维线性最小二乘拟合问题.假设已知多元函数),,,(21nx x x f y ⋅⋅⋅=的一组测量数据);,,,(21iniiiy x x x ⋅⋅⋅),,2,1(m i ⋅⋅⋅=和一组线性无关的函数系{}N k nk x x x 021),,,(=⋅⋅⋅φ,求函数∑=⋅⋅⋅=⋅⋅⋅Nk n k k n x x x a x xx 02121),,,(),,,(φφ对于一组正数mw w w ,,,21⋅⋅⋅,使得目标函数[]2121),,,(∑=⋅⋅⋅-=mi ni i i i i x x x y w S φ达到最小.其中待定系数N a a a a,,,,210⋅⋅⋅由正规方程组),,2,1,0(),(),(0N k y a Nj k j k j⋅⋅⋅==∑=φφφ确定,此处ini i i k mi i k ni i i k mi ni i i j i k j y x x x w y x x x x x x w ),,,(),(),,,(),,,(),(21121121⋅⋅⋅=⋅⋅⋅⋅⋅⋅=∑∑==φφφφφφ注:上面的函数φ关于ia 都是线性的,这就是线性最小二乘拟合问题,对于这类问题的正规组总是容易求解的.如果φ关于ia 是非线性的,则相应的问题称为非线性最小二乘拟合问题.非线性最小二乘拟合方法假设已知多元函数),,,(21nx x x f y ⋅⋅⋅=的一组测量数据);,,,(21iniiiy x x x ⋅⋅⋅),,2,1(m i ⋅⋅⋅=,要求一个关于参数),,2,1,0(N j a j⋅⋅⋅=是非线性的函数),,,;,,,(1021Nn a a a x x x ⋅⋅⋅⋅⋅⋅=φφ对一组正数mw w w ,,,21⋅⋅⋅使得目标函数[]21102110),,,;,,,(),,,(∑=⋅⋅⋅⋅⋅⋅-=⋅⋅⋅mi N ni i i i i N a a a x x x y w a a a S φ达到最小,则称之为非线性最小二乘问题.这类问题属于无约束的最优化问题,一般问题的求解是很复杂的,通常情况下,可以采用共轭梯度法、最速下降法、拟牛顿法和变尺度法等方法求解.实例:黄河小浪底调水调沙问题问题的提出2004年6月至7月黄河进行了第三次调水调沙试验,特别是首次由小浪底、三门峡和万家寨三大水库联合调度,采用接力式防洪预泄放水,形成人造洪峰进行调沙试验获得成功.整个试验期为20多天,小浪底从6月19日开始预泄放水,直到7月13日恢复正常供水结束.小浪底水利工程按设计拦沙量为75.5亿立方米,在这之前,小浪底共积泥沙达14.15亿吨.这次调水调试验一个重要目的就是由小浪底上游的三门峡和万家寨水库泄洪,在小浪底形成人造洪峰,冲刷小浪底库区沉积的泥沙.在小浪底水库开闸泄洪以后,从6月27日开始三门峡水库和万家寨水库陆续开闸放水,人造洪峰于29日先后到达小浪底,7月3日达到最大流量2700立方米/每秒,使小浪底水库的排沙量也不断地增加.下面是由小浪底观测站从6月29日到7月10日检测到的试验数据:表5-1: 试验观测数据单位:水流为立方米/每秒,含沙量为公斤/立方米·84··85·注:以上数据主要是根据媒体公开报道的结果整理而成的,不一定与真实数据完全相符.现在,根据试验数据建立数学模型研究下面的问题:(1) 给出估算任意时刻的排沙量及总排沙量的方法;(2) 确定排沙量与水流量的变化关系.模型的建立与求解对于问题(1),根据所给问题的试验数据,要计算任意时刻的排沙量,就要确定出排沙量随时间变化的规律,可以通过插值来实现.考虑到实际中排沙量应该是随时间连续变化的,为了提高精度,我们采用三次B样条函数进行插值.下面构造三次B样条函数)(x S y =.由试验数据,时间是每天的早8点和晚8点,间隔都是12个小时,共24个点)24,,2,1(⋅⋅⋅=i t i.为了计算方便,令)23,,,1,0(122128⋅⋅⋅=+⎥⎦⎤⎢⎣⎡⋅+-=i i t x i i(5.19)则it 对应于)23,,1,0(1⋅⋅⋅=+=i i x i.于是以)23,,1,0(⋅⋅⋅=i x i为插值节点(等距),步长1=h .其相应的排沙量为)23,,1,0(⋅⋅⋅=i y i 对应关系如下表:·86·表5-2: 插值数据对应关系单位:排沙量为公斤函数)(x S y =所满足的条件为 (1)23,,1,0,)(⋅⋅⋅==i y x S ii;(2) 3500)(,56400)(2223222323231212-=--≈'='=--≈'='x x y y x S y x xy yx S y .取)(x S 的三次B样条函数一般形式为∑-=⎪⎭⎫⎝⎛--=24103)(j j j h x x c x S Ω·87·其中)24,,1,0,1(⋅⋅⋅-=j cj为待定常数,1=h .在这里⎪⎪⎪⎩⎪⎪⎪⎨⎧≥<<+-+-≤+-=Ω2,021,342611,3221)(23233x x x x x x x x x且易知⎪⎪⎪⎩⎪⎪⎪⎨⎧≥±===Ω2,01,610,32)(3x x x x和⎪⎪⎩⎪⎪⎨⎧≥±===Ω'2,01,210,0)(3x x x x 根据B样条函数的性质,)(x S ''在[]23,x x 上连续,则有()∑-=--'='='2413)(j jj xx c x S y Ω由插值条件(1),(2)可得到下列方程组()()()⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=-'=''=-'='⋅⋅⋅==-=∑∑∑-=-=-=23241323024130241323)()(23,,1,0,)(y j c x S y j c x S i y j i c x S j j j j i j j i ΩΩΩ 即⎪⎩⎪⎨⎧'=+-'=+-⋅⋅⋅==++-+-23242311112223,,1,0,64y c c y c c i y c c c i i i i 将232324112,2y c c y c c '+='-=-代入前24个方程中的第一个和最后一个,便可得到方程组F AC =,其中·88·⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⋅⋅⋅⋅⋅⋅=⨯232102424,421410141014124c c c c C A ,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡'-'+=3400048000684000458400266626232322100 y y y y y y F显然A 为满秩阵,方程组F AC =一定有解,用消元法求解可得问题的解为56044.39830=c , 4117111.2031=c , 2159510.7882=c , 9189845.6433=c ,1203106.6364=c , 8239727.8115=c ,8249182.1166=c , 1263543.7217=c ,9287842.9988=c , 2302284.2839=c ,4317419.86810=c , 1304836.24311=c ,3307635.15912=c ,6305423.11913=c ,2270672.36214=c ,4240287.43115=c ,0154177.91216=c ,4103000.92017=c ,99818.406218=c , 43725.454719=c ,49279.775020=c ,32155.445221=c , 2098.444222=c ,7450.777923=c ,-450.777924311.2034,2232324011='+=='-=-y c c y c c . 将)24,,1,0,1(⋅⋅⋅-=j c j代入()∑-=--==24131)(j jj x c x S y Ω(5.20)即得排沙量的变化规律.由(5.19)和(5.20)式可得到第i 时间段(12小时为一段)内,任意时刻]12,0[∈t 的排沙量.则总的排沙量为()dt j t c dx x S Y j j⎰∑⎰-=--Ω==284824132411)(经计算可得1110844.1⨯=Y 吨,即从6月29日至7月10日小浪底水库排沙总量大约为1.844亿吨,此与媒体报道的排沙量基本相符.对于问题(2),研究排沙量与水量的关系,从试验数据可以看出,开始排沙量是随着水流量的增加而增长,而后是随着水流量的减少而减少.显然,变化规律并非是线性的关系,为此,我们问题分为两部分,从开始水流量增加到最大值2720立方米/每秒(即增长的过程)为一段,从水流量的最大值到结束为第二段,分别来研究水流量与排沙量的关系.具体数据如表5-3和5-4.表5-3: 第一阶段试验观测数据 单位:水流为立方米/每秒,含沙量为公斤/立方米表5-4: 第二阶段试验观测数据单位:水流为立方米/每秒,含沙量为公斤/立方米对于第一阶段,由表5-3用Matlab作图(如图5-3)可以看出其变化趋势,我们用多项式作最小二乘拟合.·90··91·图5-3设拟合函数为∑==mk kk x a x 1)(φ确定待定常数),,1,0(m k ak=使得211111102])([∑∑∑===⎥⎦⎤⎢⎣⎡-=-=i i i m k k i k i i y x a y x S φ有最小值.于是可以得到正规方程组为m k x y a x mj i k i i j i j k i ,,1,0,0111111 ==⎪⎭⎫⎝⎛∑∑∑===+ 当3=m 时,即取三次多项式拟合,则3,2,1,0,1113111321112111110111==⎪⎭⎫⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛∑∑∑∑∑==+=+=+=k x y a x a x a x a x i k i i i k i i k i i k i i k i求解可得73321108423.1,103172.1,3.1784,-2492.9318--⨯=⨯-===a a a a .于是可得拟合多项式为332213)(x a x a x a a x +++=φ,最小误差为847.72=S ,拟合效果如图所示.·92·图:三次拟合效果,带*号的为拟合曲线.类似地,当4=m 时,即取四次多项式拟合,则正规方程组为4,3,2,1,0111411143111321112111110111==⎪⎭⎫⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛∑∑∑∑∑∑==+=+=+=+=k x y a x a x a x a x a x i ki i i k i i k i i k i i k i i k i求解可得104633210109312.1,1094.1,102626.7,12.0624,-7434.6557---⨯-=⨯=⨯-===a a a a a 于是可得拟合多项式为443322104)(x a x a x a x a a x ++++=φ,最小误差为102.66=S ,拟合效果如图5-5所示.图5-5:四次拟合效果,带*号的为拟合曲线.从上面的三次多项式拟合和四次多项拟合效果来看,差别不大.基本可以看出排沙量与水流量的关系.图5-6:第二段三·93··94· 次多项式拟合效果对于第二阶段,由表5-4可以类似地处理.我们用线性最小二乘法作三次和四多项式拟合.拟合效果如图5-6和5-7所示,最小误差分别为5.459=S 和1.236=S . 从拟合效果来看,显然四次多项式拟合要比三次多项式拟合好的多.图5-7:第二段四次多项式拟合效果。

在Matlab中如何进行数据插值与拟合

在Matlab中如何进行数据插值与拟合

在Matlab中如何进行数据插值与拟合引言:数据处理是科学研究与工程开发中不可或缺的环节之一。

而数据插值和拟合则是数据处理中常用的技术手段。

在Matlab这一强大的数值分析工具中,提供了丰富的函数与工具箱,使得数据插值与拟合变得更加便捷高效。

本文将详细阐述在Matlab中如何进行数据插值与拟合,并介绍几个常用的插值与拟合方法。

一、数据插值数据插值是通过已知的有限个数据点,推导出数据点之间未知位置上的数值。

在Matlab中,可以利用interp1函数进行数据插值。

假设我们有一组离散的数据点,存储为两个向量x和y。

那么,可以通过以下步骤进行数据插值:1. 调用interp1函数,并传入x和y作为输入参数。

```matlabxi = linspace(min(x), max(x), n);yi = interp1(x, y, xi, '方法');```其中,xi是插值点的位置,min和max分别是x向量的最小值和最大值,n是插值点的数量。

'方法'是要使用的插值方法,可以选择线性插值(method='linear')、样条插值(method='spline')等。

2. 绘制插值结果曲线。

```matlabplot(x, y, 'o', xi, yi)legend('原始数据','插值结果')```使用plot函数可以绘制原始数据点和插值结果的曲线。

通过设置不同的插值方法和插值点的数量,可以探索不同的插值效果。

二、数据拟合数据拟合是通过已知的一组数据点,找到一个符合数据趋势的函数模型。

在Matlab中,可以利用polyfit函数进行多项式拟合。

假设我们有一组离散的数据点,存储为两个向量x和y。

那么,可以通过以下步骤进行数据拟合:1. 调用polyfit函数,并传入x和y作为输入参数。

```matlabp = polyfit(x, y, n);```其中,n是多项式的次数,p是拟合多项式的系数。

拉格朗日插值算法在工程中的应用

拉格朗日插值算法在工程中的应用

拉格朗日插值算法在工程中的应用一、数据拟合与插值1.1数据拟合在工程中,往往需要根据已知数据点的测量值,来建立一个函数或模型来描述数据。

拉格朗日插值算法可以通过已知数据点得到一个高次多项式,并利用这个多项式来拟合数据。

这在信号处理、数据分析和数据挖掘等领域中经常使用。

例如,在图像处理中,可以利用拉格朗日插值算法来重建丢失或损坏的像素点,从而恢复图像的完整性。

1.2数据插值在实际应用中,可能会遇到需要在已知数据点之间进行插值的情况。

例如,测量得到的数据点往往不是连续的,而在一些应用中,需要在两个已知数据点之间进行插值得到中间位置的数据点的值。

拉格朗日插值算法可以通过已知数据点的值来估计未知数据点的值。

在计算机图形学中,可以利用拉格朗日插值算法来实现图形的变形和变换,从而实现平滑的过渡效果。

二、曲线拟合与绘制在工程领域,经常需要根据实验数据建立曲线模型。

拉格朗日插值算法可以通过数据点来拟合产生一个曲线,从而实现曲线的绘制和描述。

在机械设计中,可以利用拉格朗日插值算法来绘制曲线图,以描述机械零部件之间的运动规律。

三、数值逼近和求解复杂方程拉格朗日插值算法可以用于数值逼近和求解复杂的方程。

在实际工程中,往往需要解决非线性代数方程组、微分方程、积分方程等复杂的数学问题。

通过拉格朗日插值算法,可以将这些复杂的方程转化为一个多项式或多项式组,并通过求解多项式的根来得到方程的近似解。

例如,在电子电路设计中,可以利用拉格朗日插值算法来求解复杂的电路方程,从而优化电路设计和排除故障。

四、数据压缩和处理在工程中,往往需要对大量的数据进行存储和处理。

拉格朗日插值算法可以将离散的数据点表示为一个多项式,并利用多项式的系数来压缩数据。

通过将数据进行插值和拟合,可以减少数据的存储空间和传输时间。

在通信领域中,可以利用拉格朗日插值算法来实现信号的压缩和解压缩,提高传输效率和节省带宽。

总之,拉格朗日插值算法在工程中有广泛的应用,包括数据拟合与插值、曲线拟合与绘制、数值逼近和求解复杂方程、数据压缩和处理等。

MATLAB中的数据插值与拟合方法介绍

MATLAB中的数据插值与拟合方法介绍

MATLAB中的数据插值与拟合方法介绍概述数据处理是科学研究和工程实践中的重要环节之一。

对于实验或观测数据,我们常常需要通过插值和拟合方法来获取更加精确和连续的函数或曲线。

在MATLAB中,有多种方法和函数可以用于实现数据插值和拟合,本文将介绍其中的一些常用方法。

一、数据插值数据插值是指利用有限个数据点,通过某种方法构建一个连续的函数,以实现在这些点之间任意位置的数值估计。

在MATLAB中,常用的数据插值方法有线性插值、多项式插值、三次样条插值等。

1. 线性插值线性插值是最简单的插值方法之一,假设我们有两个数据点 (x1, y1) 和 (x2, y2),要在这两个点之间插值一个新的点 (x, y),线性插值即为连接 (x1, y1) 和 (x2, y2) 这两个点的直线上的点(x, y)。

在MATLAB中,可以通过interp1函数进行线性插值。

2. 多项式插值多项式插值是使用一个低次数的多项式函数来拟合数据的方法。

在MATLAB 中,可以通过polyfit函数进行多项式拟合,然后利用polyval函数来进行插值。

具体的插值效果与所选用的多项式阶数有关。

3. 三次样条插值三次样条插值算法利用相邻数据点之间的三次多项式来拟合数据,从而构成一条光滑的曲线。

在MATLAB中,可以通过spline函数进行三次样条插值。

二、数据拟合除了插值方法外,数据拟合也是处理实验或观测数据的常见方法之一。

数据拟合是指通过选择一个特定的数学模型,使该模型与给定的数据点集最好地拟合。

在MATLAB中,常用的数据拟合方法有多项式拟合、指数拟合、非线性最小二乘拟合等。

1. 多项式拟合在MATLAB中,可以使用polyfit函数进行多项式拟合。

该函数通过最小二乘法来拟合给定数据点集,并得到一个多项式函数。

根据所选用的多项式阶数,拟合效果也会有所不同。

2. 指数拟合指数拟合常用于具有指数关系的数据。

在MATLAB中,可以通过拟合幂函数的对数来实现指数拟合。

插值与拟合问题

插值与拟合问题

插值与拟合问题插值与拟合是数学和计算机科学领域中常见的问题,涉及到通过已知数据点来估计未知点的值或者通过一组数据点来逼近一个函数的过程。

在现实生活中,这两个问题经常用于数据分析、图像处理、物理模拟等领域。

本文将介绍插值与拟合的基本概念、方法和应用。

一、插值问题插值是通过已知的数据点来推断出未知点的值。

在插值问题中,我们假设已知数据点是来自于一个未知函数的取值,在这个函数的定义域内,我们需要找到一个函数或者曲线,使得它经过已知的数据点,并且可以通过这个函数或者曲线来估计未知点的值。

常见的插值方法包括线性插值、拉格朗日插值和牛顿插值。

线性插值是通过已知的两个数据点之间的直线来估计未知点的值,它简单而直观。

拉格朗日插值则通过构造一个关于已知数据点的多项式来估计未知点的值,这个多项式经过每一个已知数据点。

牛顿插值和拉格朗日插值类似,也是通过构造一个多项式来估计未知点的值,但是它使用了差商的概念,能够更高效地处理数据点的添加和删除。

不仅仅局限于一维数据点的插值问题,对于二维或者更高维的数据点,我们也可以使用类似的插值方法。

例如,对于二维数据点,我们可以使用双线性插值来估计未知点的值,它利用了四个已知数据点之间的线性关系。

插值问题在实际应用中非常常见。

一个例子是天气预报中的气温插值问题,根据已知的气温观测站的数据点,我们可以估计出其他地点的气温。

另一个例子是图像处理中的像素插值问题,当我们对图像进行放大或者缩小操作时,需要通过已知像素点来估计未知像素点的值。

二、拟合问题拟合是通过一组数据点来逼近一个函数的过程。

在拟合问题中,我们假设已知的数据点是来自于一个未知函数的取值,我们需要找到一个函数或者曲线,使得它能够与已知的数据点尽可能地接近。

常见的拟合方法包括多项式拟合、最小二乘拟合和样条拟合。

多项式拟合是通过一个多项式函数来逼近已知的数据点,它的优点是简单易用,但是对于复杂的函数形态拟合效果可能不好。

最小二乘拟合则是寻找一个函数,使得它与已知数据点之间的误差最小,这个方法在实际应用中非常广泛。

插值与拟合算法分析

插值与拟合算法分析

插值与拟合算法分析在数学与计算机科学领域,插值与拟合算法是两种常用的数据处理技术。

插值算法通过已知数据点之间的内插来估算未知数据点的值,而拟合算法则通过求取最佳拟合曲线或函数来逼近已知数据点。

本文将对插值与拟合算法进行详细分析,并比较它们在不同应用中的优缺点。

一、插值算法插值算法主要用于通过已知数据点之间的内插来估算未知数据点的值。

常用的插值算法包括拉格朗日插值、牛顿插值、样条插值等。

这些算法根据插值函数的不同特点,适用于不同类型的数据处理。

1. 拉格朗日插值拉格朗日插值是一种基于代数多项式的插值方法。

它通过构造一个全局多项式函数来拟合已知数据点,并推导出未知数据点的估算值。

拉格朗日插值算法具有简单易懂、计算效率高等优点,但在处理大量数据点时可能会出现龙格现象,导致插值结果有一定误差。

2. 牛顿插值牛顿插值是一种基于差商的插值方法。

它通过计算差商的递推关系,构造一个分段多项式函数来拟合已知数据点。

相比于拉格朗日插值,牛顿插值算法具有更高的数值稳定性和精度,并且可以方便地进行动态插值。

3. 样条插值样条插值是一种基于分段函数的插值方法。

它将整个数据区间划分为若干小段,并使用不同的插值函数对每一段进行插值。

样条插值算法通过要求插值函数的高阶导数连续,能够更好地逼近原始数据的曲线特征,因此在光滑性较强的数据处理中常被使用。

二、拟合算法拟合算法主要用于通过最佳拟合曲线或函数来逼近已知数据点。

常用的拟合算法包括最小二乘拟合、多项式拟合、非线性拟合等。

这些算法可以使拟合曲线与已知数据点尽可能地接近,从而进行更精确的数据分析和预测。

1. 最小二乘拟合最小二乘拟合是一种通过最小化残差平方和来求取最佳拟合曲线的方法。

它利用数据点与拟合曲线的差异来评估拟合效果,并通过求取最小残差平方和的参数值来确定拟合曲线的形状。

最小二乘拟合算法广泛应用于线性回归和曲线拟合等领域。

2. 多项式拟合多项式拟合是一种通过多项式函数来逼近已知数据点的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x[ a ,b ]
即:有界区间上的连续函数被多项式一致逼近。
§ 7.1.4 实际应用中两种方法的选择
在实际应用中,究竟选择哪种方法比较恰 当?总的原则是根据实际问题的特点来决定采 用哪一种方法。具体说来,可从以下两方面来 考虑:
1.如果给定的数据是少量的且被认为是严 格精确的,那么宜选择插值方法。采用插值方 法可以保证插值函数与被插函数在插值节点处 完全相等。
x0
y0
x1
y1


xn
yn
其中 f(x) 在区间 [a, b] 上连续,x0,x1,…,xn为 [a, b] 上 n1个互不相同的点,要求找一个简单合理的函数 近似表达式 (x),使 (x) 与 f(x) 在某种准则下最为接 近,这就是最基本的数据拟合问题(见图7.1.2)。 通常,我们称 (x) 为给定数据点的拟合函数。
2.如果给定的数据是大量的测试或统计的 结果,并不是必须严格遵守的,而是起定性地 控制作用的,那么宜选用数据拟合的方法。这 是因为,一方面测试或统计数据本身往往带有 测量误差,如果要求所得的函数与所给数据完 全吻合,就会使所求函数保留着原有的测量误 差;另一方面,测试或统计数据通常很多,如 果采用插值方法,不仅计算麻烦,而且逼近效 果往往较差。
§7.2 一维数据的基本插值方法简介
插值函数类的取法很多,可以是代数多项 式,也可以是三角多项式或有理函数;可以是 [a, b] 上任意光滑函数,也可以是分段光滑函数。 在此介绍最基本、最常用的两种插值方法:分 段多项式插值与三次样条插值,及其 Matlab 实 现。
§ 7.2.1 一维数据的分段多项式插值
分段线性插值函数 P1(x) 是一个分段一次多 项式(分段线性函数)。在几何上就是用折线 代替曲线,如图 7.2.1,故分段线性插值亦称为 折线插值。其插值公式为
x xi x xi 1 P yi 1 yi 1 ( x) xi 1 xi xi xi 1
其中 x[xi, xi +1]
1.三次样条插值问题的基本提法 对于给定的一维数据 x y = f(x) x0 y0 x1 y1 … … xn yn
求一个三次多项式 S(x) 满足条件 (1)S(xi) = yi,i = 0, 1, …, n; (2)S(x) 具有二阶连续导数,特别在节点 xi 上应 满足连续性要求,即对 i = 0, 1, …, n 有
根据这些数据,我们希望寻找一个 y = f(t) 的近似表达 式(如建立浓度y与时间 t 之间的经验公式等)。从几 何上看,就是希望根据给定的一组点(1, 4.00),…, (16, 10.60),求函数 y = f(t) 的图象的一条拟合曲线。
数据拟合问题的基本提法:对于给定的函数表
x
y = f(x)
(7.2.1)
图 7.2.1 分段线性插值示意图
2.分段二次插值
分段二次插值函数 P2(x) 是一个分段二次多项 式。在几何上就是分段抛物线代替曲线 y = f(x), 故分段二次插值又称为分段抛物插值。其插值公式
P2 ( x) ( x xi )(x xi 1 ) ( x xi 1 )(x xi 1 ) ( x xi 1 )(x xi ) yi 1 yi yi 1 ( xi 1 xi )(xi 1 xi 1 ) ( xi xi 1 )(xi xi 1 ) ( xi 1 xi 1 )(xi 1 xi )
S ( x i 0) S ( x i 0 ) S ' ( x i 0) S ' ( x i 0) S ' ' ( x i 0) S ' ' ( x i 0)
2.三次样条插值函数 给定区间 [a, b] 的一个划分:a = x0 < x1 < … < xn = b,设函数 y = f(x) 在节点 xi 上的值 为 yi = f(xi),i = 0, 1, …, n。如果 S(x) 于 [a, b] 有 二阶连续导数,且在每个小区间 [xi , xi+1] 上是 三次多项式,则称 S(x) 是节点 x0,x1,…,xn 上的三次样条函数。如果 S(x) 在节点 xi上还满 足插值条件 S(xi) = yi,i = 0, 1, …, n, 则称 S(x) 为三次样条插值函数。 (7.2.11)
11 10 9 8 7 6 5 4 3 0 2 4 6 8 10 12 14 16
图7.1.2 数据拟合问题示意图
§ 7.1.3 插值与数据拟合的基本理论依据
插值方法与数据拟合的基本理论依据,就 是数学分析中的 Weierstrass 定理:设函数 f(x) 在区间 [a, b] 上连续,则对 > 0,存在多项式 P(x),使得 max f ( x) P( x)
§ 7.1.1 插值 引例 7.1.1 已经测得在北纬 32.3 海洋不同深度处 的温度如下表:
表7.1.1 深度x (m) 466 714 950 1422 1634
水温y (C)
7.04
4.28
3.40
2.54
2.13
根据这些数据,我们希望能合理地估计出其它深度 (如 500米、600米、1000米…)处的水温。 解决这个问题,可以通过构造一个与给定数据相 适应的函数来解决,这是一个被称为插值的问题。
解决这个问题,可以通过构造一个与给定数据相 适应的函数来解决,这是一个被称为插值的问题。 插值问题的基本提法:对于给定的函数表
x
y = f(x)
x0
y0
x1
y1


xn
yn
其中 f(x) 在区间 [a, b] 上连续,x0,x1,…,xn为 [a, b] 上 n1个互不相同的点,要求在一个性质优良、便于 计算的函数类 {P(x)} 中,选出一个使 P(xi ) = yi,i = 0, 1, …, n (7.1.1) 成立的函数 P(x) 作为 f(x) 的近似,这就是最基本的插 值问题(见图7.1.1)。
P3(x) = 0(x)y0 1(x)y1 0(x)m0 1(x)m1 (7.2.5)
2 x x0 x x1 0 ( x) 1 2 x x x x 1 0 0 1 2 x x1 x x0 1 ( x) 1 2 x x x x 0 1 1 0 2 x x1 0 ( x) ( x x0 ) x x 0 1 2 x x0 1 ( x) ( x x1 ) x x 1 0
(7.2.6)
三次 Hermite 插值问题的基本提法二:已 知一维数据
x y = f (x) y = f (x) x0 y0 x1 y1 m1 x2 y2
求一个三次多项式 P3(x),使之满足 P3(xi) = yi,i = 0, 1, 2,P3(x1) = mi
(7.2.3)
下 面 的 (7.2.9) 、 (7.2.10) 两 式 构 成 里 三 次 Hermite 插值基本提法二的插值公式
引例 7.1.2 在某化学反应中,已知生成物的浓度 与时间有关。今测得一组数据如下:
表7.1.2
时间t(分)
浓度y103
1
4.00
2
6.40
3
8.00
4
8.80
5
9.22
6
9.50
7
9.70
8
9.86
时间t(分)
浓度y103
9
10
11
12
13
14
15
16
10.00 10.20 10.32 10.32 10.50 10.55 10.58 10.60
i 1
i 1 x x j yk k i 1 j i 1 xk x j j k
(7.2.2)
其中 x[xi -1 , xi +1]
3.三次 Hermite 插值 三次 Hermite 插值问题的基本提法一:已 知一维数据
x y = f (x) y = f (x) x0 y0 m0 x1 y1 m1
求一个三次多项式 P3(x),使之满足 P3(xi) = yi,P3(xi) = mi,i = 0, 1
(7.2.3)
下面的 (7.2.5)、 (7.2.6) 两式构成里三次 Hermite 插值基本提法一的插值公式
对应于划分 的三次样条插值函数的表达式为
S3 ( x) 0 1 x
2 x
2!
2

3 x3
3!

j 1
n 1
j ( x x j )3
3!
(7.2.12)
其中
m x , x0 m x 0, x 0
3.边界条件 在式 (7.2.12) 给出的三次多项式中,共含 有 n3 个待定系数。而由插值条件 (7.2.11) 式, 可列出 n1 个方程,方程组中未知数的个数比 方程个数多 2,还需附加 2 个条件才能进行求 解。通常可在区间端点 x0 = a 和 xn = b 处各附 加一个条件(称为边界条件或边值条件)去确 定 S (x )。
9 8 7 6 5 4 3 2 400 600 800 1000 1200 1400 1600 1800
图 7.1.1 插值问题示意图
为便于叙述,通常称区间 [a, b] 为插值区 间,称点 x0,x1,…,xn为插值节点,称函数类 {P(x)} 为插值函数类,称式 (7.1.1) 为插值条件, 称函数 P(x) 为插值函数,称 f(x) 为被插函数。 求插值函数 P(x) 的方法称为插值法。
P3(x) = 0(x)y0 1(x)y1 0(x)m0 1(x)m1 (7.2.9)
相关文档
最新文档