第5章 多项式、插值与数据拟合

合集下载

数值计算方法插值与拟合

数值计算方法插值与拟合

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第五章插值法

第五章插值法
另一类方法在选定近似函数的形式后,不要求近似 函数过已知样点,只要求在某种意义下它在这些点
上的总偏差最小。这类方法称为曲线(数据)拟合 法,将在下一章介绍。
本章主要讨论构造插值多项式的几种常用的方法及 其误差 用插值法求函数的近似表达式时,首先要选定 函数的形式。可供选择的函数很多,常用的是多项式 函数。因为多项式函数计算简便,只需用加、减、乘 等运算,便于上机计算,而且其导数与积分仍为多项式。
返回
第5章 插值法
前进
如行星在太空中的定位问题:当行星在空间运行时, 可通过精密观测仪器在不同的时间ti(i = 1,2,…)观测到行 星所在位置S(ti),无论花费多少人力物力,所得到的只 是一批离散数据(ti,S(ti)),i=1,2,…),而行星是在作连续运 动,它在任一时间t(与ti不同)的位置S(t),我们只能再 去通过观测得到,插值逼近是利用这组离散数据(ti,S(ti)) 构造一个简单的便于计算的近似函数(解析表达式), 用它可求任何时间的函数值(称为插值),对这个近似 解析表达式也能求导,讨论其各种性质。
六十年期间任何一年(例如1965年)的人口总数,或者预
测2019年该地区的人口数量 。利用插值方法就可以解决
这一类问题。
另一方面,有些函数,虽然有解析表达式,但因其过于
复杂,不便于计算和分析,同样希望构造一个既能反映函
数的特性又便于计算的简单函数,近似代替原来的函数。
如在积分
I
b
f (x)dx
中,当f (x)很复杂,要计算
a
积分I是很困难的,构造都要用到插值逼近。
返回代数插值第5章 插值法
前进
解决上述问题的方法有两类:一类是对于一组离 散点(xi,f (xi)) (i = 0,1,2,…,n),选定一个便于计算的函

第5章 插值方法

第5章 插值方法

第5章插值方法5.1 插值问题概述假设f(x)是某个表达式很复杂,甚至根本写不出来的实函数,且已知f(x)在某个区间[a,b]上的n+1个互异的点x0,x1,…,x n处的函数值f(x0),f(x1),…,f(x n),我们希望找到一个简单的函数y=P(x),使得P(x k)=f(x k),k=0,1,…,n.这就是插值问题。

如果我们找到了这样的函数y=P(x),我们就可以在一定范围内利用P(x)近似表示f(x),从而解决了相应的计算问题。

1.利用函数值列表来表示插值问题对于一个插值问题来说,我们的已知条件就是n+1个互异的点处的函数值.回顾高等数学中学习过的函数的表示方法,我们可用下面表1的形式列出已知的函数值,并简称为由表1给出的插值问题。

表1:插值问题的函数值列表2.重要术语对于n+1个基点的插值问题,我们称:f(x) 为被插值函数;P(x)为插值函数;x0,x1,…,x n为插值基点或插值节点;P(x k)=f(x k),k=0,1,…,n为插值条件;[a,b]为插值区间。

注释:对于早期的插值问题来说,f(x)通常是已知的,比如对数函数,指数函数,三角函数等这些问题现在已经不用插值法来计算了;对于现在的许多实际问题来说,我们并不知道f(x)的具体形式,所对应的函数值可能是由测量仪器或其他物理设备中直接读出来的,f(x)只是一个概念中的函数。

3.多项式插值对于n+1个基点的插值问题,如果要求插值函数是次数不超过n 的多项式,记为P n(x),则相应的问题就是多项式插值,并且把P n(x)称为插值多项式。

实际上,我们所考虑的插值函数通常都是多项式函数或分段多项式函数。

