数值分析上机实验报告(插值)..doc
文本预览下载声明
数值分析第一次上机练习实验报告
——Lagrange插值与三次样条插值
问题的描述
设, ,取,.试求出10次Lagrange插值多项式和三次样条插值函数采用自然边界条件)用图画出, .
方法描述——Lagrange插值与三次样条插值
,,通过在点的函数值来对原函数进行插值,我们记插值函数为,要求它满足如下条件:
(1)
我们在此处要分别通过Lagrange插值三次样条插值进行插值,看两种方法的插值结果,并进行结果的比较。
10次的Lagrange插值
(2)
其中:
我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange插值上给出的节点做出的插值多项式近似于,而多项式的次数越高逼近的精度就越好。但实际上并非如此,而是对任意的插值节点,当的时候不一定收敛到;而是有时会在插值区间的两端点附近会出现严重的偏离的现象,即所谓的Runge现象。因此用高次插值多项式近似的效果并不总是好的,因而人们通常在选择插值方式的时候不用高次多项式插值,而用分段低次插值,而这样的插值效果往往是非常好的,能够克服高次多项式插值的弱点,达到令人满意的效果。
分段低次插值包括分段线性插值、分段三次Hermite插值、三次样条插值等。前两种插值函数都具有一致收敛性,但是光滑性较差,而在实际问题中我们往往要求函数具有二阶光滑度,即有二阶连续导数。而对第三种插值方式,我们得到的是一个样条曲线,它是由分段三次曲线拼接而成,在连接点(即样点)上二阶导数连续。
我们记三次样条插值函数为,它在每个小区间上是三次函数,因此在每个区间上需要确定4个参数,总共有10个小区间,因此共需确定40个未知参数。首先我们有插值条件:
(3)
其次在每个节点上满足连续性条件:
(4)
此外在端点处满足自然边界条件:
(5)
我们假设。则在每个小区间上:
(6)
其中:
及
我们利用边界条件(3)(4)(5)可以得到:
(7)
其中:
以及
两端点处的边界条件为:
(8)
将边界条件写成矩阵形式为:
(9)
其中根据自然边界条件:
,将他们代入(6)就可以得到各段区间上的的值。
方案设计
10次Lagrange插值三次样条插值10次Lagrange插值多项式,此程序将返回的值;Mspline.m是根据(9)计算各节点二阶导数值的子程序文件,它将会返回在自然边界条件下的各节点的二阶导数值;然后spline.m是根据以及(6)计算三次样条插值函数的子程序文件。然后运行主程序将给出三幅曲线图,分别是与曲线,与曲线,以及、与三条曲线共同画在一幅图上得到的图象。
解决这个问题的思路很简单,按部就班的来就可以。首先我们计算各节点上的函数值以备后用,然后调用Mspline.m计算。随后我们给出一系列的值,计算,并分别调用L10.m与spline.m分别计算与。然后根据我们得到的数据绘图观察插值结果。具体程序的实现可参见所给程序的相关注释。
计算结果及其分析处的的原函数的值、Lagrange插值结果与样条插值结果;以及绝对误差和,相对误差,。由于在两端点处进行Lagrange插值插值的时候可能出现Runge现象,因此我们在两端点附近多给了几个点的数据。
x f(x) L10(x) S(x) 误差
L10(x)-f(x) 相对误差
(L10(x)-f(x))/ f(x) 误差
S(x)-f(x) 相对误差
(S(x)-f(x))/ f(x) -1.00 0.10000 0.10000 0.10000 0.00000 0.00000 0.00000 0.00000 -0.98 0.10370 0.41597 0.10409 0.31228 3.01147 0.00040 0.00383 -0.96 0.10759 0.56881 0.10823 0.46122 4.28677 0.00064 0.00592 -0.94 0.11170 0.61150 0.11245 0.49980 4.47440 0.00075 0.00669 -0.92 0.11604 0.58445 0.11680 0.46841 4.03656 0.00076 0.00651 -0.90 0.12063 0.51779 0.12131 0.39716 3.29244 0.00069
显示全部