数值计算方法第四章第四节 三次样条
数值计算方法 三次样条插值1 - 三次样条插值1
13
1. 确定插值函数 S( x) 在节点处的一阶导数,记为 S( x j ) m j , j 0,1,, n,
该方法即为3次样条插值函数的一阶导数表示。
2. 确定插值函数 S( x) 在节点处的二阶导数,记为 S( x j ) M j , j 0,1,, n,
由Lagrange插 值 公 式 得 :
其 中 :hj
Sj''(x) M j1 x j1 x j
x xj hj
Mj
x x j1 hj
x [x j , x j1]
15
对
Sj''(x)
M j1
x xj hj
Mj
x x j1 hj
积分得:
Sj'( x)
M j1 2hj
(x
x j )2
Mj 2hj
6
“样条”的来源:
所谓“样条”(Spline)是工程绘图中的一种工具,它是有弹性的 细长木条,绘图时,用细木条连接相近的几个结点,然后再进行拼接,连 接全部结点,使之成为一条光滑曲线,且在结点处具有连续的曲率。 样条函数就是对这样的曲线进行数学模拟得到的。
特殊性:
除了要求给出各个结点处的函数值外,只需提供两个边界 点处导数信息,便可满足对光滑性的不同要求。
则称S(x)为函数f(x)的三次样条插值函数
观察与思考 ?
3次样条插值函数s(x) 是否存在?
是否唯一?如何计算?误差估计?
9
S(x)除了满足基本插值条件
S0 x,
SxS1源自x,x x0, x1, x x1, x2 ,
Sn1 x, x xn1, xn ;
数值计算方法( 三次样条插值)
u xj hj
分段三次Hermite插值算法
则 v A1 y j 1 A2 y j B1 f j1 B2 f j
算法: 1.输入x j , f j , f j (j 0,1,...,n); 2.计算插值 (1)输入插值点u; (2)对于j 1,2,...,n做 如果u x j 则计算A1 , A2 , B1 , B2 ; v A1 f j 1 A2 f j B1 f j1 B2 f j; 3.输出u , v。
三次样条插值
于是由Taylor展示有 s( x) s( xi ) s( xi )(x xi ) s( xi ) s( xi ) 2 ( x xi ) ( x xi )3 2! 3! M M Mi yi s( xi )(x x j ) i ( x xi ) 2 i 1 ( x xi )3 2! 3!( xi 1 xi )
2M 0 M 1 6 f [ x0 , x0 , x1 ]
三次样条插值
同理(2)式中令i n得 M n 1 2M n 6 f [ xn 1 , xn , xn ] 即有 2M 0 M 1 6 f [ x0 , x0 , x1 ] ) i M i 1 2M i i M i 1 6 f [ xi 1 , xi , xi 1 ] (i 1,2,...,n 1 M 2M 6 f [ x , x , x ] n n 1 n n n 1
三次样条插值
对于待定系数a j , b j , c j .d j j 1,2,...n,即4n个未知系数,
而插值条件为 n 2个,还缺两个,因此须 4 给出两个 条件称为边界条件,有 以下三类: 第一类 已知两端点的一阶导数 s( x0 ) f ( x0 ) m0 s( xn ) f ( xn ) mn
数学数值分析三次样条插值PPT课件
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
计算方法第4章三次样条插值081208
h(k ) (x j ) = 0,
k = 0, 1, 2, L, m − 1
( ) ( ) 从而必有 h(x) = C j x − x j m ,即 q(x) = p ( x) + Cj x − xj m 。
例1 验证分片多项式
⎧
S(x)
=
⎪⎪ ⎨
⎪
是三次样条函数。 ⎪⎩
1− 2x 28 + 25x + 9x2 + x3
+
(x
−
xk )(x − hk2
xk +1)2
mk
+
(x
−
xk +1 )( x hk2
−
xk
)2
mk +1
。
(4-35)
因此,求s(x)的关键在于确定n+1个常数m0, m1, …, mn。
可微函数的集合)类的分段m次多项式。
(
x
−
a)
m +
m次截断多项式
a
可以证明
定理4.4 任意s(x)∈Sm(x1,x2,…,xn)均可唯一地表示为
n
∑ s(x) = pm (x) + c j (x − x j )+m , − ∞ < x < +∞ (4-31) j =1
其中pm(x)∈Pm,cj(j=1,2,…,n)为实数。
第4章 插值与逼近
4.3 三次样条插值
4.3 三次样条插值
4.3.1 样条函数 样条函数是一个重要的逼近工具,在插值、数值微分、曲 线拟合等方面有着广泛的应用。
定义4.3 对区间(-∞,+∞)的一个分割:
Δ : −∞ < x1 < x2 < L < xn < +∞,
数值分析三次样条插值
若取等距节点 hi = h, i = 1,…, n –1
i
h h
h
1 2
i
1 i
1 2
di
6 2h
yi 1
2 yi h
yi 1
3 h3
( yi1
2 yi
yi1 )
i 1, 2,, n
例1. 对于给定的节点及函数值
k 0123 xk 1 2 4 5 f (xk ) 1 3 4 2 求满足自然边界条件S(x0 ) S(xn ) 0的三次样条 插值函数S(x),并求f (3)的近似值
Mi1
( x xi )2 2hi 1
yi1 hi 1
yi
hi 1 6
( M i 1
Mi )
于是
Si( xi )
hi 3
Mi
yi
yi1 hi
hi 6
M i 1
Si1( xi )
hi 1 3
Mi
yi1 hi 1
yi
hi 1 6
M i 1
解: 由M关系式
k
hk
hk hk 1
k
hk 1 hk hk 1
1 k
1
2 3
1
1 3
2
1 3
2
2 3
di
6
yi1 hi1
yi
yi
yi hi
1
hi hi1 6 f [ xi1, xi , xi1]
三次样条插值算法详解
如果S(x)是f (x)的三次样条插值函数,则其必满足
插值条件: 连续性条件:
一阶导数连续条件:
二阶导数连续条件:
S(x j ) y j , j 0,1,, n
lim
xx j
S(x)
S(xj )
yj,
j
1,, n
1
lim
xx j
S ( x)
S(x j
)
mj
,
j
1,, n
1
lim
xx j
S
(
x)
S(
S(x)
(3x
3
16 x 2
27 x
14)
15
(x3 8x2 21x 18) 15
0 x 1 1 x 2
2 x3
10
三次样条插值函数的求法
通常有三转角法、三弯矩法、B样条基函数法。
这三种方法的基本思想是类似的,都是通过待定 某些参数来确定插值函数,但肯定不是待定4n个参
数。而是利用已知条件将待定参数减小到最少。
第一边界条件:由区间端点处的一阶导数给出即
s3 (x0 ) m0 f (x0 ), s3 (xn ) mn f (xn ),
6
第二边界条件:由区间端点处的二阶导数给出即
s3(x0 ) M 0 f (x0 ),
s3(
xn
)
Mn
f (xn ),
特殊情况为自然边界条件:
由区间端点处的二阶导数恒为0给出即
化为矩阵形式
17
2 1
2
2
2
m1 g1 1m0
m2
g2
3 2 3 4 2
m3
g3
n2 2 n2 mn2
三次样条插值算法详解
三次样条插值算法要求数据点数量较多,且在某些情况下可能存在数值不稳定性,如数据 点过多或数据点分布不均等情况。此外,该算法对于离散数据点的拟合效果可能不如其他 插值方法。
对未来研究的展望
01
02
03
改进算法稳定性
针对数值不稳定性问题, 未来研究可以探索改进算 法的数值稳定性,提高算 法的鲁棒性。
3
数据转换
对数据进行必要的转换,如标准化、归一化等, 以适应算法需求。
构建插值函数
确定插值节点
根据数据点确定插值节点,确保插值函数在节点处连续且光滑。
构造插值多项式
根据节点和数据点,构造三次多项式作为插值函数。
确定边界条件
根据实际情况确定插值函数的边界条件,如周期性、对称性等。
求解插值函数
求解线性方程组
06
结论
三次样条插值算法总结
适用性
三次样条插值算法适用于各种连续、光滑、可微的分段函数插值问题,尤其在处理具有复 杂变化趋势的数据时表现出色。
优点
该算法能够保证插值函数在分段连接处连续且具有二阶导数,从而在插值过程中保持数据 的平滑性和连续性。此外,三次样条插值算法具有简单、易实现的特点,且计算效率较高 。
根据数据点的数量和分布,合理分段,确保 拟合的精度和连续性。
求解线性方程组
使用高效的方法求解线性方程组,如高斯消 元法或迭代法。
结果输出
输出拟合得到的插值函数,以及相关的误差 分析和图表。
03
三次样条插值算法步骤
数据准备
1 2
数据收集
收集需要插值的原始数据点,确保数据准确可靠。
数据清洗
对数据进行预处理,如去除异常值、缺失值处理 等。
数值分析三次样条插值函数
数值分析三次样条插值函数【问题】对函数f x =ex, x∈[0,1]构造等距节点的三次样条插值函数,对以下两种类型的样条函数1. 三次自然样条2. 满足S′ 0 =1,S′ 1 =e的样条并计算如下误差:max{ f x1 −S x1 ,i=1,…,N} i−i−i这里xi−1为每个小区间的中点。
对N=10,20,40比较以上两组节点的结果。
讨论你的结果。
【三次样条插值】在每一个区间[t1,t2],…,[tn−1,tn]上,S都是不同的三次多项式,我们把在[ti−1,ti]上表示S的多项式记为Si,从而,S0 x x∈[t0,t1]∈[t1,t2] S x = S1 x x…Sn−1 x x∈[tn−1,tn]通过在节点处函数值、一阶导数和二阶导数的连续性可以得到:Si−1 ti = yi= Si ti 1≤i≤ n−1Si−1′ ti = Si′ tix→ti+limS′′ x =zi=limS′′(x) x→ti−再给定z0和zn 的值就构成了4n个条件,而三次样条插值函数共4n个系数,故可以通过这4n个条件求解三次样条函数的系数,从而求得该三次样条插值函数。
特别的,当z0=zn=0 时称为自然三次样条。
文本预览:一、自然三次样条插值【自然三次样条插值算法】1.由上面的分析可知,求解三次样条函数实际上就是求解一个矩阵:u 1h 1h1u2h2h2u3…v1 z1 v2 z2 z3=v3 … z…hn−2 n−2 vn−2 z vn−1 un−1 n−1ih3…hn−3un−2hn−26…其中hi=ti+1−ti,ui=2(hi+hi−1),ui=h(yi+1−yi),vi=bi−bi−1 所以自然三层次样条插值的算法就是在得到端点的函数值,一次导数值和二次导数值,然后根据上述求解矩阵得到v,代入自然三次样条的表达式即可。
2.根据题目中所给出的误差估计,计算在区间中点处的最大误差。
【实验】通过Mathematica编写程序得到如下结果:N=101. 计算得到zi的值为:由此可以得到各个区间的自然三次样条插值函数。
三次样条函数系数的求解
详细描述
在实际应用中,数据的分布和特点可能比较复杂,需要综合考虑数据的特性和实际需求来选择合适的 节点和求解方法。有时候可能需要对参数进行调整和优化,以获得更好的拟合效果和预测精度。
04
三次样条函数系数的求 解结果分析
结果的准确性分析
三次样条函数的应用场景
数据拟合
三次样条函数可以用于拟合一系列离散的数据点,从 而得到一个连续的函数。
数值分析
在数值分析中,三次样条函数可以用于求解微分方程 的近似解。
机器学习
在机器学习中,三次样条函数可以用于插值和拟合数 据,从而进行预测和分类等任务。
02
三次样条函数系数的求 解方法
最小二乘法求解
共轭梯度法求解
共轭梯度法是一种用于求解无约束优化问题的迭代算 法,通过构造一组共轭方向来逼近最优解。
在求解三次样条函数系数时,共轭梯度法利用函数的 梯度和Hessian矩阵信息,构造一组共轭方向,并沿
着这些方向进行搜索以找到最优解。
这种方法在处理大规模优化问题时具有较好的收敛速 度和数值稳定性,但在处理小规模问题时可能不如其
他方法高效。
03
三次样条函数系数的求 解实例
实例一:简单数据集的求解
总结词
简单数据集的求解相对容易,可以通过手动计算或使用简单 的数学软件进行求解。
详细描述
对于简单的数据集,可以通过观察数据点的分布和变化趋势 ,手动选择合适的节点,然后利用三次样条插值的公式计算 系数。也可以使用一些简单的数学软件,如Excel或Python 的NumPy库,进行计算。
最小二乘法是一种常用的数学优化技术,通过 最小化误差的平方和来找到数据的最佳函数匹 配。
三次样条插值求导法
三次样条插值求导法在数学和计算机科学领域中,样条插值是一种常用的数值计算方法,用于通过一系列已知的数据点来构造一条平滑的曲线。
在实际应用中,我们经常需要对这些曲线进行求导,以便进一步分析和处理数据。
三次样条插值是一种特殊的样条插值方法,它使用三次多项式来逼近数据点之间的曲线。
与线性插值方法相比,三次样条插值的优势在于它能够产生更平滑的曲线,并且在曲线的一阶导数和二阶导数上连续。
三次样条插值的求导方法可以通过两种方式进行:一种是通过求导的公式,另一种是通过样条插值的控制点求导。
首先,我们来看一下通过求导的公式来进行三次样条插值的导数计算。
对于每个插值段,我们可以表示为一个三次多项式的形式:S(x) = a + bx + cx^2 + dx^3,其中 a、b、c、d 是需要确定的系数。
在插值段的两个端点,我们可以通过已知的数据点来确定一些限制条件,例如函数值、一阶导数和二阶导数的值。
通过这些限制条件,我们可以得到一个线性方程组,通过解这个方程组可以确定每个插值段的系数。
当我们确定了系数之后,就可以利用求导的公式来计算任意一点的导数值。
对于三次多项式 S(x),它的导数可以表示为 S'(x) = b + 2cx + 3dx^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.数据准备:首先,需要获得一组数据点,这些数据点包含了所需插值曲线的关键信息。
通常情况下,数据点是从实际观测中获得的。
2.区间划分:将插值区间划分为若干个小区间,每个小区间对应一个三次函数。
3. 函数构建:对于每个小区间,在该区间内构建一个三次函数。
这里使用三次多项式进行构建,形如 f(x) = ax^3 + bx^2 + cx + d。
每个小区间内的函数有四个待定系数:a、b、c、d。
4.条件设置:为了确定每个小区间内的函数,需要设置相应的条件。
一般来说,需要满足以下两个条件:(a) 函数值条件:保证每条小区间内的函数值通过对应的数据点。
即,对于每个小区间,函数值满足 f(xi) = yi,其中(xi, yi)表示第i个数据点的横纵坐标。
(b)导数条件:保证每个小区间内函数的导数连续。
这可以通过限制每个小区间内的函数的一阶导数(即斜率)相等来实现。
5.矩阵方程求解:根据上述条件设置,可以得到一个线性方程组,其中待求的系数为未知数。
将上述条件代入方程组中,然后求解该方程组以获得每个小区间内的函数系数。
6.曲线绘制:通过得到的函数系数,可以计算每个小区间内的函数值,并连接这些函数值,最终得到整个插值曲线。
三次样条插值方法是一种非常强大和灵活的插值方法,适用于各种类型的数据点,包括均匀和非均匀间距的数据。
通过调整划分区间的个数,可以控制插值曲线的光滑程度。
一般来说,插值区间越多,插值曲线越平滑,但对输入数据的噪声更敏感。
总结起来,三次样条插值是一种高级的插值方法,通过构建三次函数来逼近数据点,可以产生平滑的插值曲线。
它的基本思想是将插值区间划分为若干个小区间,并在每个小区间内构建一个三次函数。
通过设置函数值条件和导数条件,可以得到一个线性方程组,从而求解出每个小区间内的函数系数。
最终连接每个小区间内的函数值,得到整个插值曲线。
三次样条算法
一、实验目的和要求(1) 掌握三次样条方法的原理,加深对插值方法的理解。
(2) 理解三次样条在高次差值的逼近效果比多项式的优越性!(3) 能构造出正确的算法结构并能实现具体问题的计算。
二、实验内容和原理实验内容:三次样条插值 解决具体问题:对于函数 ,取等距节点5,0,1,,10i i i x =-+= ,设已给出节点上的函数值以及左右两个端点的一阶导数值,按上述算法进行样条插值。
实验原理:(1)、三次样条的定义:设在[a,b]上有n+1个节点,f(xi)= yi,i=0,1,2,…,n 。
若S3(x)满足1) S3(x)在每个[xi,xi+1](i=0,1,…,n-1)上是不高于三次的多项式;2) S3(x), , 在[a,b]上连续;3) S3(xi)=yi(i=0,1,…,n)。
则称S3(x)为f(x)关于节点x0,x1,…,xn 的三次样条插值函数。
(2)、三次样条插值函数的边界条件:待定系数个数:4n已知条件:补充条件:这两个条件通常在区间[a,b]的两个端点给出,称为边界条件(3)、三次样条插值函数的求法:21()1f x x =+)('3x s )(''3x s 3333333(),(0,1,)(0)(0),(1,2,1)(0)(0),(1,2,1)(0)(0),(1,2,1)i i i i ii i i S x y i n S x S x i n S x S x i n S x S x i n ==⎧⎪-=+=-⎪⎨''-=+=-⎪⎪''''-=+=-⎩ 3011011i i+1i i i+120212021()()()()()...(1)h =x -x , x x x ()(1)(21)()(23)()(1)()(1)i i i i i i i i i i i i i i x x x x x x x x S x y y h m h m h h h h x x x x x x x x x x x x ϕϕψψϕϕψψ++----=+++≤≤=-+=-+=-=-得到系数矩阵,利用追赶法求解利用式(1)求解(4)、追赶法:追的过程(消元过程)赶的过程(回代过程)1,2,1][32)(322 111111111112121111111-=-++-+=++++⇔-+-=++++-----+----+⨯+--+----n i h y y h h h h y y h h h m h h h m m h h h h y y h y y h m m h m m ii i i i i i i i i i i i i i i i i i i i h h h h i i i i i ii i i i i i ii i i1,2,142624611211121-=++--=+------++n i h m m h y y h m m h y y i i i i i i i i i i i i ,)3......(..........2)1(2)1(2)1()1(211121212232232212011211⎪⎪⎪⎩⎪⎪⎪⎨⎧'-=+-=++-=++---=+-----------n n n n n n n n n n n n y αm m αm αm m αm αm m αy αm αm ββββ ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡---=---210212102122221n n n A αααααα三、算法框图与程序框图(1)、算法框图:(2)、程序框图三次样条追赶法四、实验数据#include <iostream> #include<iomanip>using namespace std; double x[100]={0}; double y[100]={0}; int N;int n;double M0,Mn; double c[100]={0}; double p[100]={0};double h[100]={0};double d[100]={0};double a[100]={0};double X;double G0,G1,W0,W1,S3;int main(){//输入数据cout<<"输入节点的数目";cin>>N;n=N-1;cout<<"输入各个节点以及节点的值";for(int i=0;i<=n;i++){cout<<endl<<setw(15)<<"x["<<i<<"]=";cin>>x[i];cout<<setw(15)<<"y["<<i<<"]=";cin>>y[i];}cout<<"输入两个端点的一阶导数值";cout<<endl<<setw(15)<<"M0=";cin>>M0;cout<<setw(15)<<"Mn=";cin>>Mn;//用(39)式计算值for(int i=0;i<n;i++)h[i]=x[i+1]-x[i];for(int j=1;j<n;j++){c[j]=h[j-1]/(h[j-1]+h[j]);p[j]=3*((1-c[j])*(y[j]-y[j-1])/h[j-1]+c[j]*(y[j+1]-y[j])/h[j]); // cout<<p[j]<<" ";}//用追赶法求解//表示d[i];d[0]=M0;d[1]=p[1]-(1-c[1])*M0;for(int i=2;i<=n-2;i++){d[i]=p[i];}d[n-1]=p[n-1]-c[n-1]*Mn;d[n]=Mn;//表示a[i];for(int j=2;j<=n-1;j++){a[j]=1-c[j];}//按照框图6-4计算,其中b[i]=2;double b=2;c[1]=c[1]/b;d[1]=d[1]/b;int k=0;double t=0;for(k=2;k<=n-2;k++){t=b-c[k-1]*a[k];c[k]=c[k]/t;d[k]=(d[k]-d[k-1]*a[k])/t;}d[n-1]=(d[n-1]-d[n-2]*a[n-1])/(b-c[n-2]*a[n-1]);for(int i=n-2;i>=1;i--){d[i]=d[i]-c[i]*d[i+1];}cout<<"各节点的导数值如下:"<<endl;for(int i=0;i<N;i++)cout<<"M["<<i<<"]="<<d[i]<<endl;cout<<endl<<"输入要求值点的X值:X="; cin>>X;int E=0;while(E<=n){if(E>=n){cout<<"输入有误";return 0;}if(x[E]<X&&X<x[E+1]){break;}elseE=E+1;}double R= (X-x[E])/h[E];G0=(R-1)*(R-1)*(2*R+1);G1=R*R*(-2*R+3);W0=R*(R-1)*(R-1);W1=R*R*(R-1);// cout<<n;// cout<<endl<<E;//cout<<"hahahhah";//cout<<G0<<endl<<G1<<endl<<W0<<endl<<W1<<endl<<(X-x[E])/h[E]<<endl<<d[E]<<endl <<d[E+1];S3=G0*y[E]+G1*y[E+1]+h[E]*W0*d[E]+h[E]*W1*d[E+1];cout<<endl<<S3;}/*4-1-11133561*//*11-5 0.03846-4 0.05882-3 0.10000-2 0.20000-1 0.500000 1.000001 0.500002 0.200003 0.100004 0.058825 0.038460.01479-0.01479*/。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
yi f (xi )(i 0,1,...,n) 以及边界点上的一阶导数值f '(x0 ), f '(xn). 求一个三次样条函数S( x)使之满足
S(xi ) yi
(i 1,2,...,n 1)
S(xj ) yj , S'(xj ) f '(xj ) ( j 0, n) 8-
三弯矩插值法的基本思想 ( 1)yi'' f''(xi )未知,但可设S''(xi)Mi,
上的一个分划 ,:ax0x1 xn1xnb 给定节点上函数值f(xi),i0,1,2, ,n。 若函数S(x)满足 (1)S(xi ) yi i 0,1, n; (2)S(x)Ck1[a,b],即在整体上是k-1阶连续的; (3)S(x)在每一个小区间[xi, xi1]是k次多项式
(i 0,1, n1) 则称S(x)为k次样条函数。x1,..., xn1称为内节点, x0, xn称为外节点.
2-
样条是绘图员用于描绘光滑曲线的一种机 械器件,它是一些易弯曲材料制成的窄条或棒条. 或接近图 表上确定的描绘点.“样条函数”这个术语意在 点出这种函数的图象与机械样条画出的曲线很 象.
3-
一.k次样条函数的定义
定义 若函数yf(x)在 [a,b]上连续,对于区间[a,b]
( 4 ) 再 由 三 弯 矩 方 程 边 界 条 件 ( 补 充 两 个 方 程 ) 封 闭 的 方 程 组 , 可 求 出 M i,(i 0 ,1 ,2 ,...,n )9-
1、建立三弯矩方程 在[xi,xi1]上,三次样条函数可表示为 Si(x)ai(xxi )3 bi(xxi )2 ci(xxi )di (i 0, 1,,n1)
4-
二.三次样条插值函数的提法
1.定 义 若 函 数 yf(x)在 [a,b]上 连 续 , 对 于 区 间 [a,b]
上 的 一 个 分 划:ax0x1 xn1xnb 给 定 节 点 上 函 数 值f(xi), i0,1,2, ,n。 若 函 数 S(x)满 足
(1)S(xi ) yi i 0, 1, n; (2)S(x)C2[a,b],即在整体上是二阶连续的;
以下面问题为例介绍三转角插值法.
兰洲交通大学数理学院 1-
4.4 三次样条插值
4.4.1 三次样条插值函数的概念
分段三次Hermite插值函数只有当被插函数在所有插 值节点处的函数值和导数值都已知时才能使用,并且该 插值函数在内节点处的二阶导数一般不连续,因而插值 曲线不是很光滑。在一些实际问题中,我们不可能也没 有必要已知被插值函数在内节点处的导数值。本节将讨 论在科学和工作计算中起到重要作用的一种分段三次插 值,它只在插值区间的端点比Lagrange插值多两个边界 条件,但却在内节点处的二阶导数连续。
Si1(xi)Si (xi), Si'1(xi)Si'(xi), Si''1(xi)Si''(xi), i1,2,...,n1
共 有 (n1)3(n1)4n2个 条 件 ,
3(n1)个条件
缺 两 个 条 件 , 由 边 界 条 件 给 出 。
6-
3.边界条件 常见的边界条件有以下三种:
(1)给定端点一阶导数值
其中ai,bi,ci,di是四个待定系数。(共有4n个待求系数)
设 S" (xi)M i, (i0 , 1 , , n ), M iyi" ,
(1)建 共 立 有 an i ,b1 i个 ,ciM ,di待 i和 求 M 。 i之间的关系 在Si(x)中代入两个端点xi和xi1,并记hi xi1xi,
Sn1(x)
x[x0,x1]; x[x1,x2];
x[xn1,xn];
故 构 造 S (x )需 要 4 n 个 条 件
由 ( 1 ) 已 知 节 点 上 函 数 值 y i , i 0 , 1 , 2 , . . . , n 。 这 是 n + 1 个 条 件
由 ( 2) S(x)C2[a,b],隐 含 着 在 内 节 点 上 应 有
得到
yi Si(xi)ai(xi xi)3bi(xi xi)2ci(xi xi)di di yi1 Si(xi1)aihi3bihi2cihi di
10-
对Si (x)求导 S'i(x)3ai(xxi )2 2bi(xxi )ci S"i(x)6ai(xxi )2bi
于是 Mi S"i(xi )6ai(xi xi )2bi 2bi Mi1 S"i(xi1)6aihi 2bi
(Mi yi'',只是Mi yi'')
( 2 ) 如 能 求 出 M i , 则 可 由 M i 和 y i 构 造 S ( x ) . (3)如何求Mi? 可 利 用 在 节 点 上 一 阶 导 数 连 续 条 件 由Si'1(xi)Si'(xi), i1,2,...,n1 导 出 三 弯 矩 方 程 ( n1个 方 程 要 解 n1个 未 知 数 )
S'(x0) f '(x0), S'(xn) f '(xn) 称为固支边界条件。 (2)给定端点二阶导数值
S"(x0) f "(x0),S"(xn) f "(xn) 特别,当S"(x0) 0和S"(xn) 0
称为自然边界条件。
(3)周期边界条件
S( x0 0) S( xn 0),
S '( x0 0) S '( xn 0)
(3)S(x)在每一个小区间[xi, xi1( ] i 0, 1, n1) 是三次多项式;
则称S(x)为三次样条函数。x1,..., xn1称为内节点,
x0, xn称为外节点.
5-
2、 插 值 条 件 分 析
由(3)S(x)在每个[xi,xi1]上表达式不同,故应分段构造:
S0(x) S(x) S1(x)
S "( x0 0) S "( xn 0)
7-
4 . 构 造 三 次 样 条 插 值 函 数 S ( x ) 的 基 本 方 法
(1)三 弯 矩 插 值 法 (2)三 转 角 插 值 法
三.三弯矩插值法 以 下 面 问 题 为 例 介 绍 三 弯 矩 插 值 法 .
问题 对于分划,已给相应的函数值