数值分析插值实验.docx

上传人:夺命阿水 文档编号:1114468 上传时间:2024-03-15 格式:DOCX 页数:6 大小:86.90KB
返回 下载 相关 举报
数值分析插值实验.docx_第1页
第1页 / 共6页
数值分析插值实验.docx_第2页
第2页 / 共6页
数值分析插值实验.docx_第3页
第3页 / 共6页
数值分析插值实验.docx_第4页
第4页 / 共6页
数值分析插值实验.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数值分析插值实验.docx》由会员分享,可在线阅读,更多相关《数值分析插值实验.docx(6页珍藏版)》请在课桌文档上搜索。

1、数值分析第一次上机练习实验报告Lagrange插值与三次样条插值一、问题的描述设/()=+12,X1,1,取Xi=-1+(,i=0,1,2,.,10.试求出10次Lagrange插值多项式1.lO(X)和三次样条插值函数Sa)(采用自然边界条件),并用图画出/(x),Z10(x),S(X).二、方法描述LagraIIge插值与三次样条插值百来对原函数进行插值,我们取Xj=-I+(,i=0,1,2,.,10,通过在Xj点的函数值/(%)=我们记插值函数为g(x),要求它满足如下条件:g(工)=/(%)=+;.,i=,L2,10(1)我们在此处要分别通过Lagrange插值(即多项式插值)与三次样

2、条插值的方法对原函数二进行插值,看两种方法的插值结果,并进行结果的比拟。)l+9IO次的Lagrange插值多项式为:IOLIO(X)=M(x)J=O其中:%;g2,z=0,1,2,.,101 +vXj以及43=(。);(厂/)Z=OJ,2,.,10我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange插值。理论上我们根据区间上给出的节点做出的插值多项式4(x)近似于/(x),而多项式4(力的次数越高逼近/(x)的精度就越好。但实际上并非如此,而是对任意的插值节点,当f+a的时候4(力不一定收敛到大);而是有时会在插值区间的两端点附近会出现严重的4(力偏离/(x)的

3、现象,即所谓的RUnge现象。因此用高次插值多项式4(力近似/(x)的效果并不总是好的,因而人们通常在选择插值方式的时候不用高次多项式插值,而用分段低次插值,而这样的插值效果往往是非常好的,能够克服高次多项式插值的弱点,到达令人满意的效果。分段低次插值包括分段线性插值、分段三次Hermite插值、三次样条插值等。前两种插值函数都具有一致收敛性,但是光滑性较差,而在实际问题中我们往往要求函数具有二阶光滑度,即有二阶连续导数。而对第三种插值方式,我们得到的是一个样条曲线,它是由分段三次曲线拼接而成,在连接点(即样点)上二阶导数连续。我们记三次样条插值函数为S(X),它在每个小区间七,专川,/=0,

4、1,2,.,9上是三次函数,因此在每个区间上需要确定4个参数,总共有10个小区间,因此共需确定40个未知参数。首先我们有插值条件:S(Xj)=v,j=0,1,2,.,10(3)j+)xj其次在每个节点Xrj=1,2,.,9上满足连续性条件:S(Xj-O)=S(Xj+0),S(xy-)=S(.),Sm(x.-O)=SmO)(4)此外在端点处满足自然边界条件:(5)SFo)=S”(-1)=0,Syo)=S=0我们假设S(七)=Mj,j=0,L2,.0。那么在每个小区间勺,巧+J,/=0,1,2,.,9上:S(X) = Mj(iJl6hjk-)hJy川一X-Xj)hJ(6)其中:,%,=0,1,2,

5、.,9hj=xj+-j我们利用边界条件可以得到:jMh+2fy+jMj+l=djij=1,2,.,9其中:Vihi,j=k+hj以及dj = 66xi,x7,xi两端点处的边界条件为:(8)Mo=MO=O将边界条件写成矩阵形式为:Mq其中根据自然边界条件(8)有:4)=zzo=,4)=4o=我们解方程就可以得到Mj,j=0,l,.,10,将他们代入就可以得到各段区间上的S(X)的值。三、方案设计我们通过编写MaHab程序来进行10次Lagrange插值与三次样条插值的工作。在我们的程序文件中interplotion.m文件是主程序文件;LlO.m文件是计算10次Lagrange插值多项式L(x

6、)的子程序文件,给它任一个XT1,此程序将返回LlO(X)的值;MSPline.m是根据(9)计算各节点二阶导数值M/,/=0,1,2,.,10的子程序文件,它将会返回在自然边界条件下的各节点的二阶导数值;然后SPIinem是根据以及(6)计算三次样条插值函数Sa)的子程序文件。然后运行主程序将给出三幅曲线图,分别是“力与Zlo(X)曲线,/(力与Sa)曲线,以及/(力、ZlO(X)与Sa)三条曲线共同画在一幅图上得到的图象。解决这个问题的思路很简单,按部就班的来就可以。首先我们计算各节点看上的函数值K=/(XJ以备后用,然后调用MSPIine.m计算Mj,j=0,1,2,.,10。随后我们给

7、出一系列X的值,计算一(力,并分别调用L10.m与spline.m分别计算Z10(%)与S(X)。然后根据我们得到的数据绘图观察插值结果。具体程序的实现可参见所给程序的相关注释。四、计算结果及其分析下面是我们根据程序计算结果得到的数据,其中分别给出了在各典型X处的的原函数的值/(X)、Lagrange插值结果OO(X)与样条插值结果S(X):以及绝对误差ZIO(Jr)-/(力和S(X)-/(九)湘对误差AIo()八,9()/圣二)。由于在两端点处进行Lagrange插值插值的时候可能出现Runge现象,fx)fx)因此我!门在两端2附近多隼了几个点,数据。XI/)IZJoa)IS(X)I误差I

