数值分析课程实验报告——插值逼近
题目一.Runge函数的插值
1. Runge函数
Runge函数的表达式为:
1
1?25x2其在[-1,1]区间上的函数图像如图1.1。在课程学习中我们知道,对Runge函数进
R(x)?行高次插值时有可能在两端出现不收敛的情况,即Runge现象。下面将分别用四种不同的插值方法在[-1,1]区间上对Runge函数进行插值,并分析是否产生Runge现象,比较插值效果。
图1.1.Runge函数在[-1,1]区间的函数图像
2.Newton插值
首先根据课本上的Newton插值算法进行编程(代码略)。核心思想就是用符号变量进行中间运算,以便将最终的插值函数用符号表达式表示出来,并进一步生成图像。此处插值节点选择为等距插值节点,即:
xi??0.1?ih(i?0,1,2,…,20)
其中h=0.1。插值曲线与原曲线的对比如图1.2(蓝色为原曲线,红色为插值曲线)。从图中看出,在区间中部,二者吻合较好;但在区间两端二者则产生了明显偏差,甚至可以达到一个非常大的数值(e20量级)。因此,在等距节点的20次Newton插值下,产生了明显的Runge现象。
图1.2.Newton插值曲线与原曲线对比
3. Lagrange插值
此处同样是根据Lagrange插值的具体算法进行编程。但插值节点不再是等距分布,而是如下形式:
2i?1?)(i?0,1,2,…,20) 42插值曲线与原曲线的对比如图1.3(蓝色为原曲线,红色为插值曲线)。从图中看
xi?cos(出,插值曲线与原曲线吻合的很好,没有产生明显的Runge现象。对比产生了明显Runge现象的20次Newton插值,Lagrange插值的最高次数虽然也是20,但由于此处的插值节点不是等距分布的(事实上,此处采用的插值节点正是Chebyshev多项式的零点),而是中间疏两边密,因此两侧较密的节点很好地抑制了Runge现象。
图1.3. Lagrange插值曲线与原曲线对比
4. 分段线性插值
分段线性插值是这几种插值方法中最容易处理的一个,只需要将每个节点对应的函数值求出再将相邻的数据点两两用直线相连即可。此处采用了等距节点,所得插值曲线与原曲线对比如图1.4(蓝色为原曲线,红色为插值曲线)。从图中
图1.4. 分段线性插值曲线与原曲线对比