第四讲:曲线曲面的插值与拟合方法
插值拟合的原理和步骤

插值拟合的原理和步骤嘿,朋友们!今天咱来聊聊插值拟合这玩意儿,听起来是不是挺高深莫测的呀?其实啊,没那么玄乎!你就想想看,插值拟合就像是给数据搭积木!咱手里有一堆数据点,就好比是一堆形状各异的积木块。
而插值拟合呢,就是要把这些积木块巧妙地连接起来,组成一个好看又实用的模型。
比如说,咱有一些气温的数据,在不同时间点上的气温不一样。
那怎么才能知道中间那些时间点的气温大概是多少呢?这时候插值拟合就派上用场啦!它就像个神奇的魔法师,能在这些已知的数据点之间“填补”出合理的数值来。
那它具体是怎么做到的呢?这就好比是走钢丝,得小心翼翼地找到那个平衡点。
不同的插值拟合方法就像是不同的走钢丝技巧。
有的方法简单直接,就像大步流星地走过去;有的方法则细致入微,像是一小步一小步稳稳地挪。
咱常见的插值拟合方法有多项式插值啦,样条插值啦等等。
多项式插值呢,就像是用一条弯弯的曲线去尽量贴合那些数据点,让它们乖乖地待在曲线上。
样条插值呢,则更像是把数据点串起来的一条光滑丝带,既好看又实用。
那插值拟合有啥用呢?哎呀,用处可多啦!在科学研究中,它能帮助科学家们更好地理解数据背后的规律。
在工程领域,它能让工程师们更准确地设计出各种东西。
就好比建筑师盖房子,得先把地基打好,插值拟合就是那个帮他们打好地基的工具。
你想想,如果没有插值拟合,很多数据就只是孤立的点,很难看出个所以然来。
但有了它,这些点就像被施了魔法一样,变成了有意义的曲线、模型。
咱平时生活中其实也能看到插值拟合的影子呢!比如说天气预报,那可不是随便猜猜的,背后就有插值拟合的功劳。
它能根据已有的气象数据,推测出未来的天气情况。
这不是很神奇吗?总之呢,插值拟合就像是一把神奇的钥匙,能打开数据背后的神秘大门。
它让那些看似杂乱无章的数据变得有秩序、有意义。
所以啊,朋友们,可别小瞧了它哟!这玩意儿可厉害着呢!。
曲线拟合和插值

曲线拟合与插值在大量的应用领域中,人们常常面临用一个解析函数描述数据(一般是测量值)的任务。
对那个问题有两种方式。
在插值法里,数据假定是正确的,要求以某种方式描述数据点之间所发生的情形。
这里讨论的方式是曲线拟合或回归。
人们设法找出某条滑腻曲线,它最佳地拟合数据,但没必要要通过任何数据点。
图说明了这两种方式。
标有'o'的是数据点;连接数据点的实线描画了线性内插,虚线是数据的最佳拟合。
1 曲线拟合曲线拟合涉及回答两个大体问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方式概念最佳拟合,并存在无穷数量的曲线。
所以,从这里开始,咱们走向何方?正如它证明的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。
数学上,称为多项式的最小二乘曲线拟合。
如图。
虚线和标志的数据点之间的垂直距离是在该点的误差。
对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。
这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。
最小二乘那个术语仅仅是使误差平方和最小的省略说法。
在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。
为了论述那个函数的用法,让咱们以上面图中的数据开始。
» x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1];» y=[ ];为了用polyfit,咱们必需给函数给予上面的数据和咱们希望最佳拟合数据的多项式的阶次或度。
若是咱们选择n=1作为阶次,取得最简单的线性近似。
通常称为线性回归。
相反,若是咱们选择n=2作为阶次,取得一个2阶多项式。
此刻,咱们选择一个2阶多项式。
» n=2; % polynomial order» p=polyfit(x, y, n)p =polyfit的输出是一个多项式系数的行向量。
其解是y = -+-。
为了将曲线拟合解与数据点比较,让咱们把二者都绘成图。
曲面插值算法

