高等数值分析插值程序题Runge现象
插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)
插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)插值是数值分析中的一种方法,通过已知数据点的函数值来估计函数在其他点的值。
MATLAB提供了多种方法来实现插值,包括牛顿差商插值、插值误差分析、龙格现象和切比雪夫插值。
下面将详细介绍这些方法的实现原理和MATLAB代码示例。
1.牛顿差商插值:牛顿差商插值是一种基于多项式插值的方法,其中差商是一个连续性的差分商。
该方法的优势在于可以快速计算多项式的系数。
以下是MATLAB代码示例:```matlabfunction [coeff] = newton_interpolation(x, y)n = length(x);F = zeros(n, n);F(:,1)=y';for j = 2:nfor i = j:nF(i,j)=(F(i,j-1)-F(i-1,j-1))/(x(i)-x(i-j+1));endendcoeff = F(n, :);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,返回值coeff表示插值多项式的系数。
2.插值误差分析:插值误差是指插值函数与原始函数之间的差异。
一般来说,通过增加插值节点的数量或使用更高次的插值多项式可以减小插值误差。
以下是MATLAB代码示例:```matlabfunction [error] = interpolation_error(x, y, x_eval)n = length(x);p = polyfit(x, y, n-1);y_eval = polyval(p, x_eval);f_eval = sin(pi*x_eval);error = abs(f_eval - y_eval);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,x_eval表示插值节点的x坐标,error表示插值误差。
3.龙格现象:龙格现象是插值多项式在等距插值节点上错误增长的现象。
数值分析实验报告--实验2--插值法
1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。
计算方法大作业1 克服Runge现象
x3
x2
x
1
S1 ( x)
-0.34685
0.2086
0.073964
0.038462
S2 (x)
S (xi 0 ) S x(i 0 )
S
'
(xi
0) S
xi' (
0 )i
S
'
'
x(i
0)S
xi' ' (
0)
1 ,n2, . . . , 1
(1)
这里共有了 3n-3 个条件,再加上条件(2)中的 n+1 个插值条件,共有 4n-2 个条件,
因此还需要 2 个方程才能确定 S (x) .通常可在区间[a, b]的端点 a x0,b xn 上各加一个边
dn1
1
2
Mn
dn
(6)
2 1
2
2
2
1 M1 d1
M2
d2
n 1
2
n
1
M
n
1
dn1
n
n 2 M n dn
由式(1)内点拼接条件,可得
i M i1 2M i i M i1 d j i 1, 2,..., n 1
(3) (4)
其中
i
hi 1 hi1
, hi
i
hi hi 1
数值分析Runge-Kutta-Fields方法
孙琪
【自适应龙格—库塔—费尔贝格方法】 在龙格—库塔方法中设计一个自动调节步长的方法,Fehlberg 在四阶方法和五阶方法 中选择参数从而得到具有相同函数赋值点的不同阶数的两个公式,因此只需要六个函 数赋值,便得到一个基于步长控制的局部截断误差的估计,所得到的龙格—库塔—费 尔贝格方法是五阶的。这些公式给出解的不同的近似值:
数值分析第七次程序作业
PB09001057
【问题】
应用 RKF45 或 RKF54 方法,设计实现自适应方法,求解如下常微分方程初值问题: y‘ = eyx + cos (y − x) y 1 =3 初值步长取为 h=0.01.在自适应方法中步长的选取采用第二种策略。 在解溢出前终止。 程序的输出:解的范围[1,?] 提示输入一个介于上述范围的值,应x 的值,横轴代表 t 的值,我们可以看到这与我们计算得到的结果是相同的, 所以我们得到了正确的结果。
【Mathematica 程序】
6
x t+h =x t +
i=1 6
ai Fi
x t+h =x t +
i=1 i −1
bi Fi
Fi = hf(t + ci h, x +
j=1
dij Fj )
误差项为:
6
e = x t+h −x t+h =
i=1
(ai − bi )Fi
其中公式中要求的多项式系数都已给出。 同时,另一个通用的每步控制误差的公式是: h = 0.9h[ δ 1/(1+p) ] e
取 M=100,δ = 10−5 ,b=2 得到:
二、
取 h=0.01,采取第二种策略 即有采用公式: h = 0.9h[ δ 1/(1+p) ] e
数值分析Runge现象计算实验
数值分析实验报告(02)一、实验目的通过上机绘制Runge 函数图像,理解高次插值的病态性质。
二、实验内容在区间[-1,1]上分别取n=10,n=20用两组等距节点对龙格(Runge)函数21()125f x x =+作多项式插值,对每个n 值分别画出()f x 和插值函数的图形。
三、编程思路(相关背景知识、算法步骤、流程图、伪代码)四、程序代码(Matlab 或C 语言的程序代码)function yt=Untitled8(x,y,xt)%UNTITLED5 ´Ë´¦ÏÔʾÓйش˺¯ÊýµÄÕªÒª% ´Ë´¦ÏÔʾÏêϸ˵Ã÷n=length(x);ny=length(y);if n~=nyerror('²åÖµ½ÚµãxÓ뺯ÊýÖµy²»Ò»ÖÂ');endm=length(xt);yt=zeros(1,m);for k=1:nlk=ones(1,m);for j=1:nif j~=klk=lk.*(xt-x(j))/(x(k)-x(j));endend ;yt=yt+y(k)*lk;endn=input('n=');x=linspace(-1,1,n);y=1./(1+25.*x.^2);xf=linspace(-1,1,100);yf=1./(1+25.*xf.^2)xl=xf;yl=Untitled8(x,y,xf);plot(xf,yf,'-b',xl,yl,'-r')五、数值结果及分析(数值运行结果及对结果的分析)当n=10时当n=20六、实验体会(计算中出现的问题,解决方法,实验体会)出现符号错误,代码函数变量不明重新输入,查询错误,找到并改正编码需要认真仔细,一定要头脑清晰,避免出现一些低级错误。
数值分析Runge插值逼近
1. 对Runge 函数22511)(x x R +=用在区间[-1, 1]下列条件作插值逼近,并和)(x R 的图像进行比较。
(1) 用等距节点ih x i +-=1,h=0.2, 绘出它的10次Newton 插值多项式的图像。
(2) 用节点)2212cos(1π++-=i x i (i=0,1,…,10),绘出它的10次Newton 插值多项式的图像。
(3) 用等距节点ih x i +-=1,h=0.2, 绘出它的分段线性插值多项式的图像。
(4) 用等距节点ih x i +-=1,h=0.2, 绘出它的三次自然样条线性插值多项式的图像。
解:Newton 插值曲线与原曲线比较x 轴y 轴当x 在中间取值范围时,Newton 插值曲线与原曲线比较接近,但是当x 在两端时,Newton 插值曲线与原曲线相差越来越大,出现了Runge 现象。
插值余项∏=-=ni in n x x x x x x f x R 010)(],,,,[)( .由插值多项式的唯一性知)()(x N x L n n =,因此,牛顿插值与拉格朗日插值有相同的余项表达式,即∏∏==+∈-=-+=-=ni i n ni i n n n b a x x x x x f x x n f x N x f x R 000)1(],[),(],,,[)()!1()()()()(ξξ 由此有)!1()(],,,[)1(0+=+n f x x x f n n ξ .牛顿前插公式为002000!)1()1(!2)1()(f n n t t t f t t f t f th x N nn ∆+--++∆-+∆+=+ .其余项为),(),()!1()()1()()()(010n n n n x x f h n n t t t th x N x f x R ∈+--=+-=+ξξ牛顿后插公式为n nn n n n n f n n t t t f t t f t f th x N ∇-++++∇++∇+=+!)1()1(!2)1()(2 . 其余项为),(),()!1()()1()()()(0)1(1n n n n n n x x f h n n t t t th x N x f x R ∈+++=+-=++ξξLagrange 插值曲线与原曲线比较x 轴y 轴在这里由于x 不是等距节点,Lagrange 插值曲线与原曲线比较接近,没有出现Runge 现象。
高等数值分析插值程序题Runge现象
⾼等数值分析插值程序题Runge现象插值程序题1.对Runge函数RR(xx)=1/(1+25xx2)在区间[-1,1]做下列插值逼近,并和RR(xx)的图像进⾏⽐较,并对结果进⾏分析。
(1)等距节点xx ii=?1+ii?,?=0.1,0≤?≤20,20次netown插值多项式图像;(2)节点xx ii=cos?2ii+142ππ?,(i=0,1,2,…,20),20次Lagrange插值多项式的图像;(3)等距节点xx ii=?1+ii?,?=0.1,0≤?≤20,20次分段线性插值函数图像;(4)等距节点xx ii=? 1+ii?,?=0.1,0≤?≤20,20次三次样条插值函数的图像。
解:(1)20次等距节点netown插值多项式和R(xx)的图像⽐较图如下所⽰(求值点之间的间隔为0.0001,以下相同):从图像可以看出,在插值区间中部netown插值多项式与原Runge函数符合得较好;但在插值区间的两端两者的差别很⼤(netown在区间[-1,-0.9]的最⼩值为-59.7819),此时的插值余项不满⾜要求,因此⽤等距20次netown插值多项式来对Runge 函数在区间[-1,1]做插值逼近并不合适,会出现明显的Runge现象。
(2)20次⾮等距节点Lagrange插值多项式(切⽐雪夫多项式零点插值)和R(xx)的图像⽐较图如上所⽰。
此时插值的节点并不等距,插值节点两边密,中间疏,虽然此时Lagrange插值多项式也是20次,但相⽐等距netown插值,⾮等距Lagrange插值曲线与原函数吻合得很好,没有出现明显的Runge现象,两端⽐较密的插值节点较好地抑制了Runge现象。
为了⽐较节点选取对⾼次插值结果的影响,⽤20次等距Lagrange插值也原函数在区间[-1,1]进⾏了插值,其与原函数图像⽐较如下:其图像与(1)中netown插值⼏乎⼀样,因此对⾼次插值多项式,插值时适当的选取插值节点,能有效的抑制Runge现象。
数值分析实验报告(二)插值多项式的收敛性实验
数值分析实验报告
姓名
学号
系别
数学系
班级
主讲教师
王丹
指导教师
王丹
实验日期
专业
课程名称
数值分析
同组实验者
无
一、实验名称:
实验二、插值多项式的收敛性实验
2.给定函数 ,利用上题编好的Langrage插值程序(或Newton插值程序),分别取3个,5个、9个、11个等距节点作多项式插值,分别画出插值函数及原函数 的图形,以验证Runge现象、分析插值多项式的收敛性。
三、实验步骤(或记录)
五、教师评语(或成绩)Leabharlann 教师签字:年月日二、实验目的:
1.理解插值的基本原理;
2.掌握多项式插值的概念、存在唯一性;
3.编写MATLAB程序实现Lagrange插值和Newton插值,验证Runge现象、分析插值多项式的收敛性。
三、实验内容及要求:
1.已知数据如下:
0.2
0.4
0.6
0.8
1.0
0.98
0.92
0.81
0.64
0.38
(1)用MATLAB语言编写按Langrage插值法和Newton插值法计算插值的程序,对以上数据进行插值;(2)利用MATLAB在第一个图中画出离散数据及插值函数曲线。
数值分析实验报告2——Runge现象
数值分析课程实验报告——插值逼近题目一.Runge 函数的插值1. Runge 函数Runge 函数的表达式为:21()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,,)42i i x i π+==…20 插值曲线与原曲线的对比如图1.3(蓝色为原曲线,红色为插值曲线)。
从图中看出,插值曲线与原曲线吻合的很好,没有产生明显的Runge 现象。
对比产生了明显Runge 现象的20次Newton 插值,Lagrange 插值的最高次数虽然也是20,但由于此处的插值节点不是等距分布的(事实上,此处采用的插值节点正是Chebyshev 多项式的零点),而是中间疏两边密,因此两侧较密的节点很好地抑制了Runge 现象。
实验三:Runge现象的产生和克服
实验三:Runge现象的产生和克服程序1:lagrange多项式插值syms f x p dp lx L;f=1/(1+25*x^2);N=input('请输入插值节点数N='); xx=-1:2/N:1;p=1; L=0;ff=zeros(1,length(xx));for i=1:(N+1)x=xx(i);ff(i)=eval(f);syms x;p=p*(x-xx(i));enddp=diff(p);for j=1:(N+1)x=xx(j);k=eval(dp);syms x;lx=p/((x-xx(j))*k);L=L+lx*ff(j);endaa=[-0.96:0.1:-0.06,0,0.06:0.1:0.96]; for i=1:length(aa)x=aa(i);S(i)=eval(L);fff(i)=eval(f);ende=0;for i=1:length(aa)e=e+(S(i)-fff(i))^2;ende=sqrt(e/(20*21));fprintf('插值偏差为e=%.6f\n',e) ezplot(f,[-1,1])hold onezplot(L,[-1,1])hold onplot(xx,ff,'*')hold onplot(aa,S,'o')hold off程序2:分段线性插值syms f x p lx;f=1/(1+25*x^2);N=input('请输入插值节点数N='); xx=-1:2/N:1;p=1; L=0; ff=zeros(1,length(xx));for i=1:(N+1)x=xx(i);ff(i)=eval(f);endsyms xfor i=1:Nfor j=1:(N+1)if j==ilx(i,j)=(x-xx(i+1))/(xx(i)-xx(i+1));else if j==i+1lx(i,j)=(x-xx(i))/(xx(i+1)-xx(i));elselx(i,j)=0;endendendendp=lx*ff';aa=[-0.96:0.1:-0.06,0,0.06:0.1:0.96]; for i=1:length(aa)x=aa(i);for j=1:N+1if x<xx(j)breakendendS(i)=eval(p(j-1));fff(i)=eval(f);ende=0;for i=1:length(aa)e=e+(S(i)-fff(i))^2;ende=sqrt(e/(20*21));fprintf('插值偏差为e=%.6f\n',e) ezplot(f,[-1,1])hold onxxx=(-1:0.01:1);for i=1:length(xxx)x=xxx(i);for j=1:N+1if x<xx(j)breakendendSS(i)=eval(p(j-1));endplot(xxx,SS,'r')hold onplot(xx,ff,'*')hold onplot(aa,S,'o')hold off程序3:三转角插值法syms f x df s s1 s2 s3 s4;f=1/(1+25*x^2);df=diff(f);N=input('请输入插值节点数N=');h=2/N;xx=-1:2/N:1;p=1; L=0;ff=zeros(1,length(xx));for i=1:(N+1)x=xx(i);ff(i)=eval(f);dff(i)=eval(df);endsyms xfor i=1:Ns1=(x-xx(i+1))^2*(h+2*(x-xx(i)))*ff(i)/h^3; s2=(x-xx(i))^3*(h+2*(xx(i+1)-x))*ff(i+1)/h^ 3;s3=(x-xx(i+1))^2*(x-xx(i))*dff(i)/h^2; s4=(x-xx(i))^2*(x-xx(i+1))*dff(i+1)/h^2;s(i)=s1+s2+s3+s4;endaa=[-0.96:0.1:-0.06,0,0.06:0.1:0.96];for i=1:length(aa)x=aa(i);for j=1:N+1if x<xx(j)breakendendS(i)=eval(s(j-1));fff(i)=eval(f);ende=0;for i=1:length(aa)e=e+(S(i)-fff(i))^2;end e=sqrt(e/(20*21));fprintf('插值偏差为e=%.6f\n',e)ezplot(f,[-1,1])hold onxxx=(-1:0.01:1);for i=1:length(xxx)x=xxx(i);for j=1:N+1if x<xx(j)breakendendSS(i)=eval(s(j-1));endplot(xxx,SS,'r')hold onplot(xx,ff,'*')hold onplot(aa,S,'o')hold off程序4:三弯矩插值法:syms f x ddf s;f=1/(1+25*x^2);ddf=diff(diff(f));N=input('请输入插值节点数N=');h=2/N;xx=-1:2/N:1;p=1; L=0;ff=zeros(1,length(xx));for i=1:(N+1)x=xx(i);ff(i)=eval(f);ddff(i)=eval(ddf);endsyms xfor i=1:NA=(ff(i+1)-ff(i))/h-h*(ddff(i+1)-ddff(i))/6;B=ff(i)-h^2*ddff(i)/6;s(i)=(xx(i+1)-x)^3*ddff(i)/(6*h)+(x-xx(i))^3 *ddff(i+1)/(6*h)+A*(x-xx(i))+B;endaa=[-0.96:0.1:-0.06,0,0.06:0.1:0.96];for i=1:length(aa)x=aa(i);for j=1:N+1if x<xx(j)breakendendS(i)=eval(s(j-1));fff(i)=eval(f);ende=0;for i=1:length(aa)e=e+(S(i)-fff(i))^2;ende=sqrt(e/(20*21));fprintf('插值偏差为e=%.6f\n',e) ezplot(f,[-1,1])hold onxxx=(-1:0.01:1); for i=1:length(xxx)x=xxx(i);for j=1:N+1if x<xx(j)breakendendSS(i)=eval(s(j-1)); endplot(xxx,SS,'r')hold onplot(xx,ff,'*')hold onplot(aa,S,'o')hold off图1:观察Runge现象图3:三转角插值:。
数值分析实验报告Hermite插值法、Runge现象,比较Language插值、分段线性插值、分段三次Hermie插值
山东师范大学数学科学学院实验报告x 0.1 0.5 1 1.5 2 2.5 3y 0.95 0.84 0.86 1.06 1.5 0.72 1.9y' 1 1.5 2 2.5 3 3.5 4求质点在时刻1.8时的速度,并画出插值多项式的图像。
1)运用Hermite插值法画出图像,如图4-1,并求质点在时刻1.8时的速度。
>>clear>>clc>>X=[0.1 0.5 1 1.5 2 2.5 3;0.95 0.84 0.86 1.06 1.5 0.72 1.9;1 1.5 2 2.5 3 3.5 4];>> x=0.1:0.01:3;>> H=Hermite1(X,x);>> plot(x,H)>> hold on>> plot(X(1,:),X(2,:),'r*')>> H1_8=Hermite(X,1.8);>> plot(1.8,H1_8,'go')>> legend('插值图像','原始点','目标点');图4-1二、验证高次插值的Runge现象问题分析和算法设计(一)Language插值代码function [Ln] =Lagrange(X,x)%请输入2*n+1矩阵X,X中第一行每个元素都是插值节点,X中第二行每个元素都是插值节点对应的函数值;%第二章P24例一拉格朗日插值n=size(X,2);d=0;for m=1:1:nif x==X(1,m);d=m;breakendend运行结果和总结 运行结果 例:给定函数55,11)(2≤≤-+=x xx f ; (1) 验证表2-10的误差结果(高次插值的Runge 现象);(2) 以0.1为步长分别进行Language 插值、分段线性插值、分段三次Hermite插值,画出三种插值函数以及f(x)的图像,比较三种插值结果。
高次插值RUNGE现象的可视化教学初探
(Ν ) (n + 1) !
( n+ 1 )
n
∏ (x i= 0
x i)
( ii)
由 ( ii) 可看出插值节点的个数 n + 1 越大 , 误差 越小。 然而 , ( ii) 是有条件的, 即在指定的区间 [ a , b ] 上 f ( x ) 不仅要有高阶导数, 而且要求高阶导数有一 致的界 , 通常利用 m ax �f a ≤x ≤b 随着 n 的增大, M
上述工作在实际教学中节省了课时 , 有助于学 生理解所学习的内容, 激1 ]李 庆扬 . 科 学计算方法 基础 [M ] . 北京: 清华大 学出版社 2006 . [ 2 ] 孙志忠. 计 算 方法典 型 例题分 析 [M ]. 北 京: 科学 出 版
我校的计算方法课程在新修订的 《宿州学院本 科 人才培养方案》 中被设定为本科少学时课程, 含 实验课在内共 54 学时。 但要求并未降低 , 仍然要全 面地讲解各类数值计算问题的算法, 并要求能够在 满足教学大纲的基础上留有提高的空间。 为了较好 地实施该课程的教学 , 我们在教学方法与教学手段 的改进 方面进 行了一 些思考 , 本文仅 以高 次插值 R unge 现象的可视化教学探讨为例。
摘要: 本文给 出了L agrange 插值的M at lab 脚本文件, 实现了高次插值 R unge 现象的图形演示, 并结 合图形分析 了
R unge 现象产生的原因, 这种探讨可促进教学及其研究。
关键词: 插值; R unge 现象; 可视化 中图分类号: O 241 . 3 文献标识码: A 文 章编 号: 1673- 2006 (2008) 05- 0147- 03
148
完成教学计划规定的内容后, 直接进入企业上岗实 习, 给学生提供了直接参与生产实践、 展示技能、 强 化实践能力的锻炼机会。 学校通过这些相对稳定的 实习、 就业基地建设 , 密切与行业的联系, 做到学用 结合 , 取得了良好的成效。 学生充实到企业的工作岗 位后 , 进一步促进了校企的合作与交流 , 实现了学校 与企业的双赢。 职业教育是国家教育事业的重要组成部分 , 是 经济、 社会发展和劳动就业所需人才培养的重要渠 道之一。目前 , 在经济转型、 人才需求和就业结构发 生很大变化的社会大环境中, 我们面临的挑战是严 峻的 , 承受的压力也是空前的 , 但只要通过我们广大 职教工作者的不懈努力与辛勤求索 , 就一定能培养 出更多具有较强专业技能, 适应行业发展需要的高 素质旅游人才。
数值分析-插值函数的震荡现象
数值分析课程设计多项式插值的振荡现象远露冬201030770134指导教师李娇娇讲师学院名称理学院专业名称数学与应用数学提交日期2012年6月一、 问题的提出考虑在一个固定区间上用插值逼近一个函数。
显然,Lagrange 插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式增加时,Ln(x)是否也更加靠近被逼近的函数。
龙格(Runge)给出的一个例子是极著名并富有启发性的。
设区间[-1,1]上的函数:二、 实验内容考虑区间[-1,1]的一个等距划分,节点为则拉格朗日插值多项式为其中的a i(x),i=0,1,2,…,n 是n 次Lagrange 插值基函数。
1)选择不断增大的分点数n=2,3,4,5,6,7,8,9,101.画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像;2.给出每一次逼近的最大误差;2)选择定义在区间[-5,5]上的函数重复上述实验看其结果如何。
3)区间[a,b]上切比雪夫(Chebychev)点的定义为以x1,x2,…,xn+1为插值节点构造上述各函数的Lagrange 插值多项式,比较其结果。
以下均用Matlab 软件绘制图象 (实线:f(x) 虚线:Ln(x))。
在这里为方便作比较,对于每个函数的不同的n 的取值都有上下两个函数图像比较,一组采用平均插值点,一组采用切比雪夫插值点, 并分别给出了两函数的误差最大值。
21()125f x x=+21,0,1,2,,i ix i nn=-+= 201()()125nn ii iL x a x x ==+∑(21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭对于函数: x ∈[-1,1]当n=2时平均插值点图像如下,此时max|f(x)- L2(x)|=0.6462-1-0.8-0.6-0.4-0.200.20.40.60.8100.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L2(x)|=0.6006.-1-0.8-0.6-0.4-0.200.20.40.60.81-0.50.5121()125f x x =+当n=3时平均插值点图像如下,此时max|f(x)- L3(x)|=0.7070.-1-0.8-0.6-0.4-0.200.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L3(x)|=0.7503.-1-0.8-0.6-0.4-0.20.20.40.60.8100.10.20.30.40.50.60.70.80.91当n=4时平均插值点图像如下:此时max|f(x)- L4(x)|= 0.4384-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2切比雪夫插值点图像如下,此时max|f(x)- L4(x)|=0.4020.-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2当n=5时平均插值点图像如下:此时max|f(x)- L5(x)|= 0.4327-1-0.8-0.6-0.4-0.200.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L5(x)|=0.5559-1-0.8-0.6-0.4-0.20.20.40.60.8100.10.20.30.40.50.60.70.80.91n=6时平均插值点图像如下:此时max|f(x)-L6(x)|=0.6169-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2切比雪夫插值点图像如下,此时max|f(x)- L6(x)|=0.2642-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2-1-0.8-0.6-0.4-0.200.20.40.60.8100.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L7(x)|=0.3917-1-0.8-0.6-0.4-0.20.20.40.60.8100.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L8(x)|=0.1708-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2-1-0.8-0.6-0.4-0.200.20.40.60.81-0.4-0.20.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L9(x)|=0.2692-1-0.8-0.6-0.4-0.20.20.40.60.8100.10.20.30.40.50.60.70.80.91当n=10时平均插值点图像如下:此时max|f(x)- L10(x)|= 1.9157-1-0.8-0.6-0.4-0.200.20.40.60.81-0.500.511.52切比雪夫插值点图像如下,此时max|f(x)- L10(x)|=0.1092-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2对于函数:()41h x xx +=x ∈[-5,5]当n=2时平均插值点图像如下, 此时max|f(x)- L2(x)|= 0.5687-5-4-3-2-1012345-0.8-0.6-0.4-0.200.20.40.6切比雪夫插值点图像如下,此时max|f(x)- L2(x)|= 0.5677.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6切比雪夫插值点图像如下,此时max|f(x)- L3(x)|= 0.5092.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6切比雪夫插值点图像如下,此时max|f(x)- L4(x)|= 0.5549.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6平均插值点图像如下, 此时max|f(x)- L5(x)|=0.6584.-5-4-3-2-1012345-0.8-0.6-0.4-0.200.20.40.60.8切比雪夫插值点图像如下,此时max|f(x)- L5(x)|= 0.3514.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6平均插值点图像如下, 此时max|f(x)- L6(x)|=0.4545.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6切比雪夫插值点图像如下,此时max|f(x)- L6(x)|= 0.5179.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6平均插值点图像如下, 此时max|f(x)- L7(x)|=1.4420.-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L7(x)|= 0.3476.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6当n=8时平均插值点图像如下, 此时max|f(x)- L8(x)|=0.3247.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6切比雪夫插值点图像如下,此时max|f(x)- L8(x)|= 0.4463.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6平均插值点图像如下, 此时max|f(x)- L9(x)|=2.7365.-5-4-3-2-1012345-3-2-1123切比雪夫插值点图像如下,此时max|f(x)- L9(x)|= 0.3013.-5-4-3-2-1012345-0.8-0.6-0.4-0.200.20.40.60.8平均插值点图像如下, 此时max|f(x)- 10(x)|=0.8547.-5-4-3-2-112345-1-0.8-0.6-0.4-0.200.20.40.60.81切比雪夫插值点图像如下,此时max|f(x)- L10(x)|= 0.3431.-5-4-3-2-1012345-0.8-0.6-0.4-0.20.20.40.6对于函数:g(x)=arctanx , x ∈[-5,5]当n=2时平均插值点图像如下, 此时max|f(x)- L2(x)|= 0.5728-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L2(x)|= 0.5173.-5-4-3-2-1012345-2-1.5-1-0.500.511.52当n=3,平均插值点图像如下, 此时max|f(x)- L3(x)|= 0.3593.-5-4-3-2-1012345-2-1.5-1-0.500.511.52切比雪夫插值点图像如下,此时max|f(x)- L3(x)|= 0.2325.-5-4-3-2-1012345-2-1.5-1-0.500.511.52-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L4(x)|= 0.2887.-5-4-3-2-1012345-1.5-1-0.50.511.5-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L5(x)|= 0.1378.-5-4-3-2-1012345-1.5-1-0.50.511.5-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L6(x)|= 0.1700.-5-4-3-2-1012345-1.5-1-0.50.511.5-5-4-3-2-1012345-2-1.5-1-0.500.511.52切比雪夫插值点图像如下,此时max|f(x)- L7(x)|= 0.0822.-5-4-3-2-1012345-1.5-1-0.50.511.5当n=8时平均插值点图像如下, 此时max|f(x)- L8(x)|=0.1492.-5-4-3-2-1012345-2-1.5-1-0.500.511.52切比雪夫插值点图像如下,此时max|f(x)- L8(x)|=0.1022-5-4-3-2-1012345-1.5-1-0.50.511.5.当n=9时平均插值点图像如下, 此时max|f(x)- L9(x)|=0.5599.-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L9(x)|= 0.0488.-5-4-3-2-1012345-1.5-1-0.50.511.5当n=10时平均插值点图像如下, 此时max|f(x)- 10(x)|=0.2026.-5-4-3-2-1012345-1.5-1-0.50.511.5切比雪夫插值点图像如下,此时max|f(x)- L10(x)|= 0.0622.-5-4-3-2-1012345-1.5-1-0.50.511.5三、 实验结果及分析为清晰明朗的观察随着n 的增加,每一次逼近的最大误差的变化,即max|f(x)- Ln(x)|的变化,这里以n 为代表横轴,max|f(x)- Ln(x)|代表纵轴,将其值在坐标上并用折线连接,实线表示平均插值点最大误差,虚线表示切比雪夫插值点最大误差,表示如下: 对于函数 x ∈[-1,1]234567891000.20.40.60.811.21.41.61.82对于函数()41h x xx +=x ∈[-5,5]0.511.522.5321()125f x x =+对于函数: g(x)=arctanx x ∈[-5,5]234567891000.10.20.30.40.50.60.7由以上实验内容,和所得的图像和数据可以得出以下结论:1.随着插值点n 的增大,采用平均插值点所得的拉格朗日逼近函数,在x 的中点位置附近(该三个例子中即x=0),与原函数越来越接近;在x 的两个端点位置,误差呈波动性逐渐增大;而采用切比雪夫插值点所得的拉格朗日逼近函数随着n 的增大,与原函数在x 的任何位置都越来越接近。
Runge函数的插值方法对比.docx
plot(xi,yi,'b*')
hold off
插值结果
3.等距分段线性插值
这个可以直接连线接起来就可以了
2.Chebyshev多项式零点插值
由于算式结果比较复杂,Subs命令不太好使,得修改程序如下clear,clc
close all t=cos((2*(0:l:20)+l)/42*pi);
%t=-l:().l:l;
Rx=l./(l+25*t.A2);
%Rx=sin(t);
n=length(t)-l;
Runge函数的插值方法对比
一、对Runge函数的牛顿插值
1.等距牛顿插值图像
编制程序计算均差l;
n=20;
x=a:(b-a)/n:b;%插值节点
%y=sin(x);
y=l./(l+25*x.A2);
plot(x,y/b*)%用蓝色线作被插函数图象
hold on
z=a:(b-a)/(2*n):b;
n=length(x);
for j=2:n
for i=n:-l:j y(i)=(y(i)・y(i・l))/(x(i)・x(i・j+l));%计算差商end
end
u=y(n);
m=lcngth(z);
for j=l:m
for i=n-l:-l:l
u二y(i)+u*(z(j)・x(i));%计算牛顿插值多项式的值
V(j)=U;
end
u=y(n);
end
plot(z, V,巧%用红色线作牛顿插值多项式图象
hold off
实验2:range现象的观察
令狐烈 一, 实验目的
1. 观察和感受 Runge 现象,明白盲目的采用高阶的插值多项式是不妥当的。 2. 从实验示例中感受 Faber 定理和插值法收敛定理。 3. 感受分段插值在长距离上插值的优越性。
二, 实验原理
对于区间[a,b]上的 f(x), 我们希望其多项式插值随着插值次数的增加, P(x)能够更加快速 的收敛于 f(x)。对于有些函数,这个期望可以实现。但是有些函数却是例外。 1901 年 Runge 给出这样的一个例子: 1 1 + 25������ 2 定义在[-5,5]上。如果 P(x)是由这个函数利用[-5,5]区间上的等距节点构造的插值多项 式, 那么序列||f-P||∞是无界的。 对于不大的 n, 我们就可以看到多项式 P (x) 的剧烈震荡。 这就是所谓的 Runge 现象。 对于 Range 现象,以下两个定理可以帮助我么进行理解: Faber 定理:对于任意给定的节点组: F x = ������ ≤ ������������ ������ < ������1 ������ < ⋯ … < ������������ ������ ≤ ������ (������ ≥ ������) 中可以在[a,b]上找到一个连续函数 f,使得 f 在这一组节点上的插值多项式不能一致收 敛于 f。 插值法收敛定理:若 f 是[a,b]上的连续函数,则总可以找到一组插值节点 ������ ≤ ������������ ������ < ������1 ������ < ⋯ … < ������������ ������ ≤ ������ (������ ≥ ������) 使得 f 在这组插值节点上的差值多项式 P 一致收敛与 f,即 ������������������ ������ − ������ ∞ = ������ Range 现象让人们明白, 盲目的采用高阶的插值多项式是不妥当的。 为此应当采用分段插值。
插值与拟合(2012年) 2
所以
M 2 max | f // ( x) | | f // (169 ) | 1.14 10 4
169 x 225
M 3 max | f /// ( x) | | f /// (144 ) | 1.51 10 6
144 x 225
于是
M2 | r1 (175) | | (175 169)(175 225) | 1.71 102 2! M3 | r2 (175) | | (175 144)(175 169)(175 225) | 2.34 103 3!
系数矩阵
A (an , an1 ,, a0 )T ,
Y ( y0 , y1 ,, yn )T
方程组(3)简写作
XA Y
(4)
其中detX是Vandermonde行列式,利用行列式性质可得
det X
0 j k n
(x
k
xj )
因x j互不相同,故det X≠0. 于是方程组(4)中有唯一解, 即根据 n+1个节点可以确定唯一的 n次插值多项式. ★实际上比较方便的作法不是解方程组(4)求 A,而 是先构造一组基函数( n次多项式 ).
该作法为: 构造一组基函数(n次多项式):
l j ( x) ( x x0 )(x x1 ) ( x x j 1 )(x x j 1 ) ( x xn ) ( x j x0 )(x j x1 ) ( x j x j 1 )(x j x j 1 ) ( x j xn )
1 g ( x) , x [5,5] 2 1 x
取 x j 5 10 j / n, j 0,1,, n , 对于n=2,4,6,· · · , 作Ln(x) 会得到如图6.1.1所示的结果. 用MATLAB编程:
实验3观察Runge现象和对非光滑函数进行插值的可能性
数值计算方法实验报告实验序号:实验三实验名称:观察Runge现象和对非光滑函数进行插值的可能性实验人:专业年级:教学班:学号:实验时间:实验三 观察Runge 现象和对非光滑函数进行插值的可能性一、实验目的1.观察高次Lagrange 插值多项式)(x L n 的Runge 现象;2.观察非光滑函数进行多项式插值的可能性.二、实验内容1.考虑在一个固定的区间上用Lagrange 插值逼近一个函数.显然Lagrange 插值中使用的节点越多,插值多项式似的次数就越高.我们自然关心插值多项式的次数增加时,)(x L n 是否也更加靠近被逼近的函数.设区间]1,1[-上函数 22511)(x x f +=考虑区间]1,1[-上的一个等距分割,节点为n i n i x i ,,2,1,0,21 =+-=作)(x f 在]1,1[-上的Lagrange 插值多项式∑=+=n i i i n x l x x L 02)(2511)(其中)(x l i 为Lagrange 插值基函数.2.连续非光滑函数的几何特性非常差,在几何图象上一般会出现大量的尖点.在构造非光滑函数的多项式插值时,由于多项式具有高阶光滑度,两者之间会产生怎样的现象?选择区间]1,0[上的连续非光滑函数x k x g πsin )(=作)(x g 区间]1,0[上的Lagrange 插值多项式.三、实验要求1.选择不断增大的节点数目 ,3,2=n ,画出原函数)(x f 及插值多项式)(x L n 在区间的]1,1[-上的图象,比较并分析实验结果.2.选择其他的函数,例如定义在区间]5,5[-上的函数)arctan()(,1)(4x x v x x x u =+= 重复上述的实验过程,观察其结果又将如何.3.如果不取等距节点,而改为取如下节点⎪⎪⎭⎫ ⎝⎛++--+=π)1(212cos 22n i a b b a x i ,n i ,,2,1,0 = 以n x x x ,,,10 为插值节点构造上述函数)(),(),(x v x u x f 的Lagrange 插值多项式,比较其结果.4.选择不同的k 和n ,用等距节点作)(x g 的n 次Lagrange 插值多项式,观察其误差大小及收敛情况.四、实验步骤1.按照实验要求,首先要作出22511)(x x f +=的插值,编写如下函数: %------------------------------------------------------------------------------function shiyan3(p)switch pcase 1 %f(x)的插值,以实现实验要求第一条中的Rung 现象的观察。
数值分析分段线性插值样条插值Runge函数Newton-Lagrange-Chebyshev插值多项式Runge现象matlab源程序代码
题目1:对Runge 函数R(x ) =1在区间[-1,1]作下列插值逼近,并和1 + 25x 2R(x)的图像进行比较,并对结果进行分析。
= -1 + ih,h= 0.1,0 ≤ i≤ 20 绘出它的20 次Newton 插值(1)用等距节点xi多项式的图像。
分别画出在[-1,1]区间,[-0.7,0.7]区间和[-0.5,0.5]区间上的 Newton 插值多项式和Runge 函数的图像从图中可以看出: 1)在[-0.5,0.5]区间 Newton 插值多项式和 Runge 函数的图像偏差较小,这说 明 Newton 插值多项式在此区间上可以较好的逼近 Runge 函数; 2)在边界(自变量 x=-1 和 x=1)附近,Newton 插值多项式和 Runge 函数的图像 偏差很大,Newton 插值多项式出现了剧烈的震荡。
(Runge 现象) (2)用节点 x = cos(2i + 1π)(, i = 0,1,2,⋅ ⋅ ⋅ ,20),绘出它的 20 次 Lagrangei 42 插值多项式的图像。
画出在[-1,1]区间上的 Lagrange 插值多项式和 Runge 函数的图像从图中可以看出:使用 Chebyshev 多项式零点构造的 Lagrange 插值多项式和 Runge 函数的图 像偏差较小,没有出现 Runge 现象。
(3)用等距节点 x i 的图像。
= -1 + ih ,h = 0.1,0 ≤ i ≤ 20 绘出它的分段线性插值函数画出在[-1,1]区间上分段线性插值函数和 Runge 函数的图像从图中可以看出:使用分段线性插值函数和 Runge 函数的图像偏差较小,也没有出现 Runge 现象,只在自变量 x=0 处有稍许偏差。
(4)用等距节点 x i 函数的图像。
= -1 + ih ,h = 0.1,0 ≤ i ≤ 20 绘出它的三次自然样条插值画出在[-1,1]区间上三次自然样条插值函数和 Runge 函数的图像从图中可以看出:使用三次自然样条插值函数和 Runge 函数的图像偏差较小,也没有出现 Runge 现象。
龙格现象结论
龙格现象结论龙格现象是指在数值计算中,由于数值误差的积累,计算结果与真实结果之间的误差会随着步长的增加而不断增大的现象。
这一现象在科学计算中具有重要的意义,需要我们认真对待和解决。
龙格现象的出现是由于数值计算过程中的截断误差和舍入误差的积累所致。
在数值计算中,我们往往需要将连续的数学问题转化为离散的数值计算问题,通过有限的计算步骤来近似求解。
然而,由于计算机的存储和计算能力是有限的,无法处理无穷小和无穷大的数值。
因此,在计算过程中,我们不得不进行截断和舍入操作,从而引入了误差。
在数值计算中,我们通常使用一些数值方法来近似求解数学问题,如数值积分、数值微分和常微分方程的数值解等。
这些数值方法本质上都是基于一些数值逼近和插值的原理。
而在这些数值方法中,步长的选择是非常重要的。
步长过大会导致精度降低,步长过小则会增加计算的复杂性。
而龙格现象则是指当步长过大时,数值误差的积累会导致计算结果的不准确性。
为了更好地理解龙格现象,我们可以通过一个简单的例子来说明。
假设我们要计算一个函数的积分,我们可以使用数值积分的方法来近似求解。
首先,我们将积分区间等分为若干小区间,然后通过插值方法来近似计算每个小区间的积分。
当步长较小时,插值近似的误差也较小,计算结果较为准确。
但当步长增大时,插值近似的误差也会随之增大,最终导致计算结果的不准确。
针对龙格现象,我们可以通过一些方法来减小误差和提高计算精度。
首先,我们可以选择合适的数值方法和步长,以平衡计算精度和计算复杂性。
其次,我们可以使用高精度的数值计算库或算法,以减小舍入误差。
此外,我们还可以结合数值计算和符号计算的方法,以提高计算精度和可靠性。
龙格现象是数值计算中不可忽视的问题,它提醒我们在进行数值计算时要谨慎选择步长和数值方法,以保证计算结果的准确性。
同时,我们也需要不断研究和改进数值计算的方法和算法,以提高计算精度和可靠性,为科学计算提供更加准确和可靠的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
插值程序题
1.对Runge函数RR(xx)=1/(1+25xx2)在区间[-1,1]做下列插值逼近,并和RR(xx)的图像进行比较,并对结果进行分析。
(1)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次netown插值多项式图像;(2)节点xx ii=cos�2ii+142ππ�,(i=0,1,2,…,20),20次Lagrange插值多项式的图像;(3)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次分段线性插值函数图像;(4)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次三次样条插值函数的图像。
解:(1)20次等距节点netown插值多项式和R(xx)的图像比较图如下所示(求值点之间的间隔为0.0001,以下相同):
从图像可以看出,在插值区间中部netown插值多项式与原Runge函数符合得较好;但在插值区间的两端两者的差别很大(netown在区间[-1,-0.9]的最小值为-59.7819),此时的插值余项不满足要求,因此用等距20次netown插值多项式来对Runge函数在区间[-1,1]做插值逼近并不合适,会出现明显的Runge现象。
(2)20次非等距节点Lagrange插值多项式(切比雪夫多项式零点插值)和R(xx)
的图像比较图如上所示。
此时插值的节点并不等距,插值节点两边密,中间疏,虽然此时Lagrange插值多项式也是20次,但相比等距netown插值,非等距Lagrange插值曲线与原函数吻合得很好,没有出现明显的Runge现象,两端比较密的插值节点较好地抑制了Runge现象。
为了比较节点选取对高次插值结果的影响,用20次等距Lagrange插值也原函数在区间[-1,1]进行了插值,其与原函数图像比较如下:
其图像与(1)中netown插值几乎一样,因此对高次插值多项式,插值时适当的选取插值节点,能有效的抑制Runge现象。
(3)20次等距节点分段线性插值函数和R(xx)的图像比较图如下所示:
分段线性插值是这几种插值方法中最容易处理的一个,只需要将每个节点对应的函数值求出再将相邻的节点两两用直线相连即可。
此处采用了等距节点,从图中可以看出除了区间中部存在偏差之外,区间其他部分与原函数吻合得很好,没有出现Runge现象。
这是因为分段线性插值通过对插值区间分段的方法将插值函
数的次数有效降低,因此即使是等距节点分布,也能很好地避免Runge 现象的出现。
(4)20次等距节点三次样条插值函数和R (xx )的图像比较图如下所示:
从图中看出,三次样条插值的结果比分段线性插值更好,是四种插值种效果最好的,三次样条插值曲线和原曲线在整个插值区间都基本处于重合状态,几乎没有肉眼可见的偏差。
同样,由于三次样条插值的插值函数最高次数只有3,在等距节点下也没有产生Runge 现象。
2.对分段函数
f (x )=�ssii ss ππxx −1≤xx <0ccccssππxx 0≤xx <1/20 1/2<xx ≤1
在区间[1,1]中做下列插值逼近,和被插函数的图像进行比较,并进
行分析。
(1)等距节点xx ii =−1+ii ℎ,ℎ=0.1,0≤ℎ≤20,20次netown 插值多项式图像;
(2)节点xx ii =cos �2ii+142ππ�,(i =0,1,2,…,20),20次Lagrange 插值多
项式的图像; (3)等距节点xx ii =−1+ii ℎ,ℎ=0.1,0≤ℎ≤20,20次分段线性插值
函数图像;
(4)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次三次样条插值函数的图像。
解:(1)20次等距节点netown插值多项式和分段函数的图像比较图如下所示(求值点之间的间隔为0.0001,以下相同):
从图中可以看出,与上述用netown函数对Runge函数进行插值相比,用netown 函数对此分段函数进行插值的效果更差,不仅在插值区间端点区域产生了强烈的震荡(Runge现象),在插值区间中部的非节点区域也存在小的上下震荡(插值余项正负间隔分布),且距离插值两端越近,上下震荡越厉害。
在非插值节点区域,几乎所有距离插值节点较远的点都存在较大偏差,对该分段函数进行20次netown等距插值的效果很不好。
(2)20次非等距节点Lagrange插值多项式(切比雪夫多项式零点插值)和原分段函数的图像比较图如上所示:
此时插值的节点并不等距,插值节点两边密,中间疏,此时Lagrange插值多项式也是20次,相比上述等距netown插值,虽然在插值区间中部Lagrange插值曲线也出现了小的上下震荡,但在区间两端较好地收敛到了原曲线上,没有出现明显的Runge现象。
同样地,两端比较密的插值节点较好地抑制了Runge现象。
这说明对分段函数进行高次插值时,适当的选取插值节点也能较好的抑制插值区间两端出现的Runge现象。
(3)20次等距节点分段线性插值函数和原分段函数图像对比图如下所示:
从图中可以看出,整体上分段线性插值与原函数吻合得较好,没有出现Runge 现象,但在函数间断点附近还是有所偏差。
与上述Runge函数分段线性插值类似,虽然是等距节点分布,但分段线性插值通过对插值区间分段的方法将插值函数的次数有效降低,能很好地避免Runge现象的出现。
(4)20次等距节点三次样条插值函数和原分段函数的图像比较图如下所示:
从图中可以看出,此时三次样条插值的结果没有分段线性插值那么好,在区间两端也没有出现Runge现象,但在函数的间断点附近也出现轻微的上下震荡现象,在远离间断点的其他区域与原函数符合得很好。
同样,这也是由于三次样条插值的插值函数最高次数只有3,因此在等距节点下进行插值也没有产生Runge现象。
对以上用这四种插值方法对Runge函数和分段函数进行插值的结果进行分析可以得到以下结论:
(1)当插值多项式次数太高时,使用等距节点插值,会出现严重的Runge 现象。
如上述使用netown函数对Runge函数和分段函数进行等距20次插值,在插值区间两端都出现了剧烈的上下震荡,与原函数差别很大。
(2)在插值多项式次数很高时,若对插值节点进行适当选取,而不是使用等距节点,可以抑制Runge现象。
如上述,当在20次Lagrange插值中,使用切比雪夫多项式零点作为插值节点(节点两边密,中间疏)时,有效地消除了Runge 现象。
(3)降低插值多项式的次数能有效避免Runge现象。
本实验中,分段线性插值法(各区间上均为1次)和三次样条插值法(最高次数为3)都取得了较为理想的插值逼近效果,没有出现Runge现象,且在整个插值区间都与原函数的图像吻合的很好。
(4)与连续函数相比,存在不连续点的分段函数的插值逼近误差更大,且更加不稳定。
本实验中,对连续的Runge函数进行插值逼近时,除了等距节点的高次Newton多项式出现严重Runge现象,其余三种方法基本都收敛到了原曲线上,取得了不错的插值逼近效果;而对分段函数进行插值逼近时,除了等距节点的高次Newton多项式的逼近效果非常差外,其余三种方法虽然没有出现Runge 现象,但在不连续点(x=0)的附近区域都存在一定的误差,整体逼近效果比对连续Runge函数的插值逼近要差。
综上,在实际运用中,为了取得较好的插值逼近效果,应尽量保证以下几点:不采用次数过高的插值多项式;适当选取插值节点;避免函数值突变,若不得已对存在不连续点的函数进行插值逼近,可以尝试分段插值,并将不连续点都处理到子区间的端点上,从而原函数在各子区间内分段连续,以便提高插值逼近的效果。