数值分析实验报告2——Runge现象
- 格式:docx
- 大小:140.72 KB
- 文档页数:9
数值分析课程实验报告——插值逼近
题目一.Runge 函数的插值
1. Runge 函数
Runge 函数的表达式为:
2
1()125R x x =+ 其在[-1,1]区间上的函数图像如图1.1。在课程学习中我们知道,对Runge 函数进行高次插值时有可能在两端出现不收敛的情况,即Runge 现象。下面将分别用四种不同的插值方法在[-1,1]区间上对Runge 函数进行插值,并分析是否产生Runge 现象,比较插值效果。
图1.1.Runge 函数在[-1,1]区间的函数图像
2.Newton 插值
首先根据课本上的Newton 插值算法进行编程(代码略)。核心思想就是用符号变量进行中间运算,以便将最终的插值函数用符号表达式表示出来,并进一步生成图像。此处插值节点选择为等距插值节点,即:
0.1(0,1,2,,)i x ih i =-+= (20)
其中h=0.1。插值曲线与原曲线的对比如图1.2(蓝色为原曲线,红色为插值曲线)。从图中看出,在区间中部,二者吻合较好;但在区间两端二者则产生了明显偏差,甚至可以达到一个非常大的数值(e20量级)。因此,在等距节点的20次Newton 插值下,产生了明显的Runge 现象。
图1.2.Newton 插值曲线与原曲线对比
3. Lagrange 插值
此处同样是根据Lagrange 插值的具体算法进行编程。但插值节点不再是等距分布,而是如下形式:
21cos()(0,1,2,,)42
i i x i π+==…20 插值曲线与原曲线的对比如图1.3(蓝色为原曲线,红色为插值曲线)。从图中看出,插值曲线与原曲线吻合的很好,没有产生明显的Runge 现象。对比产生了明显Runge 现象的20次Newton 插值,Lagrange 插值的最高次数虽然也是20,但由于此处的插值节点不是等距分布的(事实上,此处采用的插值节点正是Chebyshev 多项式的零点),而是中间疏两边密,因此两侧较密的节点很好地抑制了Runge 现象。
图1.3. Lagrange插值曲线与原曲线对比
4.分段线性插值
分段线性插值是这几种插值方法中最容易处理的一个,只需要将每个节点对应的函数值求出再将相邻的数据点两两用直线相连即可。此处采用了等距节点,所得插值曲线与原曲线对比如图1.4(蓝色为原曲线,红色为插值曲线)。从图中
图1.4. 分段线性插值曲线与原曲线对比
看出,此处分段线性插值的效果也还是不错的,二者只在区间中部略微存在一些偏差,而在其他区域整体上吻合的很好,并且不存在Runge现象。这是由于分段线性插值通过对插值区间分段的方法将插值函数的次数有效降低,因而即使是等距节点分布,也很好地避免了出现Runge现象的倾向。
5.三次样条插值
三次样条插值是这四种插值方法中编程最麻烦的,但并不是说存在多大的技术难度,只是因为插值过程中的步骤比较繁琐,因而代码也显得较为冗长。此处依然采用等距节点,所得插值曲线与原曲线对比如图1.5(蓝色为原曲线,红色为插值曲线)。从图中看出,三次样条插值的效果比分段线性插值更胜一筹,三次样条插值曲线和原曲线在整个插值区间都基本处于重合状态,几乎没有肉眼可见的偏差。同样,由于三次样条插值的插值函数最高次数只有3,在等距节点下也没有产生Runge现象。
图1.5.三次样条插值曲线与原曲线对比
题目二.分段函数的插值
1. 分段函数
定义在[-1,1]区间的分段函数的函数表达式为:
sin ,101()cos ,0210,12
x x f x x x x ππ⎧⎪-≤<⎪⎪=≤<⎨⎪⎪≤≤⎪⎩ 其函数图像如图2.1。分段函数最大的特点就是在个别点上函数值或导数值存在突变,因此可以预计,除了可能出现的Runge 现象外,在那些突变点附近的插值结果也可能会出现较大的偏差。下面将分别采用之前的四种插值方法在该函数的[-1,1]定义域内对其进行插值。
图2.1.分段函数图像
2.Newton 插值
首先根据课本上的Newton 插值算法进行编程。此处插值节点选择为等距插值节点,即:
0.1(0,1,2,,)i x ih i =-+= (20)
其中h=0.1。插值曲线与原曲线的对比如图2.2(蓝色为原曲线,红色为插值曲线)。从图中看出,与Newton 法对Runge 函数的插值结果相比,Newton 法对于该分段函数的插值效果显得更加糟糕:不仅在区间两端产生了极强烈的震荡(即Runge 现象),就连区间中部也存在较小的上下震荡。因此,从整体来看,几乎所有距插值节点稍远的点都存在较大的偏差,这表明该分段函数在等距节点下的20次Newton 插值效果非常不理想。
图2.2.Newton 插值曲线与原曲线对比
3. Lagrange 插值
此处同样是根据Lagrange 插值的具体算法进行编程。但插值节点不再是等距分布,而是如下形式:
21cos()(0,1,2,,)42
i i x i π+==…20 插值曲线与原曲线的对比如图2.3(蓝色为原曲线,红色为插值曲线)。从图中看出,与同样次数的Newton 法相比,Lagrange 法所得的插值曲线虽然在区间中部的分布与其相似,但在区间两端较好地收敛到了原曲线上,即较好地消除了Runge 现象。这同样是因为此处的插值节点不是等距分布的(事实上,此处采用的插值节点正是Chebyshev 多项式的零点),而是中间疏两边密,因此两侧较密的节点很好地抑制了Runge 现象。
图2.3. Lagrange插值曲线与原曲线对比
4.分段线性插值
分段线性插值是这几种插值方法中最容易处理的一个,只需要将每个节点对应的函数值求出再将相邻的数据点两两用直线相连即可。此处采用了等距节点,
图2.4. 分段线性插值曲线与原曲线对比