曲面插值算法(原创版)目录1.曲面插值算法的定义与作用2.曲面插值算法的分类3.曲面插值算法的应用实例4.曲面插值算法的发展趋势与展望正文曲面插值算法是一种通过离散数据点来描述连续曲面的数学方法,它在计算机图形学、地形建模、数值分析等领域具有广泛的应用。
根据插值方法的不同,曲面插值算法可以分为以下几类:1.线性插值算法:线性插值算法主要包括二维线性插值和三维线性插值。
二维线性插值主要采用双线性插值法,通过计算数据点之间的线性关系,得到插值点上的曲面值。
三维线性插值则在此基础上进行扩展,采用三线性插值法,计算数据点之间的三次线性关系,得到插值点上的曲面值。
2.二次插值算法:二次插值算法主要包括逆距离加权法、局部多项式插值、全局多项式插值等。
逆距离加权法是根据数据点到插值点的距离进行加权平均,得到插值点上的曲面值。
局部多项式插值是在某个小区域内,采用多项式函数拟合数据点,得到插值点上的曲面值。
全局多项式插值则是在整个域内进行多项式拟合,得到插值点上的曲面值。
3.非线性插值算法:非线性插值算法主要包括样条插值、NURBS 插值等。
样条插值是通过基函数的加权和来表示曲面,具有较好的局部性和灵活性。
NURBS 插值则是通过非均匀有理基函数表示曲面,具有良好的局部性和全局性,适用于复杂曲面的插值。
曲面插值算法在实际应用中有很多实例,如地形建模、计算机动画、数值模拟等。
例如,在地形建模中,可以通过曲面插值算法根据离散的地形数据点生成连续的地形曲面,从而实现地形的精确表示。
在计算机动画中,曲面插值算法可以用于生成光滑的运动轨迹,提高动画效果。
在数值模拟中,曲面插值算法可以用于对离散数据进行插值,提高数值模拟的精度和效率。
随着计算机技术的不断发展,曲面插值算法也在不断完善和优化。
第四讲 拟合插值