由于次数不超过n的多项式的一般形式为P n((x)=a 0+a 1x+a 2x 2+…+a n x n (1)所以只要确定了n+1个系数a 0,a 1,a 2,a n ,我们便确定了一个插值多项式。

4.多项式插值的一般方法对于n+1个基点的多项式插值问题,我们完全可以用上一章中的办法来求插值多项式P n (x)的系数,a 0,a 1,a 2,a n ,它们可表为下面的线性方程组的解,所以多项式插值相对说来是很简单的。

插值与拟合

插值与拟合
max f (x) P(x)
x[ a ,b ]
即:有界区间上的连续函数被多项式一致逼近。
§ 7.1.4 实际应用中两种方法的选择
在实际应用中,究竟选择哪种方法比较恰 当?总的原则是根据实际问题的特点来决定采 用哪一种方法。具体说来,可从以下两方面来 考虑:
1.如果给定的数据是少量的且被认为是严 格精确的,那么宜选择插值方法。采用插值方 法可以保证插值函数与被插函数在插值节点处 完全相等。
2.如果给定的数据是大量的测试或统计的 结果,并不是必须严格遵守的,而是起定性地 控制作用的,那么宜选用数据拟合的方法。这 是因为,一方面测试或统计数据本身往往带有 测量误差,如果要求所得的函数与所给数据完 全吻合,就会使所求函数保留着原有的测量误 差;另一方面,测试或统计数据通常很多,如 果采用插值方法,不仅计算麻烦,而且逼近效 果往往较差。
0
(
x)

1

2
x x1

x0 x0

x x0
x1 x1
2


1(x)

1
2
x x1 x0 x1

x x0 x1 x0
2



2

0
(
x)

(
x

x0
)
(7.2.3)
下 面 的 (7.2.9) 、 (7.2.10) 两 式 构 成 了 三 次 Hermite 插值基本提法二的插值公式
P3(x) = 0(x)y0 1(x)y1 0(x)m0 1(x)m1 (7.2.9)
0 ( x)

(x ( x0

《插值与拟合》课件

《插值与拟合》课件

拟合的方法
1
最小二乘法
通过最小化残差平方和,找到与数据最匹配的函数。
2
局部加权回归
给予附近数据点更高的权重,拟合接近局部数据点的函数。
3
多项式拟合
用多项式函数逼近数据,通过选择合适的次数实现拟合。
插值与拟合的误差分析
插值和拟合都会引入近似误差,需要评估误差范围和影响因素。
插值与拟合在数据处理与分析中的应用
数据分析
通过插值和拟合方法对数据进 行探索和分析。
数据处理
在数据处理过程中使用插值和 拟合技术来填充缺失值和平滑 数据。
数据建模
利用插值和拟合模型对数据特 征进行捕捉和预测分析。
插值与拟合的推广和发展前景
随着数据科学和人工智能的不断发展,插值和拟合在各个领域的应用前景越 来越广阔。
插值与拟合的应用范围
科学研究
用于数据分析、信号优化设计、近似计算和 效能提升。
经济金融
用于市场分析、预测模型和 风险评估。
插值的方法
1
拉格朗日插值
基于多项式插值公式,用拉格朗日多项式逼近函数。
2
牛顿插值
基于差商的概念,用多项式逼近函数的值。
3
分段插值
将插值区间划分为多个子区间,并在每个子区间上进行插值。
《插值与拟合》PPT课件
插值与拟合是数值计算和数据分析中重要的概念。
插值与拟合的概念
插值
通过已知值的推算,计算在未知点的近似值。
拟合
通过曲线或曲面拟合已知数据,以描述和预 测未知数据。
插值与拟合的区别与联系
1 区别
2 联系
插值重点关注已知点的准确性,而拟合则 着重于整体形状的拟合。
插值和拟合都通过数学模型逼近离散数据, 以实现数据的补全和预测。

插值与拟合方法

插值与拟合方法

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

共同点:插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法,由于对近似要求的准则不同,因此二者在数学方法上有很大的差异.插值问题的一般提法:已知某函数)(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:第二段四次多项式拟合效果。

第5章 多项式、插值与数据拟合

第5章  多项式、插值与数据拟合

两个多项式的和与差:
ya a1x a2 x
m n
m1 n1

am x am1 bn x bn1
yb b1x b2 x
命令poly_add:求两个多项式的和,其调用格式为: c= poly_add(a,b) 多项式a减去b,可表示为: c= poly_add(a,-b)
例: y ( x 1)6 x6 6x5 15x4 20x3 15x2 6x 1
>> r=roots([1 -6 15 -20 15 -6 1]) r= 1.0048 + 0.0000i 1.0024 + 0.0042i 1.0024 - 0.0042i 0.9976 + 0.0042i 0.9976 - 0.0042i 0.9952 + 0.0000i 舍入误差的影响,与计算精度有关。
>> x=[0.3:0.005:0.35];y=hermite(x0,y0,y1,x); >> plot(x,y) >> y2=sin(x); hold on >> plot(x,y2,'--r')
5.2.3 Runge现象
• 问题的提出:根据区间[a,b]上给出的节点做 插值多项式p(x)的近似值,一般总认为p(x)的 次数越高则逼近f(x)的精度就越好,但事实并 非如此。 1 f ( x) • 反例: 1 x2 在区间[-5,5]上的各阶导数存在,但在此 区间上取n个节点所构成的Lagrange插值多项 式在全区间内并非都收敛。 • 取n=10,用Lagrange插值法进行插值计算。



• 算例:对给定数据,试构造Hermite多项式求出 sin0.34的近似值。 >> x0=[0.3,0.32,0.35]; >> y0=[0.29552,0.31457,0.34290]; >> y1=[0.95534,0.94924,0.93937]; >> format long; y=hermite(x0,y0,y1,0.34) y= 0.333488890074074 >> sin(0.34) %与精确值比较 ans = 0.333487092140814

插值与拟合算法分析

插值与拟合算法分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
N阶多项式n个根,其中包含重根和复根。若多 项式所有系数均为实数,则全部复根都将以共轭对 的形式出现
• 幂系数:在MATLAB里,多项式用行向量表示,其 元素为多项式的系数,并从左至右按降幂排列。
例:
y 2x x 4x 5
3 2
被表示为 >> p=[2 1 4 5] >> poly2sym(p) ans = 2*x^3+x^2+4*x+5
x xj xk x j
)
• MATLAB实现
function y=lagrange(x0,y0,x) n n x xj ) ii=1:length(x0); y=zeros(size(x)); y ( x) yk ( k 1 j 1 xk x j for i=ii j k ij=find(ii~=i); y1=1; for j=1:length(ij), y1=y1.*(x-x0(ij(j))); end y=y+y1*y0(i)/prod(x0(i)-x0(ij)); end • 算例:给出f(x)=ln(x)的数值表,用Lagrange计算 ln(0.54)的近似值。 >> x=[0.4:0.1:0.8]; >> y=[-0.916291,-0.693147,-0.510826,-0.356675,-0.223144]; >> lagrange(x,y,[0.54,0.55,0.78]) ans = -0.6161 -0.5978 -0.2484 ( 精确解-0.616143)
多项式为 Polyfit的第三个参数是多项式的阶数。
y 0.2015x3 1.4385x2 2.7477x 5.4370
多项式积分:
y c1xn c2 xn1 cn x cn1
cn 2 c1 n 1 c2 n Y ydx x x x cn 1 x :5]; y=1./(1+x.^2); x0=[-5:0.1:5]; >> y0=lagrange(x,y,x0); >> y1=1./(1+x0.^2); %绘制图形 >> plot(x0,y0,'--r') %插值曲线 >> hold on >> plot(x0,y1,‘-b') %原曲线
• Roots: 多项式的零点可用命令roots求的。
例: >> r=roots(p) 得到 r= 0.2500 + 1.5612i 0.2500 - 1.5612i -1.0000 所有零点由一个列向量给出。
• Poly: 由零点可得原始多项式的各系数,但可能相差 一个常数倍。 例: >> poly(r)
5.2.2 Hermite插值
• 方法介绍 不少实际问题不但要求在节点上函数值相等,而且 要求导数值也相等,甚至要求高阶导数值也相等,满足 这一要求的插值多项式就是Hermite插值多项式。下面 只讨论函数值与一阶导数值个数相等且已知的情况。 已知n个插值点 x1 , x2 ,, xn 及对应的函数值 y1 , y2 ,, yn 和一阶导数值 y1' , y2' ,, y'n 。则对插值区间 内任意x的函数值y的Hermite插值公式:
ya yq yb yr
其中 yq 是商, yr 是除法的余数。多项式 yq 和 yr 可由命令deconv算出。 例:[q, r]=deconv(a,b)
• 例 >> a=[2,-5,6,-1,9]; b=[3,-90,-18]; >> c=conv(a,b) c= 6 -195 432 -453 9 -792 -162 >> [q,r]=deconv(c,b) q= 2 -5 6 -1 9 r= 0 0 0 0 0 0 0 >> poly2sym(c) ans = 6*x^6-195*x^5+432*x^4-453*x^3+9*x^2-792*x-162
第五章 多项式、插值与数据拟合
• 多项式MATLAB命令 • 插值
– – – – – Lagrange插值 Hermite插值 Runge现象和分段插值 分段插值 样条插值的MATLAB表示
• 数据拟合
–多项式拟合 –函数线性组合的曲线拟合方法 –最小二乘曲线拟合 –B样条函数及其MATLAB表示
5.1 关于多项式MATLAB命令
5.2 插值
5.2.1 Lagrange插值
• 方法介绍 对给定的n个插值点 x1, x2 ,, xn 及对应的函 数值 y1, y2 ,, yn ,利用构造的n-1次Lagrange插 值多项式,则对插值区间内任意x的函数值y 可通过下式求的:
y ( x) yk (
k 1 j 1 j k n n
• 为解决Rung问题,引入分段插值。
5.2.4 分段插值
• 算法分析:所谓分段插值就是通过插值点用折 线或低次曲线连接起来逼近原曲线。 • MATLAB实现 可调用内部函数。
– 命令1 interp1
• 功能 : 一维数据插值(表格查找)。该命令对数据点之 间计算内插值。它找出一元函数f(x)在中间点的数值。其 中函数f(x)由所给数据决定。 • 格式1 yi = interp1(x,Y,xi) %返回插值向量yi,每一元素对应于参量xi,同时由向 量x与Y的内插值决定。参量x指定数据Y的点。若Y为一矩阵, 则按Y的每列计算。 • 算例 对于t,beta 、alpha分别有两组数据与之对应,用分段线 性插值法计算当t=321, 440, 571时beta 、alpha的值。
• polyval: 可用命令polyval计算多项式的值。 例: y 3x4 7 x3 2x2 x 1 计算y(2.5)
>> c=[3,-7,2,1,1]; xi=2.5; yi=polyval(c,xi) yi = 23.8125 如果xi是含有多个横坐标值的数组,则yi也 为与xi长度相同的向量。 >> c=[3,-7,2,1,1]; xi=[2.5,3]; >> yi=polyval(c,xi) yi = 23.8125 76.0000
• 一个多项式的幂级数形式可表示为:
y c1x c2 x
n
n1
cn x cn1
• 也可表为嵌套形式
y (((c1x c2 ) x c3 ) x cn ) x cn1
• 或因子形式
y c1 ( x r1 )( x r2 )( x rn )
功能:求多项式积分 调用格式:py=poly_itg(p) p:被积多项式的系数 py:求积后多项式的系数 poly_itg.m function py=poly_itg(p) n=length(p); py=[p.*[n:-1:1].^(-1),0] 不包括最后一项积分常数
多项式微分:
y c1x c2 x
n
n1
cn x cn1
n 2
y nc1x
'
n1
(n 1)c2 x
cn
• Polyder: 求多项式一阶导数的系数。 调用格式为: b=polyder(c ) c为多项式y的系数,b是微分后的系数, 其值为:
[nc1 , (n 1)c2 ,, cn ]
两个多项式的和与差:
• polyfit:给定n+1个点将可以唯一确定一个n阶多项式。利 用命令polyfit可容易确定多项式的系数。 例: >> x=[1.1,2.3,3.9,5.1]; >> y=[3.887,4.276,4.651,2.117]; >> a=polyfit(x,y,length(x)-1) a= -0.2015 1.4385 -2.7477 5.4370 >> poly2sym(a) ans = -403/2000*x^3+2877/2000*x^2-27477/10000*x+5437/1000
ya a1x a2 x
m n
m1 n1
am x am1 bn x bn1
yb b1x b2 x
命令poly_add:求两个多项式的和,其调用格式为: c= poly_add(a,b) 多项式a减去b,可表示为: c= poly_add(a,-b)
功能:两个多项式相加 调用格式:b=poly_add(p1,p2) b:求和后的系数数组
• m阶多项式与n阶多项式的乘积是d=m+n阶的多项式:
ya a1x a2 x
m
m1
am x am1
d 1
yb b1xn b2 xn1 bn x bn1
yc ya yb c1x c2 x
d
cd x cd 1
计算 yc 系数的MATLAB命令是:c=conv(a,b) • 多项式 yb 除多项式 ya 的除法满足:
y ( x) hi [( xi x)(2ai yi yi' ) yi ]
i 1 n
其中
hi (
j 1 j i
n
x xj xi x j
) ;
2
1 ai j 1 xi x j
j i
n
• MATLAB实现 n % hermite.m y( x) hi [( xi x)(2ai yi yi' ) yi ] function y=hermite(x0,y0,y1,x) i 1 n=length(x0); m=length(x); n n x xj 2 1 for k=1:m yy=0.0; 其中 hi ( ) ; ai j 1 xi x j j 1 xi x j for i=1:n h=1.0; a=0.0; j i j i for j=1:n if j~=i h=h*((x(k)-x0(j))/(x0(i)-x0(j)))^2; a=1/(x0(i)-x0(j))+a; end end yy=yy+h*((x0(i)-x(k))*(2*a*y0(i)-y1(i))+y0(i)); end y(k)=yy; end
相关文档
最新文档