三次样条插值例题解析

合集下载

样条函数(三次样条)

样条函数(三次样条)

样条插值是一种工业设计中常用的、得到平滑曲线的一种插值方法,三次样条又是其中用的较为广泛的一种。

1. 三次样条曲线原理假设有以下节点1.1 定义样条曲线是一个分段定义的公式。

给定n+1个数据点,共有n个区间,三次样条方程满足以下条件:a. 在每个分段区间(i = 0, 1, …, n-1,x递增),都是一个三次多项式。

b. 满足(i = 0, 1, …, n )c. ,导数,二阶导数在[a, b]区间都是连续的,即曲线是光滑的。

所以n个三次多项式分段可以写作:,i = 0, 1, …, n-1其中ai, bi, ci, di代表4n个未知系数。

1.2 求解已知:a. n+1个数据点[xi, yi], i = 0, 1, …, nb. 每一分段都是三次多项式函数曲线c. 节点达到二阶连续d. 左右两端点处特性(自然边界,固定边界,非节点边界)根据定点,求出每段样条曲线方程中的系数,即可得到每段曲线的具体表达式。

插值和连续性:, 其中i = 0, 1, …, n-1微分连续性:, 其中i = 0, 1, …, n-2样条曲线的微分式:将步长带入样条曲线的条件:a. 由(i = 0, 1, …, n-1)推出b. 由(i = 0, 1, …, n-1)推出c. 由(i = 0, 1, …, n-2)推出由此可得:d. 由(i = 0, 1, …, n-2)推出设,则a. 可写为:,推出b. 将ci, di带入可得:c. 将bi, ci, di带入(i = 0, 1, …, n-2)可得:端点条件由i的取值范围可知,共有n-1个公式,但却有n+1个未知量m 。

要想求解该方程组,还需另外两个式子。

所以需要对两端点x0和xn的微分加些限制。

选择不是唯一的,3种比较常用的限制如下。

a. 自由边界(Natural)首尾两端没有受到任何让它们弯曲的力,即。

具体表示为和则要求解的方程组可写为:b. 固定边界(Clamped)首尾两端点的微分值是被指定的,这里分别定为A和B。

3.4三次样条插值

3.4三次样条插值

3.4.2
三次样条函数插值法
样条(Spline)是早期飞机、造船工作中,绘图员 是早期飞机、造船工作中, 样条 是早期飞机 用来画光滑曲线的细木条或细金属丝。绘图时, 用来画光滑曲线的细木条或细金属丝。绘图时,为 将一些已知点连成光滑的曲线, 将一些已知点连成光滑的曲线,绘图员用压铁把样 条固定在这些点处,因样条有弹性, 条固定在这些点处,因样条有弹性,便形成通过这 些点的光滑曲线,沿着它就可画出所需曲线。数学 些点的光滑曲线,沿着它就可画出所需曲线。 上仿此得出的函数便称为样条函数。 上仿此得出的函数便称为样条函数。 是一种分段函数, 所谓 m 次样条函数 S(x) ,是一种分段函数, 它在节点(a = x0 < x1 <L< xn−1 < xn = b) 分成的每个 xi 小区间i−1, xi ] 上是 次多项式,而在整个区间 ,b] [x [a m 次多项式, 阶导数连续。常用三次样条函数。 上 m−1 阶导数连续。常用三次样条函数。
样条插值的存在惟一问题
1)由于在每个小区间上是三次多项式,有四个 由于在每个小区间上是三次多项式, 待定系数。有个n小区间,共4n个待定系数。 待定系数。有个n小区间, 待定系数。 2)分析三次样条函数满足的条件可得: 分析三次样条函数满足的条件可得: 每个小区间的两个端点上满足插值条件
S j +1 ( x j ) = y j S j +1 ( x j +1 ) = y j +1 ( j = 0,1,2L , n − 1)
( x − x1)( x − x2 ) 1 = 2 ( x − x1 )( x − x2 ) l0(x) = ( x0 − x1)( x0 − x2 ) 2h ( x − x0 )( x − x2 ) 1 其中 l1(x) = = − 2 ( x − x0 )( x − x2 ) ( x1 − x0 )( x1 − x2 ) h (x − x0 )( x − x1) 1 l2(x) = ( x − x )( x − x ) = 2h2 ( x − x0 )( x − x1 ) 2 0 2 1