8、相对误差I误差|相对误差L0(x)-J(x)(L0(x)-x)/fix)S(x)-J(x)(S(x)-fix)/fix)-1.000.100000.100000.100000.000000.000000.000000.00000-0.980.103700.415970.104090.312283.011470.000400.00383-0.960.107590.568810.108230.461224.286770.(X)()640.(X)592-0.940.111700.611500.112450.499804.474400.(X)0750.(X)669-0.920.116040.58445

9、0.116800.468414.036560.000760.00651-0.900.120630.517790.121310.397163.292440.000690.00569-0.880.125480.433290.126040.307812.453130.000570.00452-0.860.130610.346080.131030.215471.649740.000420.00320-0.840.136050.266050.136310.130010.955600.000260.00192-0.820.141810.199()60.141930.057250.403680.(X)012

10、0.(XX)82-0.800.147930.147930.147930.000000.000000.000000.00000-0.700.184840.110100.18484-0.07474-0.404330.000000.00000-0.600.235850.235850.235850.000000.000000.000000.00000-0.500.307690.333830.306400.026140.08494-0.00129-0.00419-0.400.409840.409840.409840.000000.000000.000000.00000-0.300.552490.5393

11、50.55629-0.01314-0.023780.003800.(X)689-0.200.735290.735290.735290.000000.000000.000000.00000-0.100.917430.922470.915160.005Q40.00549-0.00227-0.002470.001.000001.000001.000000.000000.000000.000000.000000.100.917430.922470.915160.005040.00549-0.00227-0.002470.200.735290.735290.735290.000000.000000.00

12、0000.00000()3()0.552490.539350.55629-0.01314-0.02378().(X)38()0.(X)6890.400.409840.409840.409840.000000.000000.000000.000000.500.307690.333830.306400.026140.08494-0.00129-0.004190.600.235850.235850.235850.000000.000000.000000.000000.700.184840.110100.18484-0.07474-0.404330.000000.000000.800.147930.1

13、47930.147930.000000.000000.000000.000000.820.141810.199060.141930.057250.403680.(X)0120.(X)()820.840.136050.266050.136310.130010.955600.000260.001920.860.130610.346080.131030.215471.649740.000420.003200.880.125480.433290.126040.307812.453130.000570.004520.900.120630.517790.121310.397163.292440.00069

14、0.005690.920.116040.584450.116800.468414.036560.000760.006510.940.111700.611500.112450.499804.474400.(X)0750.(X)6690.960.107590.568810.108230.461224.286770.000640.005920.980.103700.415970.104090.312283.011470.000400.003831.000.100000.100000.100000.000000.000000.000000.00000尽管从数据可以看出一些端倪,但是通过图象我们更能清楚

15、地看到最终插值结果的定性情况。首先我们给出/(X)与ZIo(X)曲线:其中蓝色的曲线代表/(X)曲线,绿色的曲线代表ZIoa)曲线。可见此时两者之间具有很大的差异,尤 其在端点附近会出现严重的LlO(X)偏离/(x)的现象,即出现了所谓的RUnge现象。而此时/(x)曲线 与我们用样条插值得到的S(X)的曲线为: 1 0.9 0.8 0.7 0.6 0.5 04 0.3 02 01-1Q 8-06-0 40200.2040.60.81其中蓝色的曲线代表/(x)曲线,绿色的曲线代表S(X)曲线,可见两条曲线几乎完全重合,S(X)与/(x)符合的很好。上面我们由曲线定性看到的结论也可以通过表中的数

16、据定量的看出。五、结论插值方法中最根本的是多项式插值,而我们可以通过Lagrange多项式来方便的实现这种插值方式。理论上我们根据给定区间上的给定的节点做出的插值多项式4(x)近似于/(x),而多项式4(同的次数越高逼近/()的精度就越好。但实际上对任意的插值节点,当71+8的时候4(力不一定收敛到/(x);而是有时会在插值区间的两端点附近会出现严重的4(%)偏离“X)的现象,即所谓的RUnge现象。因此用高次插值多项式4(%)近似/(力的效果并不总是好的,而我们通过本次试验中的实际计算发现对本次试验中的函数确实出现了RUnge现象,插值结果很不令人满意;我们转而采用分段的三次样条插值,得到了非常好的插值效果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号