您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 三次样条插值在工程拟合中的应用
三次样条插值在工程拟合中的应用摘要:介绍了工程实验、勘测、设计中常见的列表函数之数值插值方法、程序实现及工程应用,应用此法可方便地将任何列表函数计算到工程设计、施工所需要的精确程度,给出了各参数随主要参数变化而变化的光滑曲线,并将其应用推广到一般情况.关键词:列表函数;数值拟合;三次样条插值;MATLAB程序设计与应用在实际工程中,广泛存在这样的问题:根据设计要求和具体的工程条件,在初始设计阶段会勘测得到若干组该工程的控制参数,但这些参数之间彼此离散、不够密集,利用它们来施工则不能满足施工的精度要求.为了解决这一问题,需要对已知的参数数据进行分析处理,进行必要的插值、拟合,以达到施工所需要的数据精度.本文以工程实例为基础,对实际工程中插值方法的选取、插值的实现和插值曲线的拟合加以讨论,提出能得到较合乎实际的插值方法,给出一般工程人员就能实现的计算方法以及能得到光滑曲线的拟合方法.1工程应用实例表1所示的为某双曲拱坝体形原始参数[1对于这一类工程列表参数有一个显著的特点:尽管不同工程的参数多寡不同,但都是由n行k列的离散的列表数据给出,虽然同一行代表某工程特定位置的几个参数(或高程参数,或上游半径参数⋯),但相邻两行由于位置距离太大,两行各参数之间究竟存在什么数值关系,对工程设计、施工有何影响,这是工程技术人员需要弄清楚的[2].以双曲拱坝为例,它沿整个高程的变化是一个连续光滑的空间曲面.从施工需要来看,这些数据太稀疏,难以满足设计、施工放样与钢筋配置等要求,如果照此施工,则有可能达不到工程精度、降低工程效率;从计算机图形模拟来看,要生成这个曲面仅由这一列表函数是得不到光滑曲面的,是不可取的.所以,为使计算精确,满足工程施工过程中任何断面位置、任意水平位置、任意高程位置所必需的施工数据与设计图纸,保证工程施工的高品质,就要求作精确的数据处理.进一步分析可知,在这些参数表中,各行的参数都随某一主要参数的变化而变化,如上游半径参数随高程的变化而变化⋯,它们的这种函数关系,在数值分析中有许多的方法可以求得.但是哪种方法能更好、更合乎实际地给出平滑曲线呢?下面所选的插值方法能够较好地满足这一要求.2插值方法的选择在数值分析中,这种插值过程可具体使用线性(1inear)插值、三次样条(spline)插值、立方(cubic)插值等方法,在曲线插值法中最常用的是线性插值法,它是估计两个主干点之间数值的最简单、最易实现的方法,但采用线性插值法会有以下缺点:一是使得曲线不能显示连接主干点间的凸状弧线;二是使得从曲线导出远期曲线时会形成人为的“尖头”(spikes)[2].因此,通常采用样条法来构造曲线.样条法是用一平滑曲线来对各主干点进行拟合的方法.它是通过构造多项式(一个或一组不同阶多项式)来形成一条把所有主干点连接起来的平滑曲线.一般常常选择三次曲线(根据三次插值样条函数所得的曲线)进行拟合.通常,在[a,b]上的以xi(i=0,1,2,⋯,n)为节点的三次插值样条函数[3]定义如下:给定区间[a,b]的一个划分$:a=x0x1x2⋯xn=b和区间[a,b]上的一个函数f(x),若函数S(x)满足下列条件:(1)一致通过n+1个插值点(xi,yi),即S(xi)=f(xi)=yi(i=0,1,2,⋯,n);(2)二阶连续,即S(x)∈C2[a,b];(3)三次分段,即在每一个小区间[xi-1,xi](i=1,2,⋯,n)上均为三次多项式.则称S(x)为函数f(x)的三次插值样条函数.在构造三次插值样条函数时,为确定S(x)应根据n+1个插值条件,3n-3个连续条件以及给定的边界条件,再利用节点处的一阶导数或二阶导数就可构造出三次插值样条函数.在构造曲线过程中,关键是估计三次多项式函数和确定样条函数形式.从以上理论分析可知,三次活动曲线具有优良的数学特征,而且用三次曲线去拟合时,其结果要比线性插值估计更接近于工程实际情况[4].三次曲线法又可分为三次样条插值法和立方插值法.在数值分析中有许多的方法,限于篇幅,本文仅以工程上用得较多的、具有优良效果的三次样条插值为例介绍插值方法.3插值计算原理三次样条函数的数学原理及其子程序,可见于多种数学著作[5]与算法手册.这里作简单介绍.由于拱坝或其他工程曲面都是连续而光滑的空间曲面,它的断面高程自坝底至坝顶均满足a=j1j2⋯jn=b,且每一位置(高程)都对应有一组几何参数:y1,y2,⋯,yn.如上游半径、下游半径、拱厚等(见表1所列),因此对于一组高程插值点j1=t1t2t3⋯tm≤jn,可用三次自然样条函数S(x)求解它们在各插值点的函数值及其一阶导数S′(x)和二阶导数S″(x).三次样条函数S(x)是用分段三次多项式逼近函数y=f(x),且满足S(x)为区间[a,b]上曲线y=f(x)的三次样条插值函数的三个条件.经两次积分,可得三次样条插值函数S(x)的表达式为利用函数S(x)在样点xi处具有连续二阶导数的条件,再根据三次自然样条插值法,增加自然边界条件得到如下方程组:解上述方程组,求得Mi(i=0,1,2,⋯,n)代入S(x)公式,即可得每个子区间[xi-1,xi](i=1,2,⋯,n)上的三次样条函数.根据上述原理,对工程原始列表数进行插值计算,即可满足多种施工要4插值方法的实现由以上可以看出,三次样条插值的关键是寻找插值函数,但插值函数寻找相当复杂,对于一般的工程人员很难完成,那么怎样才能使三次样条插值这一优秀的插值方法被人们所掌握呢?Mathworks公司推出了功能强大的数学计算软件MAT2LAB[6],它不但使源程序编写简单、源程序代码简短(因为现成的三次样条插值函数可供使用),而且可以利用其强大的作图功能方便地拟合出光滑曲线.因此,本文选用MATLAB语言作为计算语言MATLAB程序设计原理:在以上参数表中,各行的各参数都随高程这一主要参数的变化而变化,根据它们变化的这种函数关系,以高程为插值的已知节点(其中已知节点个数n=6),为使插值结果一致通过这些节点,以1.36为步长调用插值函数进行插值.MATLAB程序设计算法:(1)写入原始参数矩阵,以同一组参数为行,以同一种参数为列;(2)产生插值的精度矩阵,在最小值与最大值之间以1.36为步长,产生矩阵;(3)调用MATLAB中的三次样条插值函数,产生插值结果矩阵,以对每一种参数的插值结果为行产生矩阵,再转置.MATLAB程序设计:x0=[470∶1.36∶504];out=[x0;spline(x(1∶6),x(7∶12),x0);spline(x(1∶6),x(13∶18),x0);spline(x(1∶6),x(19∶24),x0)spline(x(1∶6),x(25∶30),x0);spline(x(1∶6),x(31∶36),x0);spline(x(1∶6),x(37∶42),x0)]′运算数据分析:(1)这组运算数据一致通过已知节点,而且偏差较小、数学处理和程序设计都大大简化(与文献[1]相比).(2)经过以上的运算,可以使原来仅有的6组数据变为26组,而且还可以根据工程人员的需要对上述程序步长进行修改,就可任意提高精度,从而使工程人员能够更好地了解各种参数在各点的数据,使工程精度大大提高5插值曲线拟合当然,无论以多么小的数为步长、无论给出多少组数据,这些参数还是一些离散的数据,在有些情况下,工程人员要了解某些数据随某一主要参数的变化而变化的连续曲线,这时,可以在数据插值的基础上,发挥MATLAB在图形处理上的强大功能,对以上插值所得的数据进行曲线拟合,以便更好地了解各参数随某一主要参数变化而变化的趋势.在以上插值数据的基础上,在上面程序的尾部编写MATLAB作图程序,作图程序如下,运行后得到图1所示插值拟合曲线.plot(x0,out(27∶52),‘-’)holdonplot(x0,out(53∶78),‘-+’)plot(x0,out(79∶104),‘∶’)plot(x0,out(105∶130),‘--’)plot(x0,out(131∶156),‘-3’)plot(x0,out(157∶182),‘-.’)legend(‘上游半径’,‘下游半径’,‘拱厚’,‘半中心角’,‘圆心距’,‘淤沙高程’)holdoffgridon从图1中,可以看到各参数随高程的变化而变化的曲线,从而更好地去了解各参数的变化规律,实现对工程各参数的整体把握,这是一般数值处理方法所无法实现的.6小结以上仅为三次样条插值及其实现方法的一个实例,本文在插值方法的选择上选取了能够得到平滑曲线的、具有优良数学特征的三次样条插值法;在插值的实现上选取了具有强大计算功能的数学软件MATLAB,它能够以较少的编码,较简单的语句实现这一复杂的计算,并能得到较合理的结论;在曲线的拟合上我们在插值的基础上同样选取具有强大图形处理功能的MATLAB软件,从而形成较准确、较平滑、较合实际的曲线.总之,以上所提供的方法是三次样条插值和MATLAB科学计算语言在工程中应用的一个实例,它能使计算较简便,又能很好地满足光滑性要求,使曲线也不失真.实现了工程数学、计算数学、程序设计的结合与简化.三次样条插值不仅在工程方面,而且在测绘、勘察、预测等方面都有着十分广泛的应用参考文献:[1]彭荣利,靳萍,欧阳建国.工程列表函数的数值拟合与应用[J].武汉大学学报(工学版),2002,35(4):42~45.[2]王瑞华.水利工程数据插值计算及图形处理[J].农田水利与小水电,1994(8):15~19.[3]鞠时光,郭伟刚.实用三次样条插值函数[J].小型微型计算机系统,1992,13(9):20~23.[4]谢赤,钟钻.插值法在零息收益曲线构造中的实证研究[J].数量经济技术经济研究,2002(4):31~34.[5]曾绍标,韩秀芹.工程数学基础[M].北京:科学出版社,2001.[6]王沫然.MATLAB与科学计算(第2版)[M].北京:电子工业出版社,2003
本文标题:三次样条插值在工程拟合中的应用
链接地址:https://www.777doc.com/doc-169795 .html