三次样条插值

三次样条插值

0)
s(xn 0) s(xn 0)
三弯矩插值法
x xi,
x i+1
s”(x) M i , M i+1
记Mi = s″(xi), f(xi)= yi ,考虑它在任一区间[xi, xi+1]上的形式. 根据三次样条的定义可知 , s(x)的二阶导数 s ″(x)在每一个子区
间[xi, xi+1] ( i=0,1,2,,n-1)上都是线性函数.
2 6
M
i
)(xi1
xi
)
(1)
同理在[xi1, xi ]上讨论得
s(xi )
yi xi
yi1 xi1
(
2 6
M
i
1 6 M i1)(xi
xi1)
(2)
因为s( x)连续,所以(1)(2)即
yi1 yi xi1 xi
1 ( 6 M i1
2 6
M i )(xi1
xi )
yi xi
yi1 xi1
(2) (n 1)内节点处连续及光滑性条件:
s(x s( x
j j
0) 0)
s(x j 0) s(x j 0)
j
1,2,...,n
1
s(x j 0) s(x j 0)
对于待定系数a j ,bj , c j .d j j 1,2,...n,即4n个未知系数,
而插值条件为4n 2个,还缺两个,因此须给出两个 条件称为边界条件,有以下三类:
——分段三次插值多项式
分段插值存在着一个缺点,就是会导致插值函数在子区间的端点 (衔接处)不光滑,即导数不连续。
实际应用中,如机翼设计、船体放样等往往要求有二阶光滑度, 即二阶连续导数。早期工程师制图时,把富有弹性的细长木条 (所谓样条SPLINE )用压铁固定在样点上,其它地方让其自 由弯曲,然后画下曲线(称为样条曲线),它实际上是由分段 多项式光滑连接而成,在样点上要求二阶连续可导。

数学数值分析三次样条插值PPT课件

数学数值分析三次样条插值PPT课件
第2页/共40页
2.8.1 三次样条函数
定义 给定区间[a,b]的一个划分 a=x0<x1<…<xn=b, yi=f (xi) (i=0,1,…,n),如果函数S(x)满足: (1) S(xi )=yi (i=0,1,…,n); (2) 在每个小区间[xi, xi+1] (i=0,1,...,n-1)上是次数不超
S上且( xS与)(x相)的(邻x表节达x点j式的1 )为2两[hh个jj3转2角( x有关x j,)]故y j称为三h转j=x角j+方1-x程j 。
(
x
x
j
)2[hj 2( hj3
x
x j1 )] y j1
(x
x j1 )2 ( x h2j
xj)
mj
(x
x j )2( x h2j
x j1 )
m j1
则方程组化为:
2 1 2 2 2
m1 g1 1 f0
m2
g2
n2 2 n2 mn2 gn2
n1 2 mn1 gn1 n1 fn
第10页/共40页
2、已知 S( x0 ) f0, S( xn ) fn
2m0
m1
3
f
[x0 ,
x1 ]
h0 2
f0
第18页/共40页
S(
x)
M
j
(
x j1 6hj
x)3
M
j1
(x
x 6hj
j
)3
(
y
j
M jh2j 6
)
x
j1 hj
x
(
y
j1
M
j1h2j 6
)
x
x hj

三次样条拟合典型实例

三次样条拟合典型实例

