三次样条插值
第五章 三次样条插值Spline
Lagrange插 值
Cubic Spline
利用插值条件
S ( xi 1 ) yi 1 , S ( xi ) yi
定出积分常数,可以得到
( xi x ) 3 ( x x i 1 )3 S ( x ) M i 1 Mi 6hi 6hi yi 1 M i 1hi 6 hi yi M i hi ( xi x ) 6 hi (3.1) ( x xi 1 )
i
hi hi yi yi 1 M i 1 M i 6 3 hi
( xi 1 xi )2 ( xi xi )2 yi 1 yi hi 1 S ( x ) Mi M i 1 M i 1 M i 2hi 1 2hi 1 hi 1 6
对于I 类边界条件,S( x0 ) M0 , S( xn ) Mn
2 M 0 0 M1 0 n M n1 2 M n n
0 0, 0 2 M 0 n 0, n 2 M n
Cubic Spline
即得关于Mi (i = 0, 1, …, n)的 n+1 元线性方程组
其系数矩阵按行严格对角占优,故有唯一解. 可用追赶法求解. 对于II 类边界条件,S( x0 ) m0 , S( xn ) mn 利用(3.2)式, S ( x0 )
y1 y0 h1 h1 M 0 M1 m0 3 6 h1 6 y1 y0 2 M 0 M1 m0 0 ( 0 1) h1 h1
三次样条插值问题
定义 设 a x0 x1 ... xn b 。三次样条函数 S( x) C
2
三次样条插值的方法和思路
三次样条插值的方法和思路摘要:1.三次样条插值的基本概念2.三次样条插值的数学原理3.三次样条插值的实现步骤4.三次样条插值的优缺点5.三次样条插值在实际应用中的案例正文:在日常的科学研究和工程应用中,我们经常会遇到需要对一组数据进行插值的问题。
插值方法有很多,其中三次样条插值是一种常见且有效的方法。
本文将从基本概念、数学原理、实现步骤、优缺点以及实际应用案例等方面,全面介绍三次样条插值的方法和思路。
一、三次样条插值的基本概念三次样条插值(Cubic Spline Interpolation)是一种基于分段多项式的插值方法。
它通过在各个节点上构建一条三次多项式曲线,使得这条曲线在节点之间满足插值条件,从而达到拟合数据的目的。
二、三次样条插值的数学原理三次样条插值的数学原理可以分为两个部分:一是分段三次多项式的构建,二是插值条件的满足。
1.分段三次多项式的构建假设有一组数据点序列为(x0,y0),(x1,y1),(x2,y2),(x3,y3),我们可以将这些数据点连接起来,构建一条分段三次多项式曲线。
分段三次多项式在每个子区间上都是一个三次多项式,它们之间通过节点值进行连接。
2.插值条件的满足为了使分段三次多项式在节点之间满足插值条件,我们需要在每个子区间上满足以下四个条件:(1)端点条件:三次多项式在区间的端点上分别等于节点值;(2)二阶导数条件:三次多项式在区间内的二阶导数等于节点间的斜率;(3)三阶导数条件:三次多项式在区间内的三阶导数等于节点间的曲率;(4)内部点条件:三次多项式在区间内部满足插值函数的连续性。
通过求解这四个条件,我们可以得到分段三次多项式的系数,从而实现插值。
三、三次样条插值的实现步骤1.确定插值节点:根据数据点的位置,选取合适的节点;2.构建分段三次多项式:根据节点值和插值条件,求解分段三次多项式的系数;3.计算插值结果:将待插值点的横坐标代入分段三次多项式,得到插值结果。
三次样条插值
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 )用压铁固定在样点上,其它地方让其自 由弯曲,然后画下曲线(称为样条曲线),它实际上是由分段 多项式光滑连接而成,在样点上要求二阶连续可导。
三次样条插值
三次样条插值分段线性插值的优点:计算简单、稳定性好、收敛性有保证且易在计算机上实现缺点:它只能保证各小段曲线在连接点的连续性,却无法保证整条曲线的光滑性,这就不能满足某些工程技术的要求。
三次Hermit 插值优点:有较好的光滑性,缺点:要求节点的一阶导数已知。
从20世纪60年代开始,首先由于航空、造船等工程设计的需要而发展起来所谓样条(Spline)插值方法,既保留了分段低次插值多项式的各种优点,又提高了插值函数的光滑性。
今天,样条插值方法已成为数值逼近的一个极其重要的分支,在许多领域里得到越来越多广泛应用。
我们介绍应用最广的具二阶连续导数的三次样条插值函数。
一、三次样条插值函数的定义:给定区间],[b a 上的个节点b x x x a n =<<<= 10和这些点上的函数值),,1,0()(n i y x f i i == 若)(x S 满足: (1)),,2,1,0()(n i y x S i i ==;(2)在每个小区间],[b a 上至多是一个三次多项式; (3))(),(),(x S x S x S '''在],[b a 上连续。
则称)(x S 为函数)(x f 关于节点的n x x x ,,,10 三次样条插值函数。
二、边界问题的提出与类型单靠一个函数表是不能完全构造出一个三次样条插值函数。
我们分析一下其条件个数,条件(2)三次样条插值函数)(x S 是一个分段三次多项式,若用)(x S i 表示它在第i 个子区间],[1i i x x -上的表达式,则)(x S i 形如],[,)(1332210i i i i i i i x x x x a x a x a a x S -∈+++=其中有四个待定系数)3,2,1,0(=j a ij ,子区间共有n 个,所以)(x S 共有n 4个待定系数。
由条件(3))(),(),(x S x S x S '''在],[b a 上连续,即它们在各个子区间上的连接点110,,,-n x x x 上连续即可,共有)1(4-n 个条件,即⎪⎪⎩⎪⎪⎨⎧==-=+''=-''-=+'=-'-=+=-),2,1,0()()1,,2,1)(0()0()1,,2,1)(0()0()1,,2,1)(0()0(n i y x S n i x S x S n i x S x S n i x S x S i i i i i i i i 共有241)1(3-=++-n n n 个条件,未知量的个数是n 4个。
三次样条插值
三次样条插值C++数值算法(第二版)3.3 三次样条插值给定一个列表显示的函数yi=y(xi),i=0,1,2,...,N-1。
特别注意在xj和xj+1之间的一个特殊的区间。
该区间的线性插值公式为(3.3.1)式和(3.3.2)式是拉格朗日插值公式(3.1.1)的特殊情况。
因为它是(分段)线性的,(3.3.1)式在每一区间内的二阶导数为零,在横坐标为xj处的二阶导数不定义或无限。
三次样条插值的目的就是要得到一个内插公式,不论在区间内亦或其边界上,其一阶导数平滑,二阶导数连续。
做一个与事实相反的个假设,除yi的列表值之外,我们还有函数二阶导数y"的列表值,即一系列的yi"值,则在每个区间内,可以在(3.3.1)式的右边加上一个三次多项式,其二阶导数从左边的yj"值线性变化到右边的yj+1"值,这么做便得到了所需的连续二阶导数。
如果还将三次多项式构造在xj和xj+1处为零,则不会破坏在终点xj和xj+1处与列表函数值yj和yj+1的一致性。
进行一些辅助计算便可知,仅有一种办法才能进行这种构造,即用注意,(3.3.3)式和(3.3.4)式对自变量x的依赖,是完全通过A和B对x的线性依赖,以及C和D(通过A和B)对x的三次依赖而实现。
可以很容易地验证,y"事实上是该插值多项式的二阶导数。
使用ABCD的定义对x求(3.3.3)式的导数,计算dA/dx dB/dx dC/dx dD/dx,结果为一阶导数因为x=xj是A=1,x=x(i+1)时A=0,而B正相反,则(3.3.6)式表明y"恰为列表函数的二阶导数。
而且该二阶导数在两个区间(xj-1, xj)和(xj, xj+1)上是连续的。
现在唯一的问题是,假设yj"是已知的。
而实际上并不知道。
然而,仍不要求从(3.3.5)式算出的一阶导数在两个区间的边界处是连续的。
三次样条的关键思想就在于要求这种连续性,并用它求得等式的二阶导数yi"。
三次样条插值算法详解
三次样条插值算法要求数据点数量较多,且在某些情况下可能存在数值不稳定性,如数据 点过多或数据点分布不均等情况。此外,该算法对于离散数据点的拟合效果可能不如其他 插值方法。
对未来研究的展望
01
02
03
改进算法稳定性
针对数值不稳定性问题, 未来研究可以探索改进算 法的数值稳定性,提高算 法的鲁棒性。
3
数据转换
对数据进行必要的转换,如标准化、归一化等, 以适应算法需求。
构建插值函数
确定插值节点
根据数据点确定插值节点,确保插值函数在节点处连续且光滑。
构造插值多项式
根据节点和数据点,构造三次多项式作为插值函数。
确定边界条件
根据实际情况确定插值函数的边界条件,如周期性、对称性等。
求解插值函数
求解线性方程组
06
结论
三次样条插值算法总结
适用性
三次样条插值算法适用于各种连续、光滑、可微的分段函数插值问题,尤其在处理具有复 杂变化趋势的数据时表现出色。
优点
该算法能够保证插值函数在分段连接处连续且具有二阶导数,从而在插值过程中保持数据 的平滑性和连续性。此外,三次样条插值算法具有简单、易实现的特点,且计算效率较高 。
根据数据点的数量和分布,合理分段,确保 拟合的精度和连续性。
求解线性方程组
使用高效的方法求解线性方程组,如高斯消 元法或迭代法。
结果输出
输出拟合得到的插值函数,以及相关的误差 分析和图表。
03
三次样条插值算法步骤
数据准备
1 2
数据收集
收集需要插值的原始数据点,确保数据准确可靠。
数据清洗
对数据进行预处理,如去除异常值、缺失值处理 等。
第二章三次样条插值
mk 1 2mk
hk 1 hk hk 1
k 1
3( hk yk1 yk hk1 yk yk1 )
hk hk 1
hk
hk hk 1
hk 1
k mk1 2mk k mk 1 gk
k
hk
hk hk 1
k
hk 1 hk hk 1
gk
3(k
yk yk 1 hk 1
k 0,1,2
小结
1 x3 3 x2 7 x 1
8 8 4
1 x2
S(x)
1 8
x3
3 8
x2
7 4
x
1
3 x3 45 x2 103 x 33
88
4
2x4 4x5
f (3) S(3) 17 4
最后,介绍一个有用的结果
定理 . 设f (x)C2[a,b],S(x)是以xk (k 0,1,,n)
m2 m3
g0 g1 g2
g3
解方程组得:m0
17 8
, m1
Байду номын сангаас
7 4
, m2
5 4
, m3
19 8
将上述结果代入(10)式
S0 ( x)
1 8
x3
3 8
x2
7 4
x
1
S1 ( x)
1 8
x3
3 8
x2
7 4
x
1
1 x 2 2x4
S2(x)
3 8
x3
45 8
x2
103 4
x
33
4x5
注:三次样条与分段 Hermite 插值的根本区别在于S(x)自 身光滑,不需要知道 f 的导数值(除了在2个端点可能需 要);而Hermite插值依赖于f 在所有插值点的导数值。
2[1].7三次样条插值
即
lim S ( x ) = lim S ( x ) lim S ′ ( x) = lim S ′ ( x) = m lim S ′′( x) = lim S ′′ ( x) S ′( x ) = f ′ S ′( x ) = f ′ 或
将(13)式化为矩阵形式
2 λ2
µ1 λ3
2
µ2 λ4
2
µ3
2 O O O
λn − 2
λn − 1
O 2
m1 g 1 − λ1 f 0′ m2 g2 g3 m3 M = M M M µ n − 2 mn − 2 gn−2 2 mn − 1 g n − 1 − µ n − 1 f n′
共4 n − 2个条件
′ ′ lim S k′( x ) = lim S k′− 1 ( x ) + −
S k ( x )是[ xk , xk + 1 ]上的三次样条插值多项式, 应有4个待定的系数 即要确定S ( x )必须确定4n个待定的系数
少两个条件
并且我们不能只对插值函数在中间节点的状态进行限制 也要对插值多项式在两端点的状态加以要求 也就是所谓的边界条件: 第一类(一阶)边界条件: 第二类(二阶)边界条件 第三类(周期)边界条件
f(x) H(x) S(x)
二、三次样条插值多项式
a ≤ x0 , x1 ,L , xn ≤ b为区间[ a , b ]的一个分割 如果函数f ( x )在节点x0 , x1 ,L , xn处的函数值为
f ( x j ) = y j , j = 0 ,1,L , n 如果S ( x )是f ( x )的三次样条插值函数, 则其必满足
三次样条插值(CubicSplineInterpolation)
三次样条插值(CubicSplineInterpolation)样条插值是⼀种⼯业设计中常⽤的、得到平滑曲线的⼀种插值⽅法,三次样条⼜是其中⽤的较为⼴泛的⼀种。
本篇介绍⼒求⽤容易理解的⽅式,介绍⼀下三次样条插值的原理,并附C语⾔的实现代码。
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种⽐较常⽤的限制如下。
三次样条插值
三次样条插值
三次样条插值是插值运算的一种,它具有计算精度高、收敛性好以及曲线拟合准确等特点,是插值运算中最常用的插值方法之
三次样条插值是以曲线为基本元素,把离散点数据连接成一个曲线,并能够在曲线上求出任意点的函数值。
它通过拟合所有离散数据点,来求出一个连续曲线,从而解决了插值法的局限性。
三次样条插值的基本原理是:在离散点的两端,曲线的曲率是零,由此可以计算出曲线的系数,从而得到曲线的表达式,这样就可以得到曲线上任意点的函数值。
三次样条插值的优点在于计算精度高、收敛性好,可以很好地拟合离散数据,并且经过插值后得到的曲线更加平滑,其结果更加可靠。
由于它的优点,三次样条插值得到了广泛的应用,如在统计分析中,用于拟合离散数据;在机械工程中,用于优化加工轨迹;在号处理中,用于滤波等。
总之,三次样条插值是插值运算的一种,它的准确性高,拟合性好,广泛应用于各种领域,是科学研究中的一种重要方法。
三次样条插值cubicsplineinterpolation
三次样条插值cubicsplineinterpolation什么是三次样条插值 插值(interpolation)是在已知部分数据节点(knots)的情况下,求解经过这些已知点的曲线,然后根据得到的曲线进⾏未知位置点函数值预测的⽅法(未知点在上述已知点⾃变量范围内)。
样条(spline)是软尺(elastic ruler)的术语说法,在技术制图中,使⽤软尺连接两个相邻数据点,以达到连接曲线光滑的效果。
样条插值是⼀种分段多项式(piecewise polynomial)插值法。
数学上,曲线光滑需要在曲线上处处⼀阶导连续,因此,在节点处需要满⾜⼀阶导数相等。
另外,为了使得曲线的曲率最⼩,要求曲线⼆阶导连续【1】,在节点处需要⼆阶导相等。
三次及以上多项式可以满⾜节点处光滑和曲率最⼩要求,但是次数⾼的曲线容易震荡,因此,就选⽤三次多项式即可。
数学表述 假设有n个已知节点: 函数关系记为:。
在区间中插值多项式曲线:注意,这⾥头曲线为,尾曲线为。
插值在节点处满⾜条件: (1)曲线经过节点: (2)曲线⼀阶导连续(光滑): (3)曲线⼆阶导连续(曲率最⼩): 边界条件:对两端节点的约束。
(B1)⾃然(natural (or free))边界条件 (B2)固定(clamped)边界条件 固定⼀阶导数: , 固定⼆阶导数: , (B3)⾮节点边界(not-a-knot ) 要求在第⼆个节点和倒数第⼆个节点,曲线的三阶导也连续:三次多样式函数的计算 样条函数采⽤n-1个三次多项式,每个三次多项式有4个参数,⼀共是4n-4个参数,因此需要4n-4个⽅程。
条件(1)n-1个曲线每个两端经过节点,提供2(n-1)=2n-2个⽅程; 条件(2)n-1个曲线相邻⼀阶导连续,提供n-2个⽅程; 条件(3)n-1个曲线相邻⼆阶导连续,提供n-2个⽅程; 以上⼀共是4n-6个⽅程,还需要2个⽅程,这两个⽅程由边界条件提供,条件(B1), (B2), (B3)每个均提供2个⽅程,这样就凑够了4n-4个⽅程。
三次样条插值
三次样条插值0 引⾔三次样条插值以构造简单,使⽤⽅便,拟合准确,具有“保凸”的重要性质等特点成为了常⽤的插值⽅法。
⼀般三次样条插值解算过程中通过追赶法求解三弯矩阵,但使⽤计算机求解时会表现出解的精度不⾼的问题,导致其计算结果⽆法应⽤到⼯程实践之中。
因此需要找出⼀种提⾼解精度的⽅法。
1 基本概念三次样条函数的定义:在区间内对于给定的函数值,其中,如果函数满⾜条件:(1)在每个⼦区间,上都是不⾼于三次的多项式;(2)、、在上都连续;(3),。
则称为函数关于节点的三次样条函数。
想要求解三次样条插值函数,只需在每个⼦区间上确定⼀个三次多项式共有4个系数,确定它们需要 4n 个条件,因此要完全确定共需 4n 个条件。
由所满⾜的条件(1)、(2)、(3),可确定个条件,仍然缺少两个条件。
这两个条件通常由实际问题对三次样条插值函数在端点的状态要求给出,也称之为边界条件,常见的边界条件有:1)夹持边界条件(Clamped Spline):给定两端点的⼀阶导数值,即,;2)⾃然边界条件(Natural Spline):使两端点的⼆阶导数值为零,即;3)⾮扭结边界条件(Not-A-Knot Spline):强制第⼀个插值点的三阶导数值等于第⼆个点的三阶导数值,最后第⼀个点的三阶导数值等于最后第⼆个点的三阶导数值,即,。
2 计算⽅法设三次样条函数,(0),,,由三次样条函数定义(1)(2)(3)可得:,(1)如下构造式(1)矩阵:(2)由式(1)可知:,,,,(3)1)在夹持边界条件时,,,,;,,,;2)在⾃然边界条件时,,,,;,,,;3)在⾮扭结边界条件时,,,,;,,,;由n个未知数的⾮齐次⽅程组有惟⼀解的充分必要条件是,可知矩阵⽅程(2)在以上三种情况下都有惟⼀解。
对矩阵⽅程(2)采⽤⾼斯列主元消去法即可求解得出。
最后,代⼊式(0)可以得出:,,,,3 应⽤算例有点集,在⾮扭结边界条件下进⾏插值。
同时使⽤Matlab R2010a和⽂章所述⽅法进⾏插值计算,对⽐计算结果。
三次样条插值
其中c1=b1-(1-a1)m0, cn-1=bn-1-an-1)mn
2011-1-1
光电学院 肖慧敏----数值计算
例1. 给定数据 x 1 2 4 5 f (x) 1 3 4 2 求 f (x)的自然(边界条件)3次样条插值函数, 并求f (3)和f(4.5)的近似值。 解: 记 x0 = x 1 -2,x2 = 4, 3 =5,则 x
一、三次样条插值简介
样条插值是一个基于工程方法的用语,三次样条插 值就是对一般的多项式插值问题,在每个小区间上 采用标准的三次样条函数而形成的方法。 在实际操作过程中,我们是利用三次Hermit分段插 值的原理形成三次样条插值,所以我们是借用样条 这个名词。 大家要记住,以计算函数值为目标的插值方法的重 要性已经大为降低,而“捡便宜”式的插值方法的 应用以突显其重要意义。 所以目前大体了解一下三次样条插值方法,真正在 工程总要用到它时,在花些时间研究一下,编出计 算程序也不太难。
2011-1-1 光电学院 肖慧敏----数值计算
二、三次样条插值(问题与思路)
对于一般的n个基点的插值问题(同样假定 a=x0<x1<…<xn=b),假设基点处的导数值分别为 m0,m1,…,mn,利用分段三次Hermit插值方法,记第 Si(t)为第i个区间[xi-1,xi]上的三次Hermit插值函数 Si(t)=y0 ϕ0(t)+y1ϕ1(t)+himiψ0(t)+himi+1ψ1(t) 其中hi=xi+1-xi,t=(x-xi)/hi 假如m0和mn是已知的,对于0<i<n,我们可以利用 Si-1(t)和Si(t)在x=xi处的二阶导数值相等来组织n-1个 方程,由此确定m1,m2,…,mn-1,从而形成一个完整的 方法。
三次样条插值自然边界条件(一)
三次样条插值自然边界条件(一)三次样条插值自然边界条件引言•什么是样条插值?•为什么需要自然边界条件?样条插值基本概念•样条定义和性质•插值问题三次样条插值算法1.数据准备–输入数据的获取和整理2.线性方程组的建立–利用数据点和导数的关系建立线性方程组3.矩阵求解–解线性方程组获取样条插值函数的系数4.插值函数构建–使用线性方程组的解构建三次样条插值函数自然边界条件的引入•什么是自然边界条件?•为什么要使用自然边界条件?自然边界条件的应用1.边界条件的设置–左、右边界条件的定义2.线性方程组建立–利用自然边界条件建立线性方程组3.矩阵求解–解线性方程组获取带有自然边界条件的样条插值函数的系数4.插值函数构建–使用线性方程组的解构建带自然边界条件的三次样条插值函数结论•自然边界条件在三次样条插值中的应用优势•对比其他边界条件的选择参考文献参考文献1.DeBoor, C. (1978). A Practical Guide to Splines. NewYork: Springer-Verlag.2.王援胜. 数值计算方法(第2版). 中国科学技术大学出版社,2014.3.徐健, 曹洪欣, & 张平原. (2003). 数值分析与算法 C++语言实现. 清华大学出版社.4.Zhang, Q., & Jiao, L. (2001). Piecewise polynomialinterpolation with adaptive knot values. Journal ofcomputational and applied mathematics, , .。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2.3.8)
第二章 插值与拟合
这样,由(2.3.5)和(2.3.8)可解出 M i ( i 0,1, , n) ,从而得 S ( x ) 6 ( f [ x0 , x1] f ), 的表达式(2.3.4),若令 n 0 1, d 0 0
d
n
6
h
(
f
n 1
x [0,1] x [1,2] x [2,3]
(2) 仍用方程组进行求解,不过要注意 0 , 3 , d 0 , d 3 的不同。由于 M 0 和 M 3已知,故可以化简得
第二章 插值与拟合
4 1 M 1 6 .3 1 4 15.3 . M 2
(2.3 .9)
对于边界条件(2.3.2), 直接得 M f , M
0 0
n
f .
n
(2.3.10)
将(2.3.10)代入(2.3.5)可解出
M
i
( i 1,2,, n 1). 若令
n
0
0,
d
0
2
f
0
,
d
n
2
f , 则(2.3.5)和(2.3.10)可以写成(2.3.9)的形式。
第二章 插值与拟合
M
i
i
2Mi
i 1
M
i
i 1
d i , i 0,1,2, , n 1,
(2.3.5)
(2.3.6) (2.3.7)
其中
h h , h h h h d 6 f [ x , x x ].
i
i
i
1
i 1
i
i 1
i
,
i
i
i 1
i,
S k xi 0 S k ( xi 0), k 0,1,2,
共有 3(n 1) 个条件。再加上 n 1 个插值条件,共有 4n 2 个条 件。因此,还需要2个条件才能确定 S ( x ) 。通常在区间 [a , b] 端 点 a x0 和 b xn 上各加一个条件(称为边界条件),可根据实 际问题的要求给定。通常有以下三种:
先消去 M 3 和 M 3 得
3 .5 1 1 M 1 5 .1 10.5 3 .5 M 2
由此解得 M 1 2.52, M 2 3.72 。 代回方程组得 M 0 0.36, M 3 0.36. 用 M 0 , M 1 , M 2 , M 3的值代入三次样条插值函数的表达式(2.3.4),经化简有
当 x [ x i 1 , x i ] 时, S ( x ) 的表达式由(2.3.4)平移下标可得, 因此有
S ( x i 0) f [ x i 1 , x i ] hi 1 ( M i 1 2 M i ). 6
利用条件 S ( x i 0) S ( x i 0) 得
x [0,1] x [1,2] x [2,3]
S 值( x i ) M i ( i 0,1,, n)
M
i
表示时,使用更方便。 在力学上解释 ( x) 为细梁在 S处的弯矩,并且得到的弯矩与相邻两个弯矩有关,故 Mi 称用 表示 的算法为三弯矩算法。 由于 S ( x )在区间 [ xi , xi 1](i 0,1,, n 1) 上是三次多项式, 故 [ , ] S ( )
由此解得 M 1 2.7, M 2 4.5 。 将 M 0 , M 1 , M 2 , M 3 代入三次样条插值函数的表达式(2.3.4), 经化简有
0.5 x 3 0.15 x 2 0.15 x, 3 2 S ( x) 1.2x 1 1.35x 1 1.35( x 1) 0.5, 3 2 1.3x 1 2.25x 2 0.45( x 2) 2,
2.3.1 三次样条插值函数的概念
一、背景 L-插值(牛顿插值) Hermite插值 分段插值
高次插值出现龙格现象
但分段线性插值在节点处不一定光滑
分段Hermite插值 但导数值不容易提取(找到) 三次样条插值(先由函数值确定导数值,再由分段 Hermite插值解决问题) 举例: 1 汽车、船的外形设计,流体力学等要求流线型(光滑);
(1) S ( x0) 0.2, S ( x 3) 1, ( 2) S ( x0) 0.3, S ( x 3) 3.3.
解 (1)利用方程组(2.3.9)进行求解,可知 简单计算有 d 0 1.8,d 1 3,d 2 6,d 3 3 。由 此得(2.3.9)形式的方程组
i
x
x
i
在 其中
x x
k
i
k 1
S ( x 0 )
上是线性函数,可表示为 x x
M
x
i 1
i
h x
i 1
xi .
h
M
i 1
i
x h
i
i
,
对 S ( x i ) 积分两次,并利用插值条件定出积分常数,可以得到
( x i 1 x ) ( x xi) S( x) M M 6h 6h M hi ) x x , x [ , ( f x x ]. 6 h
(1) S ( x) C 2 [ a, b]; ( 2) S ( xi ) f i , i 0,1,2, , n;
(3)在每个小区间[ xk , xk 1] 上, S ( x ) 是三次多项式。 则称 S ( x ) 为 三次样条插值函数。
提出问题: 3次样条插值函数 S ( x ) 是否存在?是否唯一? 如何计算?误差估计?
对 S ( x )求导得
S ( x ) M i
由此可得
( x i 1 x ) ( x xi) M 2h 2h
2 i 1 i i
2
f [ x i , x i 1] hi ( M i 1 M i ), 6
S ( x i 0) f [ x i , x i 1] hi ( 2 M i M i 1), 6 S ( x i 1 0) f [ x i , x i 1] hi ( M i 2 M i 1). 6
n
第二章 插值与拟合
对于边界条件(2.3.3),有
M 0 M n n M1
M 2M
n n 1
n
dn
(2.3.11)
其中
h h , 1 , h h h h d 6( f [ x , x ] f [ x , x ]) (h0 hn 1)
2 木样条的来源。
第二章 插值与拟合
二、样条函数的定义 定义 9 (3次样条函数)
设在区间 [a , b] 上取 n 1 个节点 a x0 x1 xn b, 给定 这些点的函数值 f ( xi ) f i (i 0,1,2,, n). 若 S ( x )满足条件:
第二章 插值与拟合
(1)已知两端的一阶导数值,即
S ( x0 ) f 0 , S ( xn ) f n
' '
(2.3.1)
(2)已知两端的二阶导数值,即
S ( x0 ) f 0 , S ( xn ) f n .
'' ''
(2.3.2)
其特殊情况为
S ( x0 ) 0, S ( xn ) 0.
(2.3.2) (2.3.3)
(3)周期边界条件
S k ( x0 ) S k ( xn ), k 0,1,2.
此时,对函数值有周期条件
f0 f0
注:一般不取一端是一阶导数而另一端是二阶导数。
第二章 插值与拟合
2.3.2பைடு நூலகம்三弯矩算法
三次样条插值函数 S ( x ) 可以有多种表达式,有时用二阶导数
第二章 插值与拟合
三次样条插值函数是分段三次多项式,在每个小区间 [ xk , xk 1] 上可以写成
S ( x) ai x 3 bi x 2 ci x di , i 0,1,2,, n 1,
其中 ai , bi ,ci 和 d i 为待定系数。所以,S ( x ) 共有 4n 个待定参数。 根据 S ( x ) 在 [a , b] 上二阶导数连续的条件,在节点 x i ( i 0,1,2,, n 1) 处应满足连续性条件
第二章 插值与拟合
§2.3 三次样条插值
2.3.1 三次样条插值函数的概念 2.3.2 三弯矩算法 2.3.3 三转角算法
2. 3. 4 三次样条插值函数的误差估计
总结
第二章 插值与拟合
2.3 三次样条插值
学习目标: 知道三次样条插值函数的概念,会求 三次样条插值函数,进行误差分析。
第二章 插值与拟合
i 1
方程组(2.3.5)是关于 M i 的方程组,有 n 1 个未知数,但只有 n 1 个方程.可由(2.3.1)—(2.3.3)的任一种边界条件补充两个方程。 对于边界条件(2.3.1),可以导出两个方程
6 2 M0 M1 ( f [ x 0 , x1] f ) 0 h0 6 2M n ( f f [ x n 1 , x n]). n M n 1 hn1
h
i
1( i 0,1, 2 ),
0
1,
3
1, 1
2
1
2
0.5
。经
第二章 插值与拟合
2 0.5 1 2 0.5 0.5 2 1 M 0 1.8 M1 3 0.5 M 2 6 2 3 M 3