0
2
4
6
8
10
pp=spline (x,y) ….返回分段多项式的表示
yi=ppval(pp,xi)
或 yi=spline(x,y,xi)
plot(xi,yi)
[break, coefs,pieces,order]=unmkpp(pp)
……分解分段多项式表示
pp=mkpp(break,coefs)…形成分段多项式表示 其中
fprime = fnder(pp,dorder) 其中 pp:为样条函数的描述 dorder:求导的阶数 fprime:求导后的分段表达形式
fnint样条函数的积分
intgrf = fnint(pp)
intgrf = fnint(f,value)
其中
Pp:为样条函数的描述
fnplt样条函数的绘图
缺省情况: 使用各个端点附近的四个数据计 算斜率
当conds为1*2阶的矩阵时,可使两个边界点 具有不同的边界条件:如conds(i)=j,则给定 端点i处的j阶导数(j=0,1,2).
PP = CSAPE({X,Y},Z, CONDS,VALCONDS) x=0:20; y=0:10; [xx,yy]=meshgrid(x,y); zz=(sin(xx)).^2+(cos(yy)).^2; pp=csape({x,y},zz'); fnplt(pp)
Break是断点/节点
Coefs是矩阵,其第i行是第i个三次多项式
pieces是分段多项式的数目
order 是每个多项式系数的数目(阶数-1)
i
断点
在每一个区间为多项式
x=0:0.1:3*pi; y=sin(x); pp=spline(x,y)
曲线拟合和插值运算原理和方法

实验10 曲线拟合和插值运算一. 实验目的学会MATLAB 软件中软件拟合与插值运算的方法。
二. 实验内容与要求在生产和科学实验中,自变量x 与因变量y=f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。
当要求知道观测点之外的函数值时,需要估计函数值在该点的值。
要根据观测点的值,构造一个比较简单的函数y=t (x),使函数在观测点的值等于已知的数值或导数值,寻找这样的函数t(x),办法是很多的。
根据测量数据的类型有如下两种处理观测数据的方法。
(1) 测量值是准确的,没有误差,一般用插值。
(2) 测量值与真实值有误差,一般用曲线拟合。
MATLAB 中提供了众多的数据处理命令,有插值命令,拟合命令。
1.曲线拟合已知离散点上的数据集[(1x ,1y ),………(n x ,n y )],求得一解析函数y=f (x),使f(x)在原离散点i x 上尽可能接近给定i y 的值,之一过程叫曲线拟合。
最常用的的曲线拟合是最小二乘法曲线拟合,拟合结果可使误差的平方和最小,即使求使21|()|n i ii f x y =-∑ 最小的f(x).格式:p=polyfit(x,Y ,n).说明:求出已知数据x,Y 的n 阶拟合多项式f(x)的系数p ,x 必须是单调的。
[例 1.9]>>x=[0.5,1.0,1.5,2.0,2.5,3.0]; %给出数据点的x 值>>y=[1.75,2.45,3.81,4.80,7.00,8.60]; %给出数据点的y 值>>p=polyfit (x,y,2); %求出二阶拟合多项式f(x)的系数>>x1=0.5:0.05:3.0; %给出x 在0.5~3.0之间的离散值>>y1=polyval(p,1x ); %求出f(x)在1x 的值>>plot(x,y,‟*r ‟, 11,x y ‟-b ‟) %比较拟合曲线效果计算结果为:p=0.5614 0.8287 1.1560即用f(x)=0.56142x +0.8287x+1.1560拟合已知数据,拟合曲线效果如图所示。
《插值与拟合》课件

拟合的方法
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:第二段四次多项式拟合效果。
第四章插值和曲线拟合

在实际问题和科学实验中所遇到的函数y=f(x),往往
没有解析表达式 , 只能根据试验观察或其它方法提供一
系列点的函数值; 有时尽管可以写出表达式,但是比较
复杂, 直接使用它感到不方便。我们经常需要利用已知
的数据去寻求某个简单的函数φ (x)来逼近f(x),即用φ (x)
作为f(x)的近似表达式。本章的插值法和曲线拟合就是
φ (xi) = yi ,
插值法的几何意义
插值法的几何意义就是通过n+1个点: (xi,yi) (i=0,1,2,…,n) 作一条近似曲线y= φ (x) 代替y=f(x)。如下图所示。 y=f(x) (xn,yn) y= φ (x) y
(x1,y1) (x0,y0) (x2,y2)
(xn-1,yn-1)
三、n次拉格朗日插值
仿照P2 (x)的构造方法,可得出 Pn(x)=L0(x)y0+L1(x)y1+…+Ln(x)yn 其中 L0(x)=[(x-x1)(x-x2)…(x-xn)]/ [(x0-x1)(x0-x2)…(x0-xn)] Lk(x)= [(x-x0)…(x-xk-1)(x-xk+1) …(x-xn)] /[(xk-x0)…(xk-xk-1)(xk-xk+1) …(xk-xn)] ( k = 0, 1, …, n ) 这就是n次拉格朗日插值多项式。 也可写为 n n n x x k P ( x ) L ( x ) y y n i i i x x i 0 i 0 k 0 , k i i 或 k
线性插值举例
例 解 或 已知 1001/2 =10,1211/2 =11 求 1151/2 P1(x) = y0+(y1-y0)/(x1-x0)*(x-x0) P1(115) = 10+(11-10)/(121-100)*(115-100)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维曲面等距插值函数interp2
interp2's syntax Two-dimensional data interpolation ZI = interp2(X,Y,Z,XI,YI,method) 'nearest' Nearest neighbor interpolation 'linear' Bilinear interpolation (default) 'spline' Cubic spline interpolation 'cubic' Bicubuc interpolation
分段三次埃尔米特插值条件数
9
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
分段三次埃尔米特插值: 线性插值在每一小段上(两点之间),用到2个条件 q(xi)=yi,所以确定了一个线性插值函数;三次埃 尔米特插值在每一小段上,用到4个条件q(xi)=yi, q'(xi)=y'i,所以确定一个3次多项式插值函数。 分段插值主要是为了避免高次插值可能出现的 大幅度振荡现象,在实际应用中通常采用分段低 次插值来提高近似程度,比如可用分段线性插值 或分段三次埃尔米特插值来逼近已知函数,但它 们的总体光滑性较差,为了克服这一缺点,三次 样条插值成为比较理想的工具。
面对工程实践和科学计算中的采集得到数据 (xi,yi),我们总是试图去揭示x与y之间的关系,即 用近似的y=f(x)来表示,那么我们通常可以采用两 种方法:插值与拟合 插值与拟合的区别在于—— 插值试图去通过已知点了解未知 点处的函数值;而拟合则在于在 整体上用某种已知函数去拟合数 据点列所在未知函数的性态。 关键区别在于插值要求必须经过已知点列,拟 合只求尽量靠近不必经过!拟合将在本讲下介绍~
第 四 讲 曲 线 曲 面 的
分段线性插值和拉格朗日插值
分段线性插值: 用直线(线性)连接数据点列上相邻的两点。 比如~在两点[xi-1,xi]上线性插值函数为~
插 值 与 拟 合 方 法
7
x xi x xi 1 第 q ( x) yi 1 四 xi 1 xi xi xi 1 讲 曲 x [ xi 1 , xi ], i 0,1, 2,..., n 线 曲 拉格朗日插值: 面 的 用n次拉格朗日插值多项式
x=0:2:24; y=[12,9,9,10,18,24,28,27,25,20,18,15,13]; plot(x,y,'-ro'); hold on; xi=15.1; yi=interp1(x,y,xi,'spline'), xi=0:1/3600:24; yi=interp1(x,y,xi,'spline'); plot(xi,yi,'b-');
x = rand(100,1)*16 - 8; y = rand(100,1)*16 - 8; r = sqrt(x.^2 + y.^2) + eps; z = sin(r)./r; plot3(x,y,z,'.','MarkerSize',15) hold on
20
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 xlin = linspace(min(x),max(x),33); 的 ylin = linspace(min(y),max(y),33); [X,Y] = meshgrid(xlin,ylin); Z = griddata(x,y,z,X,Y,'cubic'); mesh(X,Y,Z); axis tight;
Ln ( x)
yi
y
k 0
n
k
lk ( x)
连接数据点列上相邻的n+1个点。Pszjs71
拉格朗日插值基函数的构造
比如 在三个点[x0,x1,x2]上lagrange插值函数为 (线性插值是拉格朗日插值最简单的情形)
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
8
L2 ( x )
与 拟 合 方 法 讲 曲 线 曲 面 的
18
'linear' 'cubic' 'nearest' 'v4'
Triangle-based linear interpolation Triangle-based cubic (default) Nearest neighbor MATLAB 4 griddata method
函数查表与地图边界线绘制
引例1 函数查表问题: 已知标准正态分布函数表,求表中没有的值 (2.34)=0.99036 (2.35)=0.99061
插 值 与 拟 合 方 法 第 四 (2.3457)=? 求 ~ 讲 曲 (2.3457) ≈(2.35-2.3457)/(2.35-2.34)* (2.34)+ (2.3457-2.34)/(2.35-2.34)* (2.35) 线 曲 面 的 引例2 地图绘制问题:
MATLAB二维插值函数griddata, 可以将平面或曲面上的散乱点插值为规则网格
二维曲面散乱插值函数griddata
题例 粗糙山顶曲面的平滑处理(散乱情形)
rand('seed',0) x = rand(100,1)*4-2; y = rand(100,1)*4-2; z = x.*exp(-x.^2-y.^2); plot3(x,y,z,'o'); hold on
题例 在原始数据点中增倍插值
x=0:0.001:1; y=sin(2*pi*30*x)+sin(2*pi*60*x); yi=interp(y,4); subplot(1,2,1); stem(y(1:30)); title('Original Points'); subplot(1,2,2); stem(yi(1:120)); title('Interpolated Points');
拟曲 合线 方曲 法 面 的
x2
x1
q2
x0
q1
一维曲线等距插值函数interp
12
interp's syntax One-dimensional r times longer data interpolation y = interp(y,r)
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
一维曲线等距插值函数interp1
13
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
interp1's syntax One-dimensional data interpolation yi = interp1(x,y,xi,method) 'nearest' Nearest neighbor interpolation 'linear' Linear interpolation (default) 'spline' Cubic spline interpolation 'cubic ' Piecewise cubic Hermite interpolation 题例 在一天24小时内,从零点开始每间隔2小时测 得的环境温度,推测在15点6分的的温度
16
二维曲面等距插值函数interp2
题例 粗糙山顶曲面的平滑处理(等距情形)
17
插 值 与 拟 合 方 法
第 四 讲 曲 线 曲 面 的
二维曲面散乱插值函数griddata
griddata's syntax Data interpolation for scattered points ZI = griddata(x,y,z,XI,YI) [XI,YI,ZI] = griddata(x,y,z,xi,yi) 插第 值 四 [...] = griddata(...,method)
y
k 0
2
k
lk ( x )
y0l0 ( x ) y1l1 ( x ) y 2l 2 ( x ) ( x x1 )( x x2 ) L2 ( x ) y0 ( x0 x1 )( x0 x2 ) ( x x0 )( x x2 ) y1 ( x1 x0 )( x1 x2 ) ( x x0 )( x x1 ) y2 ( x2 x0 )( x2 x1 )
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
106*40原始图像: 左边: 最近邻插值 放大450% 右边: 双三次插值 放大450%
插值在图像三维重建中的应用
6
Surface recostruction from scattered points cloud
插 值 与 拟 合 方 法
三次样条(spline)插值的概念
10
样条的概念出自工程设计和机械加工(飞机、船 舶外形曲线设计)中的绘图工具(曲线尺),简单说 就是具有连续二阶导数的三次插值多项式函数。
插 值 与 拟 合 方 法 第 四 讲 曲 线 曲 面 的
三次样条(spline)插值的条件数
11
首先从段数n=2分析:我们知道在每一小段的 三次多项式有4个系数,所以如下图,总共需要有 4*2=8个方程来确定; 由q(xi)=yi可以确定2*2=4个 方程,又由内部节点q1'(xi)= q2'(xi)和q1''(xi)= 插第 值 四 q2''(xi)可以确定2*(2-1)=2个方程,看来剩下的8与 讲 (4+2)=2个方程只有靠外部给定(边界条件)了
3
假如我们在地图边界获取了一些边界点的坐标, 连接这些边界点形成闭合曲线,可以用来近似表 示真实边界线,如何更准确地逼近真实边界线?