1设计目的、要求对龙格函数22511)(xx f +=在区间[-1,1]上取10=n 的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出)(x f 及各逼近函数的图形,比较各结果。

2设计原理(1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项式,即:01,,...,n x x x 表示待插值函数的1n +个节点, 0()()nn j k k j j k L x y l x y ===∑,其中0,1,...,j n =;011011()...()()...()()()...()...()...()k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----=----(2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条件下的样条插值,即两端一阶导数已知的插值方法:00'()'S x f = '()'n n S x f =(3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。

最小二乘拟合是利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。

在本题中,n= 10,故有11个点,以这11个点的x 和y 值为已知数据,进行三次多项式拟合,设该多项式为23432xi i i i p a a x a x ax =+++,该拟合曲线只需2[]xi i p y -∑的值最小即可。

3采用软件、设备计算机、matlab 软件4设计内容1、多项式插值:在区间[]1,1-上取10=n 的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用matlab 软件建立m 函数,画出其图形。

在matlab 中建立一个lagrange.m 文件,里面代码如下: %lagrange 函数function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=kp=p*(z-x0(j))/(x0(k)-x0(j)); end ends=p*y0(k)+s; end y(i)=s; end建立一个polynomial.m 文件,用于多项式插值的实现,代码如下: %lagrange 插值 x=[-1:0.2:1];y=1./(1+25*x.^2); x0=[-1:0.02:1];y0=lagrange(x,y,x0); y1=1./(1+25*x0.^2); plot(x0,y0,'--r') %插值曲线 hold on %原曲线plot(x0,y1,'-b')运行duoxiangshi.m 文件,得到如下图形:2、三次样条插值:所谓三次样条插值多项式()n S x 是一种分段函数,它在节点i x 011()n n a x x x x b -=<<⋅⋅⋅<<=分成的每个小区间1[,]i i x x -上是3次多项式,其在此区间上的表达式如下:22331111111()[()()]()()666[,]1,2,,.i i i i i i i i i i i i i i i i i h x x h x x S x x x M x x M y M y M h h h x x x i n --------=-+-+-+-∈=⋅⋅⋅,,因此,只要确定了i M 的值,就确定了整个表达式,i M 的计算方法如下: 令:11111111116()6(,,)i i i i i i i i i i i i i i i i i i i i i h h h h h h y y y y d f x x x h h h h μλμ++++--+++⎧===-⎪++⎪⎨--⎪=-=⎪+⎩,则i M 满足如下1n -个方程:1121,2,,1i i i i i i M M M d i n μλ-+++==⋅⋅⋅-,对于第一种边界条件下有⎪⎪⎩⎪⎪⎨⎧-=+-=+---000110111)'],([62]),['(62h f x x M M h x x f f M M n n n n n n如果令100100016([,]')6('[,])1,,1,,n n n n n n f x x f f f x x d d h h λμ----====那么解就可以为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛----n n n n n n n d d d d M M M M 110110********* μλμλμλ 求函数的二阶导数: >> syms x>> f=sym(1/(1+25*x^2)) f =1/(1+25*x^2) >> diff(f) ans =-(50*x)/(25*x^2 + 1)^2将函数的两个端点,代入上面的式子中:f’(-1)=0.0740f’(1)=-0.0740求出从-1到1的n=10的等距节点,对应的x,y值对应m文件代码如下:for x=-1:0.2:1y=1/(1+25*x^2)endy =得出x=-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385编写m文件Three_Spline.mx=linspace(-1,1,11);y=1./(1+25*x.^2);[m,p]=scyt1(x,y,0.0740,-0.0740);hold onx0=-1:0.01:1;y0=1./(1+25*x0.^2);plot(x0,y0,'--b')得到如下图像:.其中蓝色曲线为原图,红色曲线为拟合后的图像。

东南大学数值分析第四章三次样条插值

东南大学数值分析第四章三次样条插值

第四章 多项式插值与函数最佳逼近——曲线拟合之3次样条插值*****(学号) *****(姓名)上机题目要求见教材P195,37题。

一、算法原理题目要求编写第一边界条件的3次样条插值函数的通用程序,同时根据汽车门曲线值点构造三次紧压样条曲线函数()S x 。

其基本原理如下 定义设0{(,)}Nk k k x y =有N+1个点,其中01N a x x x b =<<<<。

如果存在N 个三次多项式()k S x ,系数为,0,1,2,3,,k k k k S S S S 和满足如下性质:23,0,1,2,3()()()()k k k k k k k k S x s s x x s x x s x x =+-+-+- (1)111''111''''111(), 0,1,...,()(), 0,1,...,2()(), 0,1,...,2()(), 0,1,...,2k k k k k k k k k k k k k k S x y for k N S x S x for k N S x S x for k N S x S x for k N +++++++++====-==-==- (2)则成()S x 为三次样条函数。

现证明其存在:由于()S x 是分段三次多项式,其二阶导数是在区间0[,]N x x 内是分段线性的。

根据线性拉格朗日插值"()"()k S x S x =可以表示为:11111"()"()"()k k k k k k k k kx x x x S x S x S x x x x x +++++--=+--(3)用111(),()k k k k k k k m S x m S x x x +++''===-和h 代入上式,得()()11"()k k k k k k km mS x x x x x h h ++=-+- (4)将上式积分两次,会引入两个积分常数,可得到如下形式:()()33111()()()66k k k k k k k k k k km m S x x x x x p x x q x x h h +++=-+-+-+- (5)将1k k x x +和代入上式,并利用11(), ()k k k k k k y S x y S x ++==可得两个方程:2211 ; 66k k k k k k k k k k m my h p h y h q h ++=+=+ (6)求解,k k p q ,并将所得的结果带入方程(5)得()()3311111()66 ()()66k k k k k k kk k k k k kk k k km m S x x x x x h h y m h y m h x x x x h h +++++=--+-+⎛⎫⎛⎫--+-- ⎪ ⎪⎝⎭⎝⎭(7)求式(7)的导数,并化简得1111112()6(),1,...,1,()/k k k k k k k kk k k k k k kh m h h m h m u u d d k N d y y h ---+-++++==-=-=- 其中 (8)由上述方程可得如下方程011121002()h h m h m u h m ++=- (9) 11112()k k k k k k k k h m h h m h m u ---++++= (10)12211112()N N N N N N N N h m h h m u h m -------++=-(11)重组上述方程,得三角线性方程组=HM V ,表示为11111222223223222111N N N N N N N N N m v b c a b c m v a b m v a b c a b m v ---------⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦(12)该式具有严格对角优势。

matlab_牛顿插值法_三次样条插值法

matlab_牛顿插值法_三次样条插值法

(){}21()(11),5,10,20:12521()1,(0,1,2,,)()2,(0,1,2,,)()()235,20:1100(i i ii n n k k k Newton f x x n x f x x i i n f x nxy i n Newton N x S x n x k y f x =-≤≤=+=-+====-+= 题目:插值多项式和三次样条插值多项式。

已知对作、计算函数在点处的值;、求插值数据点的插值多项式和三次样条插值多项式;、对计算和相应的函数值),()() (1,2,,99)4:()max ()()max()n k n k n k n k n k n k kkN x S x k E N y N x E S y S x ==-=- 和;、计算,;解释你所得到的结果。

算法组织:本题在算法上需要解决的问题主要是:求出第二问中的Newton 插值多项式)(x N n 和三次样条插值多项式()n S x 。

如此,则第三、四问则迎刃而解。

计算两种插值多项式的算法如下:一、求Newton 插值多项式)(x N n ,算法组织如下:Newton 插值多项式的表达式如下:)())(()()(110010--⋅⋅⋅--+⋅⋅⋅+-+=n n n x x x x x x c x x c c x N其中每一项的系数c i 的表达式如下:1102110),,,(),,,(),,,(x x x x x f x x x f x x x f c i i i i i -⋅⋅⋅-⋅⋅⋅=⋅⋅⋅=-根据i c 以上公式,计算的步骤如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧⋅⋅⋅+⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅----),,,,(1),,,(),,,,(),(,),,(2)(,),(),(11101111011010n n n n n n n n x x x x f n x x x f x x x f n x x f x x f x f x f x f 、计算、计算、计算、计算 二、求三次样条插值多项式)(x S n ,算法组织如下:所谓三次样条插值多项式)(x S n 是一种分段函数,它在节点i x 011()n n a x x x x b -=<<⋅⋅⋅<<=分成的每个小区间1[,]i i x x -上是3次多项式,其在此区间上的表达式如下:22331111111()[()()]()()666[,]1,2,,.i i i i i i i i i i i i i i i i i h x x h x x S x x x M x x M y M y M h h h x x x i n --------=-+-+-+-∈=⋅⋅⋅,,因此,只要确定了i M 的值,就确定了整个表达式,i M 的计算方法如下: 令:11111111116()6(,,)i i i i i i i i i i i i i ii i i i i i i h h h h h h y y y y d f x x x h h h h μλμ++++--+++⎧===-⎪++⎪⎨--⎪=-=⎪+⎩, 则i M 满足如下n-1个方程:1121,2,,1i i i i i i M M M d i n μλ-+++==⋅⋅⋅-,方程中有n+1个未知量,则令0M 和n M 分别为零,则由上面的方程组可得到(11)i M i n ≤≤-的值,可得到整个区间上的三次样条插值多项式)(x S n 。

数值计算方法 三次样条插值2 - 三次样条插值2

数值计算方法 三次样条插值2 - 三次样条插值2

x j1 ]
称为三次样条的M关系式 特点:n+1个未知数,n-1个方程
称为三弯矩方程
第一型边界条件: 已知f(x)在两端点的导数
Sj(x)
M
j 1
(x
x j )3 6hj
M
j
(x
x
)3
j 1
6hj
( yj
M jhj2 6
)
x
x j1 hj
( y j1
M j1hj 2 6
)
x
xj hj
f (a) ,要f求(b)
)
x
xj hj
只要能求出所有的{M i},就能求出样条插值函数S(x). 利用S(x)在节点的一阶导数的连续性
hj 1 hj1 hj
M j1
2M j
hj hj1
hj
M j1
6( yj1 yj yj yj1 )
hj
hj 1
(hj1 hj )
( j 1,2,, n 1)
可得: j M j1 2M j j M j1 c j
例例5.32.已知f(x)在若干点处的值为f(0)=0, f(1)=1, f(2)=1, f(3)=0,试求 f(x)满足条件(1)f′(0)=1,f′(3)=2 (2) f”(0)=1,f”(3)=2的三次样条插值函数s(x)以及f(2.5)的近似值
解:构造一阶均差表
xi f ( xi )
0
0
1
y'0
)
令 c0
M n1
2Mn
6 hn1
( y'n
yn
yn1 hn1
)

cn
方程组可写成矩阵形式如下
2 0 1 2 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三次样条插值例题解析
三次样条插值是一种常用的插值方法,它能够通过一系列已知数据点来构建一条光滑的曲线。

在数值分析和计算机图形学中,三次样条插值常被用来逼近离散的数据点,从而实现曲线的平滑和连续。

在进行三次样条插值之前,我们首先需要了解什么是样条函数。

样条函数是由分段多项式构成的函数,每个分段多项式在相邻的数据点之间起作用。

对于三次样条插值,每个分段多项式是三次多项式,因此称为三次样条函数。

三次样条插值的基本思想是,通过已知的数据点,我们可以确定无穷个三次样条函数,然后根据一定的准则选择最合适的三次样条函数来近似原始数据。

具体的插值过程可以分为以下几个步骤:首先,假设我们有n个已知数据点。

我们需要在每个相邻的数据点之间构建一个三次样条函数。

接着,我们需要确定每个三次样条函数的系数,使得这些函数满足特定的插值条件。

一般来说,我们会采用自然边界条件或者固定边界条件来确定这些系数。

最后,我们可以通过求解一个线性方程组来确定每个分段多项式的系数。

三次样条插值的优点在于它能够在保持曲线平滑和连续的同时,尽可能地逼近原始数据点。

这使得三次样条插值在实际应用中非常有用,特别是在数据可视化和曲线拟合方面。

总结起来,三次样条插值是一种通过构建一系列三次样条函数来逼近已知数据点的方法。

它通过求解一个线性方程组来确定每个分段多项式的系数,从而实现曲线的平滑和连续。

三次样条插值在实际应用中具有广泛的应用价值,是一种非常有效的插值方法。

相关文档
最新文档