三次样条插值方法在工程实践中的应用

上传人:re****.1 文档编号:485479677 上传时间:2023-05-25 格式:DOC 页数:10 大小:118KB
返回 下载 相关 举报
三次样条插值方法在工程实践中的应用_第1页
第1页 / 共10页
三次样条插值方法在工程实践中的应用_第2页
第2页 / 共10页
三次样条插值方法在工程实践中的应用_第3页
第3页 / 共10页
三次样条插值方法在工程实践中的应用_第4页
第4页 / 共10页
三次样条插值方法在工程实践中的应用_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《三次样条插值方法在工程实践中的应用》由会员分享,可在线阅读,更多相关《三次样条插值方法在工程实践中的应用(10页珍藏版)》请在金锄头文库上搜索。

1、南昌航空大学数学与信息科学学院实验报告课程名称:计算方法实验名称:实验类型:验证性 综合性口 设计性口实验室名称:D 504班级学号: 08061115学生姓名:杨朝峰任课教师(教师签名):成 绩:实验日期:2009-11-13公路平面曲线的设计一、实验目的由实验一,我们已经对插值的思想和原理有了更深入的理解。从中可以知道,分段低次插值 虽然解决了高次插值的振荡现象和数值不稳定现象,使得插值多项式具有一致收敛性,保证了插 值函数整体的连续性,但在函数插值节点处不能很好地保证光滑性要求,这在某些要求光滑性的 工程应用中是不能接受的。如飞机的机翼一般要求使用流线形设计,以减少空气阻力。因此,在 分

2、段插值的基础上,引进了一种新的插值方法,在保证原方法的收敛性和稳定性的同时,又使得 函数具有较高的光滑性。通过本实验的学习,应掌握样条插值的基本思想和原理,熟悉样条插值法的程序编制,能用 来解决实际问题。最好能绘出插值函数的曲线,并与实验一中的几种插值法的图象进行比较。二、实验原理、方法该题是一个实际问题。其中关键的是,我们所设计的公路必须满足汽车的安全和旅客舒适等 要求,而安全又是重中之重,因此只要解决这个问题,那本题就解决了一大部分了。实际解题时,可能需要用到三次样条插值,这是分段插值的一种,但是又比简单的分段线性 插值和抛物插值要复杂一些。由于已进行过插值的理论学习,前面实验也已做过分段

3、插值方面的 练习,其算法和编程应自行设计。三、实验题目1问题提出目前在我国公路的平面曲线设计中,主要以直导线与元曲线的组合以及直导线与复曲线的组 合为主,在解决曲线的顺适性(即光滑性)方面,也只用了缓合曲线来进行直线与曲线,曲线与 曲线间的过渡。这种设计模式,在地形和其他条件受到限制的条件下,必然会使设计标准降低, 设计结果不能很好地满足规范要求。所以在当前立体交叉桥的环道线性设计中,以及一些先进发 达国家的公路平面设计中,正在试图突破以往设计模式,寻找和探讨一种较理想的设计方法。而 在某些情况下,样条插值便是一种有效的方法。下面是一个关于公路平面曲线设计的实际问题:吉林省辉南县到靖宇县,地处

4、长白山脚下,为山岭重丘区,地形复杂,冬季多雪。从辉南县 到靖宇县的二级公路中,有一地形限制较严重的曲线段,经实地测得数据如下(为方便起见,设 以曲线两端点的连线方向为坐标 x轴方向,以连线的法方向为坐标y轴方向):x50.00 100.00 150.00 200.00 250.00y23.2143.5650.0043.5623.21且知二级公路山岭重丘区的曲线极限半径为R=60 m,试寻找一种方法,设计一条平面曲线,使之既通过限定很死的地形点,而又能满足设计规范规定的曲线要素要求,并通过计算加密施工 控制点,进行实地敷设地面。2 解题要求试寻找一种方法,设计一条平面曲线,使之既通过限定很死的地

