Pure Mathematics 理论数学, 2013, 3, 362-367 http://dx.doi.org/10.12677/pm.2013.36055 Published Online November 2013 (http://www.hanspub.org/journal/pm.html) New Solution of Cubic Spline Interpolation Function Yongchun Liu, Qiang Wang School of Science, Anhui University of Science and Technology, Huainan Email: 179532330@qq.com Received: Sep. 17th, 2013; revised: Sep. 26th, 2013; accepted: Sep. 30th, 2013 Copyright © 2013 Yongchun Liu, Qiang Wang. This is an open access article distributed under the Creative Commons Attribution Li- cense, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Abstract: In this article, based on analysis of three turning angles algorithm of cubic splin e interpolation, the cubic spline interpolation is generalized on the condition of the second boundary. The methods are presented on the condition that the second derivative of arbitrary two nodes is given. At the end of the article, this cal- culation method is illustrated through an example. Keywords: Cubic Spline Interpolation; Second Boundary; Second Derivative 三次样条插值函数的新解法 刘永春,王 强 安徽理工大学理学院,淮南 Email: 179532330@qq.com 收稿日期:2013 年9月17 日;修回日期:2013 年9月26 日;录用日期:2013 年9月30 日 摘 要:本文在分析了三次样条插值里三转角算法的基础上,对第二种边界条件的情形进行了推广, 研究了此情形下任意两插值点二阶导数已知的样条函数的解法。文章的最后,通过一个例子,说明了 此计算方法。 关键词:三次样条插值;第二边界条件;二阶导数 1. 引言 在现在的工程设计中,期间经常会出现函数值计算的问题。但是,具体问题中产生的函数关系一般都会非 常繁琐,更有甚者的是没有确定的解析式。为了解决上述实际工程问题,数学中函数逼近的思想也随之发展。 其中,插值法是函数逼近的一种重要的方法。人们常用的插值法有 Lagrange 插值,Newton 插值,Hermite 插值 和分段多项式插值等等,本文所研究的三次样条插值其实是一种改进的分段插值[1],而在此之前,大多数的文 献研究的是第二种边界条件中两端点处的二阶导数值已知的情况下三次样条插值函数的求法,但在实际的工程 问题中,有时端点处的值不好得到,所以本文对其情形进行了推广[2],研究了在此边界条件下任意两点的二阶 导数值已知的情形下插值函数的解法,有了此解法,我们可以在任意的情形下得到其插值函数。传统意义上的 解法是直接要解出的矩阵,即解带有个未知数的 n个方程组,当插值点很大,即 n很大的时候,计算量 是很繁重的,而本文引入了追赶法对其插值函数进行了求解,因为其矩阵是三对角线性方程组满足了追赶法求 解的要求,计算量会大大减小。 nnn 2. 三对角线性方程组的追赶法 若线性方程组 A xb中,系数矩阵 A 满足,当 1ij 时,就有 0 ij a ,则称 A 是三对角方阵,同时把方 Open Access 362 刘永春,王强 三次样条插值函数的新解法 程组叫做三对角线性方程组。 11 22 2 111nnn nn ac da c A dac da 如果满足 11 0ac 0 nn ad 2,3, ,1 iii acdi n ,则称 A 为对角占优的矩阵。 定理 1 三对角方阵 A 如果为对角占优矩阵,则 A 有三角分解 11 222 11 1 1 1 1 nn nn uc luc A lu lu 1n c 其中,为写出的元素是 0,而 由下式计算,即: , ij lu 11 1 1 2,3, , i ii iiii ua d li u ualc n 将系数矩阵 A 分解成两对角阵 的乘积后解三对角线方程组LU A xb 可化为求解两个三角形方程组 Ly b 。 Ux y 1) 用追的过程解 Ly b 11 22 11 1 1 1 1 1 1 1 ii ii nn yb ly yb ly lyb 2 i n b b 得 11 1 2,3, , iiii yb in ybly 。 2) 用赶的方法解Ux y 111 1 222 2 11 iii i ii nn n ucx y ucx y ucxy x y ux y Open Access 363 刘永春,王强 三次样条插值函数的新解法 得 1 1,, 2,1 n nn iii ii y xuin ycx xu 。 3. 三次样条插值函数 设在区间 ,ab 上取 个节点,给定这些点的函数值1n01 n axxx b 0,1,2,, ii f xfin。 若 s x满足条件: 1) 2, s xCab; 2) ,0,1,2,, ii s xfi n ; 3) 在每个小区间 1 , ii x x上, s x是三次多项式。则称 s x为三次样条插值函数。 三次样条插值函数[3]是分段三次多项式,在每个小区间 1 , ii x x上可以写成 32 ,0,1,2,, iiii Sxaxbxcx din1, 其中和 为待定系数。所以, ,, iii abc i d s x共有 个待定参数。根据4n s x在 ,ab 0,1,2 上二阶导数连续的条件,在节 点 处应满足连续性条件,共有 个条件。再加上 2, 1n 0,1, i xi , 0 kk ii sx 0,ksx 31n1n 个插值条件,共有个条件。因此,还需要 2个条件才能确定4n2 s x。通常在区间 ,ab 端点 和 0 axn xb 上 各加一个条件(称为边界条件),可根据实际问题的要求给定。通常有以下三种: 1) 已知两端的一阶导数值,即 00 ,nn Sx fSx f ; 2) 已知两端的二阶导数值,即 00 ,nn Sx fSx f , 其特殊情况为 00, 0 n Sx Sx ; 3) 周期边界条件 此时,对函数值有周期条件 0,0,1, kk n SxSx k20n f f 。 以给定端点的二阶导数值情况(第二种边界条件)来讨论,根据 Hermite 插值函数[4,5], s x在每个区间 1 ,0,1,2,, ii xx in 1上的表达式为 22 11 1 33 1 22 11 1 22 22 iii iii ii i iii i ii ii hxxxx hxxxx Sxf f hh xx xxxxxx mm hh 即 101 101 ii i iiiiii iiii xx xxxxxx Sxff hmhm hhhh 1 i i 。 其中 22 01 22 01 121,32, 1, 1 x xx xx xxx xxx x (1) Open Access 364 刘永春,王强 三次样条插值函数的新解法 对 求二次导数 Sx 1 11 1 22 3 62 62 464 2ii ii ii ii ii i xx x xx xxx x Sxmmf f hh h 1 ii (2) 记 ,对于第二边界条件中 0,1, , ii mSxin 0,n ff ,已知,参数 由下列方程组确定 01 ,,, n mm m 00 11 11 11 11 21 12 12 12 nn nn nn me me uu me uu me (3) 式中 11 1 1 11 1 1, 2,,, 1, 2,,1, 311,2,,1 iii i iii iii i ii i ii hxxi n hin hh fff f ei hh n 01 0010 1 3,, 3, 22 n nnn hh efxx fefxxf n 此方程组可采用追赶法[6,7]求解出 。 01 ,,, n mm m 4. 第二种边界条件的其它情况 第二种边界条件一般给出 , 00 Sxf n Sx f n ,即 0,n x x(两个端点)处的二阶导数 0,n f f ,下面我们研 究任意其它两个二阶导数已知的情况下的三次样条插值。 假设 j f 和k f 已知,不失一般性,不妨设 jk ,此时根据插值函数 Sx的二次导函数表达式,代入(2)我 们有 11 1 11 23, 2 23 ,2 j j jjj k kk kk h mm fxxf h mmfxx f j k 。 再结合方程组(3)的关系式,方程组第 个方程——第 个方程组成的子方程组如下 j k 1 1 11 1 1 11 1 1 1 3, 21 2 12 12 12 3, 2 j j jj j j jj j k kk k kk kk k h f xx f m m uu e m uu e mh f xx f 这是三对角方程组,可以用追赶法求解出 11 ,,,, j jk mmm m k 。 把已知的 1 , j j mm 结合方程组(3)的关系,则有第 1个方程——第 1j 个方程组成的子方程如下 Open Access 365 刘永春,王强 三次样条插值函数的新解法 110 1 221 2 2232 1211 11 12 12 12 12 12 jjjj jjjjj j jjjj uum e uum e uume umeum umeumm j 此方程组为 的上三对角方程,先计算出jj1 j m ,然后很容易得依次计算出 。 23 1 ,,,, jj mm mm 0 k 同理 把已知的 结合方程组(3)的关系,则有第 1, k mm 1k 个方程——第 个方程组成的子方程如下 n 11 12 11 223 2 11 1 21 21 12 12 kk kk kk kk kkk kkk k nnn n um em um um eum uum e uume 此方程组为 nk nk的下三对角方程,先计算出 1k m ,同样地很容易得依次求出 。 23 1 ,,,, kk n mm mm n 5. 计算实例 设在节点 上,函数 0,1,2, ,10 i xii f x的值为 01,11,21,33,4 1,52,68,71,82,92,103ffffff ffff f , 求三次样条差值函数 s x,满足条件 36 1, 1sxsx (结果保留小数点后四位)。 根据本文上述所说,可先将求出,即第 4个方程到第 7个方程构成新的子方程组,如下: 3456 ,,,mmmm 3 4 5 6 2 111.5 0.52 0.51.5 0.5 2 0.513.5 12 1.5 m m m m 这是三对角方程组,可用追赶法求解,得到 3456 4.9444,1.6111, 8.3889,4.9445mmmm 。 接下来,我们将所求的 代入上文所研究的 34 4.9444,1.6111mmjj 的上三对角方程中,即在此例中 构成 的上三对角方程组,如下: 33 0 1 2 0.520.5 0 0.525.4772 0.5 7.69435 m m m 我们先计算出 ,然后依次计算出 215.3887m10 50.6004, 187.0129mm 。 最后,我们再将 代入上文的 56 8.3889, 4.9445mm nknk 的下三对角方程中,即在此例子中构成 子 的下三对角方程组,如下: 44 7 8 9 10 0.5 4.09455 2 0.56.5278 0.520.5 1.5 0.52 0.51.5 m m m m 我们先计算出 ,然后依次计算出 78.1891m8910 45.8120, 178.0589,663.4236mmm 。 Open Access 366 刘永春,王强 三次样条插值函数的新解法 Open Access 367 最后,结合将所求的代入(1)式经过化简,我们得到三次样条插值函数如下 22 22 22 22 2 1189.0129152.600453.6004 ,0,1 248.6004 49.6004113.3887 25.7774,1,2 317.388733.7774210.944435.8332 ,2,3 41.05550.166830.38892.5556 ,3,4 53.6111 13.4 xxxx x xxxxx xxx xx xxxx x xx sx 2 22 22 22 22 44444.388919.9445 ,4,5 612.388959.9445520.9445133.667 ,5,6 711.055558.33366.189142.3237 ,6,7 810.189170.3237749.812400.496,7,8 9(41.812336.496)8174. xx x xxxxx xxxx x xxx xx xxx 22 05891564.5301 ,8,9 10182.05891636.53019669.42366697.236 ,9,10 xx xxx xx 利用 Matlab 画出其三次样条插值函数的图像[8,9]如图 1所示。 Figure 1. Cubic spline interpolation curve 图1. 三次样条插值曲线 参考文献 (References) [1] 朱立勋, 安玉萍 (2007) 一个关于三次样条插值收敛性的证明. 吉林建筑工程学院学报 , 3, 94-96. [2] 郭昌言, 高尚 (2011) 三次样条插值的推广. 科学技术与工程 , 7, 1507-1510. [3] 许小勇, 钟太勇 (2006) 三次样条插值函数的构造与 Matlab 实现. 兵工自动化 , 11, 76-78. [4] Clements, J.C. (1990) Convexity-preserving pieeewise rational cH-bic interDolat io n. SIAM Journal on Numerical Analysis, 27, 38-46. [5] Duan, Q., Zhang, Y.F. and Twizell, E.H. (2006) A bivariate rational interpolation and the properties. Applied Mathematics and Computation, 179, 190-199. [6] 林成森 (1997) 数值计算方法.科学出版社, 北京, 152-164. [7] 张诚坚 (1999) 计算方法.高等教育出版社, 北京, 77-81. [8] 王能超 (2010) 计算方法——算法设计及其 MATLAB 实现. 华中科技大学出版社, 武汉, 45-50. [9] Delbourgo, R. (1993) Accurate C2 rational interpolations intension. SIAM Journal on Numerical Analysis, 30, 595-603. |