- 2
- 0
- 约8.12千字
- 约 56页
- 2017-09-21 发布于浙江
- 举报
数值的分析5-2研
三次样条插值函数 定义5.3 给定区间[a , b]上n+1个节点: a = x0 x1 … xn = b,已知 f(xj) = yj (j = 0,1,···,n), 如果 满足: (1) S(xj) = yj ( j = 0,1,···,n) ; (2) S(x)在 [xj,xj+ 1]上为三次多项式; (3) S”(x)在区间[a,b]上连续。 则称 S(x)为三次样条插值函数. 三次样条插值 当x∈[xj , xj+ 1] ( j= 0,1,…n-1 )时 Sj(x)= aj + bj x + cj x2 + dj x3 n个三次多项式, 待定系数共4n个! 由样条定义,可建立方程(4n-2)个! 插值条件: S(xj) = yj ( j = 0,1,···,n) n+1 连续性条件: S(xj+0) =S(xj-0) ( j = 1,···,n-1) n-1 S’(xj+0) =S’(xj-0) ( j = 1,···,n-1) n-1 S”(xj+0) =S”(xj-0) ( j = 1,···,n-1) n-1 三次样条插值 方程数少于未知数个数 ? 边界条件: (1)已知端点一阶导数: S’(x0)=f ’(x0), S’(xn)=f ’(xn) (2)已知端点二阶导数: S”(x0)=f ”(x0), S”(xn)=f ”(xn) 特殊地,自然边界条件: S”(x0)=0, S”(xn)=0 三次样条插值 3)当f(x)是以 (x-x0) 为周期的周期函数时,则要求 S(x)也是周期函数,这时边界条件应满足 三次样条插值 如何建立三次样条函数? 的三次样条S(x)是一组三次多项式,设为 经过给定的n+1个节点 这一形式,已经利用了n个插值条件 待求的未知量减少了n个,现在还需要求解的未知量为3n个。 三次样条插值 利用连续性条件中,样条函数在节点处连续,可以写出如下n个方程: 利用连续性条件中,样条函数的一阶导数在节点处连续,可以写出如下n-1个方程: 三次样条插值 利用连续性条件中,样条函数的二阶导数在节点处连续,可以写出如下n-1个方程: 式(2)、(3)、(4)提供了3n-2个方程,要求解 3n 个未知量,还差两个方程。将通过端点条件给出。 若直接求解,因为方程之间相互耦合,难度较大。 先对方程进行解耦,然后再求解。 利用少量代数知识,先求解有关ci的方程组(3),接着求出用ci表示的关于bi和di的显式方程。 三次样条插值 为简化计算过程,引入额外的符号 以及简化符号 由(2)式可解出 由(4)式可解出 三次样条插值 把上两式代入(3)式,可以得到以下n-1个关于c的方程 为简单起见,设端点处的边界条件为自然样条条件,它可以再给出两个方程: (7)和(8)式给出了n+1个未知量ci的总共n+1个方程,写成如下的矩阵形式: 三次样条插值 (9) 上述方程组对于 ci 永远可以求解,因为它的系数矩阵是严格对角占优阵。 三次样条插值 定理5.8 设 ,对一组数据点 其中xi不相同,存在唯一的自然三次样条拟合这些点。 在区间[xi, xi+1]上的自然三次样条为 对于不是自然端点条件的其它样条,则只需要改变方程组(9)的第一行和最后一行即可。 例5.8 求经过(0, 3), (1, -2), (2, 1)的自然三次样条。 解:x坐标分别为: y坐标分别为: 三次样条插值 x坐标差分别为: y坐标差分别为: 将数据代入(9),可写出 解出 三次样条插值 满足条件的自然三次样条为 进一步由(5)和(6)可求出 三次样条插值 三次样条插值算法 输入:插值节点的x,y坐标;输出:三次样条参数b,c,d构成的矩阵 1)对所有节点,依次计算相邻节点的x坐标差deltax和y坐标差deltay 2)填充方程组(9)的系数矩阵和右端向量 3)求解方程组(9),得到系数c 4)求解方程组(5),得到系数d 5)求解方程组(6),得到系数b 各个小区间上的自然三次样条为: Si(x)=yi+bi(x-xi)+ci (x-xi)2+di (x-xi)3, i=1, …, n-1 function coeff=splinecoeff
原创力文档

文档评论(0)