5、形点,而又能满足设计规范 规定的曲线要素要求,并通过计算加密施工控制点,进行实地敷设平面曲线。四、实验公式及程序框图1.基本公式:hi=Xi-Xi-i(i=1,2,n)fx i-i ,xi=(f(x i)-f(x i-i )/ (Xi-xi-i)(i=1,2,n)Ui=hi/(hi+hi+i)(i=1,2,n-1)Vi= hi/ (hi+hi+i)= 1-Ui(i=1,2,n-1)gi=6*(fx i+i ,Xi-fx i,Xi-i)/(hi+hi+i)(i=1,2,n-1)2程序框图:2.源程序代码:#i nclude #in elude mai n()float x5=50,100,150

6、,200,250,y5=23.21,43.56,50.00,43.56,23.21;float h5,f5,u5,r5,g 5 ,b5,t 5,M 5;int i,n=4;for(i=1;i=n ;i+)hi=xi-xi-1;/*求出相邻 x 的差*/fi=(yi-yi-1)/hi;/*求出 fxi,xi+1*/for(i=1;in;i+)/*求出 ui、ri 、gi*/ui=hi/(hi+hi+1);ri=1-ui;gi=6*(fi+1-fi)/(hi+hi+1);b1=r1/2;for(i=2;in-1;i+)/*求出 bi*/bi=ri/(2-ui*bi-1);t1=g1/2;for(i

7、=2;i0;i-)/*求出 Mi*/Mi=ti-bi*Mi+1;for(i=0;i n ;i+)prin tf(M%d=%fn,i,Mi);for(i=1;i=n ;i+)prin tf(s%d(x)=%f(%f-x)A3+(%f)*(x-%f)A3+(%f)*(%f-x)+(%f)*(x-%f)n, i,Mi-1/(6*hi),xi,Mi/(6*hi),xi-1,(yi-1-Mi-1*hi*hi/6)/hi,xi,(yi-Mi*hi*hi/6)/hi,xi-1);四、实验过程中需要记录的数据:在程序中,主要记录的数据有hi , Ui, w,g以及最重要的是在区间x i-i ,Xi的三次插值函

8、数的二阶导数 M,最后输出在各个小区间内的三次样条插值函数 即可。五、实验数据处理及结果分析在程序检查无误时,在 win-TC上运行并看结果,结果如图:hl=-0.007330M2=-9.004063M3=-0Q-m+x-50-O0SGBB2=-0.0000000 yya-x? +1 - 03385? * x-i bs -3=-0.0000i4A3*A3+*+C0-932266?*m-1G0-8066603 4*(x-200_000000Press any key to continue *-结果分析:由计算机算出的应该没有错,但是在输出Si(x)时的形式不怎么规范,因此可以把结果写成: 当

9、x 属于(50.00, 100.00)时s(x)=-0.000024(x-50.000000)3+0.464200(100.000000-x)+0.932286(x-50.000000)当 x 属于(100.00, 150.00)时s(x)=-0.000024(150.000000-x)3-0.000014(x-100.000000) 3+0.932286(150.000000-x)+1.033857(x-100.000000)当 x 属于(150.00, 200.00)时33s(x)=-0.000014(200.000000-x)-0.000024(x-150.000000)+1.03385

10、7(200.000000-x)+0.932286(x-150.000000)当 x 属于(200.00, 250.00)时s(x)=-0.000024(250.000000-x)3+0.000000(x-200.000000) 3+0.932286(250.000000-x)+0.464200(x-200.000000)六、实验中存在的问题及解决方案在编程的过程中,开始没有很好的区分和利用三次样条的公式,导致实验一直是错 误地答案,与事实不相符。而且在实验的输出结果中无法用一种很好的方式输出正 确的形式,最终只能用 s%d(x)=%f(%f-xF3+(%f)*(x-%f)A3+(%f)*(%f

11、-x)+(%f)* (x-%f)的形式输出结果。并且在该实验程序中有太多的循环,导致循环的次数有时 会搞错,而且又要合理的利用每次循环的次数,才能达到一个正确的结果。七、心得体会通过本次编程,在一定程度下进一步对样条插值的思想和原理有了更深入的理解,也了解了分段低次插值虽然解决了高次插值的振荡现象和数值不稳定现象。同时也通过此次的综合性实验,让我更加地清楚认识到利用样条插值法,能用来解决实际公路问题,也说明计算方法在实际中利用之广泛。 既然与实际问题有如此密切的 关系,在一定程度上激发了我对计算方法的进一步学习的兴趣。不论怎样,利用c语言编程,对我来讲确实有一定的难度,使得在做同一个实验时,我花费的时间比别 人更多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号