数值分析实验报告2——Runge现象

合集下载

数值分析实验报告(0002)

数值分析实验报告(0002)

数值分析实验报告数值分析实验报告姓名:张献鹏学号:173511038专业:冶金工程班级:重冶二班目录1拉格朗日插值 (1)1.1问题背景 (1)1.2数学模型 (1)1.3计算方法 (1)1.4数值分析 (2)2复化辛普森求积公式 (2)2.1问题背景 (2)2.2数学模型 (3)2.3计算方法 (3)2.4数值分析 (5)3矩阵的LU分解 (6)3.1问题背景 (6)3.2数学模型 (6)3.2.1理论基础 (6)3.2.2实例 (7)3.3计算方法 (7)3.4小组元的误差 (8)4二分法求方程的根 (9)4.1问题背景 (9)4.2数学模型 (9)4.3计算方法 (9)4.4二分法的收敛性 (11)5雅可比迭代求解方程组 (11)5.1问题背景 (11)5.2数学模型 (11)5.2.1理论基础 (11)5.2.2实例 (12)5.3计算方法 (12)5.4收敛性分析 (13)6Romberg求积法 (14)6.1问题背景 (14)6.2数学模型: (14)6.2.1理论基础 (14)6.2.2实例 (14)6.3计算方法 (15)6.4误差分析 (16)7幂法 (16)7.1问题背景 (16)7.2数学模型 (16)7.2.1理论基础 (16)7.2.2实例 (17)7.3计算方法 (17)7.4误差分析 (18)8改进欧拉法 (18)8.1问题背景 (18)8.2数学模型 (19)8.2.1理论基础 (19)8.2.2实例 (19)8.3数学模型 (19)8.4误差分析 (21)1 拉格朗日插值1.1 问题背景对于函数211)(x x f +=,55≤≤-x 求拉格朗日插值。

10=n ,把)(x f 和插值多项式的曲线画在同一张图上进行比较,观察数值积分中的Lagrange 插值。

1.2 数学模型取等距差值节点=-5+/n ,=0,1,…..,n ,构造n 次lagrange 插值多项式:当n =10时,十次插值多项式L 10(x )以及函数f (x )的图像可以由Matlab 画出。

Runge现象的研究

Runge现象的研究
幂激励矩阵 V 和插值输出列向量 y 分别为:
[ ] =a a0 , a1,, an T ∈ Rn+1
1

=V
1
x0 x1

x0n x1n


R ( n +1)×( n +1)
1
xn

xnn

[ ] =y y0 , y1,, yn T ∈ Rn+1
DOI: 10.12677/aam.2019.88175
Received: August 6th, 2019; accepted: August 21st, 2019; published: August 28th, 2019
Abstract
Firstly, this paper explains the Runge phenomenon generated by high-order polynomial interpolation, and proves that the interpolation polynomial divergence is obtained by calculating the systematic error. Secondly, taking the Runge function, inverse trigonometric function and fractional function as examples, the interpolation polynomial of the function is obtained by using the equally spaced Newton interpolation, and then the interpolation residual function expression is obtained, and then the midpoint of adjacent two nodes is calculated. The error at the location determines that the above three functions have generated the Runge phenomenon. Thirdly, the three algorithms of Chebyshev node, piecewise linear interpolation and cubic spline interpolation are introduced and verified, which can avoid the Runge phenomenon. Finally, the approximation performance index is proposed, and based on the optimal polynomial construction coefficient and order double determination method, the algorithm has excellent function approximation effect while avoiding the Runge phenomenon.

数值分析Runge现象计算实验

数值分析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六、实验体会(计算中出现的问题,解决方法,实验体会)出现符号错误,代码函数变量不明重新输入,查询错误,找到并改正编码需要认真仔细,一定要头脑清晰,避免出现一些低级错误。

数值分析实验报告--实验2--插值法

数值分析实验报告--实验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),即插值效果越来越好。

数值分析实验(2.3.5章)

数值分析实验(2.3.5章)

试验2.1 多项式插值的振荡现象实验目的:观察多项式插值的振荡现象,了解多项式的次数与逼近效果的关系。

实验内容:问题提出:考虑在一个固定的区间上用插值逼近一个函数。

显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。

Runge 给出的一个例子是极著名并富有启发性的。

设区间[-1,1]上的函数225x11)x (+=f ,考虑区间[-1,1]上的一个等距划分,分点为n2i 1x i +-=,i=0,1,2,…,n则拉格朗日插值多项式为:)x (l 25x11)x (Ln i ni 2i∑=+=,其中的)x (l i ,i=0,1,2,…,n 是n 次拉格朗日插值基函数。

实验要求:1、选择不断增大的分点数目n=2,3,………,画出原函数)x (f 及插值多项式函数)x (Ln 在[-1,1]上的图像,比较并分析试验结果。

2、选择其他的函数,例如定义在区间[-5,5]上的函数4()1x h x x=+,()arctan g x x =,重复上述的实验看其结果如何。

实验步骤及结果分析:1、选择不断增大的分点数目n=2,3,4,5,6,7,8,9,10做)x (f 的拉格朗日插值多项式)x (Ln ,并与原函数值做比较,如下图所示。

观察图像可知:n=2,3时插值函数和原函数差别很大,n=4,5,6时插值函数与原函数的逼近程度相对较好,继续增加插值次数n ,插值函数在插值区域的中间部分收敛,而在这区间外是发散的,此外,n=7,9时在插值中间区域逼近效果不好。

因此,适当提高插值多项式次数,可以提高逼近的精度,但是次数太高反而产生相反的效果。

2、选择其他的函数进行插值。

原函数4()1x h x x=+,区间[-5,5],插值结果如下图:观察图像可知:低次插值时,插值效果不好。

n=7,8,9,10时,在区间[-2,2],插值函数与原函数逼近程度好,但在区间外插值函数发散。

数值分析实验报告--Runge现象的产生和克服

数值分析实验报告--Runge现象的产生和克服

数值分析实验报告(四)题目:Runge现象的产生和克服学院:机电工程学院(二专业)专业:机械设计制造及其自动化班级:1008108班姓名:***学号:**********号Runge现象的产生和克服摘要:对于多项式插值运算,随着插值阶数的逐渐增多,如果带入离散点过于密集,使得定义域中的“边缘区域”,没有有效的点,将导致插值函数的边缘区域大幅度的偏离函数的真值,该现象称之为“Runge现象”。

0 前言(目的与意义):了解Runge现象,体会插值运算的不准确性,以及其差值带来的误差甚至是错误。

1 数学背景:插值运算的误差公式:|w n (x)||R n (x)|<M n+1(n+1)!M n+1=max{f(n+1)(x i)}于是,如果函数的n+1阶导数一旦很大,则会出现函数的误差很大的情况。

2 程序及代码:(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))^2*(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;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(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 off3 总结与评价:函数的Runge现象可以通过三转角插值和三弯矩插值来解决,而且对于三转角和三弯矩插值来说,带入的数据越多,其插值效果越好4 实验结果:图1:观察Runge现象图2:分段线性插值图3:三转角插值:图4:三弯矩插值:。

数值分析Runge插值逼近

数值分析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 现象。

分段线性插值法

分段线性插值法

《数值分析》实验报告实验序号:实验五 实验名称: 分段线性插值法1、 实验目的:随着插值节点的增加,插值多项式的插值多项式的次数也增加,而对于高次的插值容易带来剧烈的震荡,带来数值的不稳定(Runge 现象)。

为了既要增加插值的节点,减小插值的区间,以便更好的逼近插值函数,又要不增加插值多项式的次数以减少误差,可采用分段线性插值。

2、 实验内容:求一个函数ϕ(x )用来近似函数f (x ),用分段线性插值的方法来求解近似函数ϕ(x )并画出近似函数图像及原函数图像。

设在区间[a,b]上,给定n+1个插值节点b x x x x a n =<<<<=...210和相应的函数值n y y y ,...,,10,求一个插值函数)(x ϕ,满足以下条件:(1)),...,2,1,0()(n j y x j j ==ϕ; (2) )(x ϕ在每一个小区间[1,+j j x x ]上是线性函数。

对于给定函数11-,2511)(2≤≤+=x x x f 。

在区间[]11-,上画出f (x )和分段线性插值函数)(x ϕ的函数图像。

1. 分段线性插值的算法思想:分段线性插值需要在每个插值节点上构造分段线性插值基函数)(x l j ,然后再作它们的线性组合。

分段线性插值基函数的特点是在对应的插值节点上函数值取 1,其它节点上函数值取0。

插值基函数如下:⎪⎩⎪⎨⎧≤≤--=其它 ,0,)(101010x x x x x x x x l ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≤<--≤≤--=+++---其它 ,0,,)(111111j j j j j j j j j j j x x x x x x x x x x x x x x x l⎪⎩⎪⎨⎧≤≤--=---其它 ,0,)(111n n n n n n x x x x x x x x l 设在节点a ≤x0<x1<…≤b=f(xi),(i=0,1,2,…,n)求折线函数L (x )满足:(1) L(x)∈C[a,b](2) L(x[i]=y[i])(3) L(x)在每个小区间(x[i],x[i+1])上是线性插值函数¢(x )叫做区间[a,b]上对数据(x[j],y[j])(j=0,1,2,…,n)的分段区间函数。

高等数值分析插值程序题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现象。

非线性方程求解数值分析上机实验报告

非线性方程求解数值分析上机实验报告

实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。

本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。

前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。

数学原理:对于一个非线性方程的数值解法很多。

在此介绍两种最常见的方法:二分法和Newton 法。

对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。

重复运行计算,直至满足精度为止。

这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式产生逼近解x*的迭代数列{x k},这就是Newton法的思想。

当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。

另外,若将该迭代公式改进为其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。

程序设计:本实验采用Matlab的M文件编写。

其中待求解的方程写成function的方式,如下function y=f(x);y=-x*x-sin(x);写成如上形式即可,下面给出主程序。

二分法源程序:clear%%%给定求解区间b=1.5;a=0;%%%误差R=1;k=0;%迭代次数初值while (R>5e-6) ;c=(a+b)/2;if f12(a)*f12(c)>0;a=c;elseb=c;endR=b-a;%求出误差k=k+1;endx=c%给出解Newton法及改进的Newton法源程序:clear%%%% 输入函数f=input('请输入需要求解函数>>','s')%%%求解f(x)的导数df=diff(f);%%%改进常数或重根数miu=2;%%%初始值x0x0=input('input initial value x0>>');k=0;%迭代次数max=100;%最大迭代次数R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解while (abs(R)>1e-8)x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));R=x1-x0;x0=x1;k=k+1;if (eval(subs(f,'x0','x'))<1e-10);breakendif k>max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值ss=input('maybe result is error,choose a new x0,y/n?>>','s');if strcmp(ss,'y')x0=input('input initial value x0>>');k=0;elsebreakendendendk;%给出迭代次数x=x0;%给出解结果分析和讨论:1.用二分法计算方程在[1,2]内的根。

数值分析实验报告2——Runge现象

数值分析实验报告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 现象。

数值分析实验报告Hermite插值法、Runge现象,比较Language插值、分段线性插值、分段三次Hermie插值

数值分析实验报告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现象的演示(内含L和N插值多项式)

Runge现象的演示(内含L和N插值多项式)

实验4_2 Runge现象的演示(内含L 和N 插值多项式)【实验目的】1、了解并掌握matlab软件的基本应用方法;2、初步了解matlab中部分函数,熟悉循环语句的使用;3、通过上机进一步掌握Lagrange插值多项式的建立。

【实验内容】(1)【实验一】 Lagrange 插值多项式(1)首先把本程序另存为一个不同的文件名;(2)把下面程序中开头的注释去掉,再把问号填写正确;.(2)【实验二】Newton 插值多项式对于Newton插值多项式,可以不计算差分表(矩阵),而直接计算差分表中的对角元(实际上只用到这些值),这样就能大大减少储存空间,P79 图4-5 就是这种方法, 请你证明图中y(k)就是差分表的对角元,并注意后半部分就是Horner 算法. 按此法编程【解】:手工分析怎样求解这题。

【计算机求解】:怎样设计程序?流程图?变量说明?能否将某算法设计成具有形式参数的函数形式?【实验一】Lagrange 插值多项式【程序如下】:function y=lagrange(X,Y,x);n=length(X);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:nt=1.0;for j=1:nif j~=kt=t*(z-X(j))/(X(k)-X(j));endends=t*Y(k)+s;endy(i)=s;endf = inline('1./(1+25*x.^2)');n = 30;X = linspace(-1,1,n);Y = f(X);x = -1 : 0.01 : 1;y=lagrange(X,Y,x);plot(x,f(x),'r',X,Y,'o',x,y,'b')title('Runge现象')legend('y=1/(1+25*x^2)','插值点','等分的30次插值多项式',0) 【运行结果如下】将n改为50次,得到下面图像:【结果分析】通过实验,可以更直观的将插值的结果展现出来,同时还能发现格式插值的弊端。

实验2:range现象的观察

实验2:range现象的观察
实验 2:Runge 现象的观察
令狐烈 一, 实验目的
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 现象让人们明白, 盲目的采用高阶的插值多项式是不妥当的。 为此应当采用分段插值。

数值实验——观看Lagrange插值的Runge现象

数值实验——观看Lagrange插值的Runge现象

数值实验 观看Lagrange 插值的Runge 现象一、 实验目的关于等距Lagrange 插值,当插值节点数太多时,差值多项式并非能收敛到被插函数()f x ,而是在区间两头会产生猛烈振荡的Runge 现象。

本实验的目的确实是验证这种Runge 现象。

二、 实验步骤实验中取插值函数为225()f x a x=+,其中a 是常数。

插值节点去区间[-5,5]的等距节点,关于n 阶插值多项式,步长10h n=,节点为1(1),1,2,...(1)k x x h k k n =+-=+,所取得的差值多项式为1111()()n n in k k i k ii kx x L x f x x x ++==≠-=-∑。

关于n 阶插值多项式,改变插值的阶数,能够取得不同的差值多项式,从而能够观看随阶数转变而产生的Runge 现象。

三、 程序与结果1、 程序、Runge 现象主程序:、Lagrange插值多项式计算程序:、生成多条差值曲线程序:2、计算结果图 1a =时225()1f x x =+的插值结果,其中红色虚线表示的是225()1f x x=+,中间两条没有显现Runge 现象的曲线的阶数自下至上为2和3,其余几条曲线自上而下别离对应于4、8、10阶插值曲线图 2a =时225()2f x x =+的插值结果,其中红色虚线表示的是225()2f x x=+,中间两条没有显现Runge 现象的曲线的阶数自下至上为2和3,其余几条曲线自上而下别离对应于4、8、10阶插值曲线图 3a =时225()3f x x =+的插值结果,其中红色虚线表示的是225()3f x x=+,中间两条没有显现Runge 现象的曲线的阶数自下至上为2和3,其余几条曲线自上而下别离对应于4、8、10阶插值曲线图 8a =时225()8f x x =+的插值结果,其中红色虚线表示的是225()8f x x=+图 15a =时225()15f x x =+的插值结果,其中红色虚线表示的是225()15f x x =+图 100a =时225()100f x x =+的插值结果,其中红色虚线表示被插函数四、 结果分析一、从图、图能够明显看到,1n =和2n =时,Runge 现象很明显,在边界上振荡很猛烈。

实验3观察Runge现象和对非光滑函数进行插值的可能性

实验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-kutta方法数值分析实验报告

经典Runge-kutta方法数值分析实验报告
syms u v
>> z=-v+u+1;
>> m=RungeK(z,0.1,0,1,1,[u v])
2 再画出方程准确解的图像,程序语句如下
在命令窗口输入
hold on
x=0:0.1:1;
y=zeros(11,1);
for i=1:11
y(i)=exp(-x(i))+x(i);
end
plot(x,y,'*b')
format long;
N=(b-a)/h;
y=zeros(N+1,1);
y(1)Байду номын сангаасy0;
g(1)=y0;
x=a:h:b;
for i=2:N+1
k(1)=subs(f,var,[x(i-1) y(i-1)]);
k(2)=subs(f,var,[x(i-1)+h/2 y(i-1)+h/2*k(1)]);
数值分析实验报告
姓名
学号
日期
实验项目
经典Runge-kutta方法
指导教师
一、上机实验的问题和要求(需求分析):
实验要求
掌握求解一阶常微分方程初值问题经典Runge-kutta方法编程运算
实验内容:
用经典Runge-kutta方法在步长选为1/10时计算一阶常微分方程初值问题
(该问题的精确解为 ),
3 计算误差
在命令窗口输入
m-y
四、调试和运行程序过程中产生的问题及采取的措施:
开始画出的图像,忘记了用不同的颜色区分开来;经修改后,图像客观性增强;
五、运行输出结果及分析:
结果如下图
结果分析:

数值分析实验报告

数值分析实验报告
{
x0[i] = 0.01*i;//采用循环对数组变量x[100]赋值
}
rk_getback(x0, y0, 0.01, -50);//调用R-K函数计算得到每一个x(n)对应的y(n)值
CSeries embro = (CSeries)m_chart.Series(0);//使用画图控件Teechart进行画图
}
for (i = 0; i <= 200; i++)//利用插值多项式计算201个数值用于绘图
{
a1[i] = u + i*0.01;
b1[i] = 1 / (1 + 25 * a1[i] * a1[i]);
y[i] = Lagrange(a1[i], n, a2, b2);
}
m_chart.AddSeries(0);//用teechart绘制插值多项式函数图像
m3 = m.transpose()*y;//计算Y矩阵
m4 = m2*m3;//计算系数矩阵
CSeries serdemo = (CSeries)m_mchart.Series(0);//创建CSeries对象
MatrixXd m5(1, 4),m6(1,1);//创建1*4和1*1的矩阵
int i;
考虑在一个固定的区间上用插值逼近一个函数。显然Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。Runge给出的一个例子是极著名并富有启发性的。设区间[-1,1]上函数
考虑区间[-1,1]的一个等距划分,分点为
则拉格朗日插值多项式为
int i, n =19;
double j = 2.0 / (n ), u = -1.0, v = 1.0;

微分方程数值解法实验报告-Runge-Kutta格式、三阶Admas

微分方程数值解法实验报告-Runge-Kutta格式、三阶Admas

《微分方程数值解法》课程实验报告1 实验内容要求:用经典三级三阶R-K 格式求解微分方程初值问题,并给出误差分析。

2算法描述先用C 的方法写出一个算法动态库,里面封装龙格库塔算法函数采用迭代原理,用递归实现,生成并模块化导出dll,lib 文件,两个文件中均包含了该函数偏移地址,在在源文件中隐式链接该库里的龙格库塔函数,从而得出结果.3 实验数据与实验结果 ⎩⎨⎧=-+-==1|1'0x y x y y1.0)1,0(=∈h x4 程序代码清单:Win32动态库Algorithm.dll 代码: #include <stdio.h> #include <math.h>#define e 2.718281828459045double x[11]={0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0}; double y[12]={1.0,0}; int x1=0,x2=1; int count=1;void RungeKutta(double h){ double K1,K2,K3; double ExactSolution; double Error; if(count==12){ return; } K1=-y[count-1]+x[count-1]+1; K2=-(y[count-1]+h*K1/3)+(x[count-1]+h*K1/3)+1; K3=-(y[count-1]+2*h*K2/3)+(x[count-1]+2*h/3)+1; y[count]=y[count-1]+h*(K1+3*K3)/4; ExactSolution=x[count-1]+pow(e,-x[count-1]); Error=y[count-1]-ExactSolution; printf("%lf %lf %lf %lf\n",x[count-1],ExactSolution,y[count-1],Error);count++; RungeKutta(h); }模块化导出文件Algorithm.def代码:LIBRARY AlgorithmEXPORTSRungeKutta @1入口函数实现功能代码:#include <stdio.h>#pragma comment(lib,"../lib/Algorithm.lib")int main(){double h;printf("用三级三阶龙贝格库塔方法解微分方程y'=x-y+1,x属于区间(0,1)\n");printf("请输入系数h的值:\n");scanf("%lf",&h);printf("-----------------------------------------------------\nx 精确解 R-k解yn 误差:\n");RungeKutta(h);return 0;}5:运行结果:1 实验内容要求:用三阶Admas 预报修正格式求解差分方程初边值问题。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析课程实验报告——插值逼近
题目一.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. 分段线性插值曲线与原曲线对比
所得插值曲线与原曲线对比如图2.4(蓝色为原曲线,红色为插值曲线)。

从图中看出,此处分段线性插值的效果较好,二者只在区间中部函数值的突变点附近存在一些偏差,而在其他区域整体上吻合的很好,不存在Runge现象。

这是由于分段线性插值通过对插值区间分段的方法将插值函数的次数有效降低,因而即使是等距节点分布,也很好地避免了出现Runge现象的倾向。

5.三次样条插值
三次样条插值是这四种插值方法中编程最麻烦的,但并不是说存在多大的技术难度,只是因为插值过程中的步骤比较繁琐,因而代码也显得较为冗长。

此处依然采用等距节点,所得插值曲线与原曲线对比如图2.5(蓝色为原曲线,红色为插值曲线)。

从图中看出,三次样条插值的效果与分段线性插值相近,也是在区间中部的函数值突变处有一定的偏差,而其他区域都吻合较好,也没有产生Runge现象。

同样,这也是由于三次样条插值的插值函数最高次数只有3,因此在等距节点下进行插值也没有产生Runge现象。

图2.5.三次样条插值曲线与原曲线对比
三.总结
本文通过matlab编程分别采用Newton插值法、Lagrange插值法、分段线性插值法以及三次样条插值法对Runge函数和一个分段函数进行了插值逼近,插值区间[-1,1],插值节点21个,并通过分析计算结果主要得到了以下结论:
1.插值多项式次数过高时会产生严重的Runge现象。

本实验中,无论是Runge 函数还是分段函数的20次Newton插值多项式都产生了严重的Runge现象,区间两端处的插值出现剧烈震荡,严重失真。

2.同样是高次插值多项式,若适当选取插值节点能够在一定程度上抑制Runge现象。

本实验中,Runge函数和分段函数的20次Lagrange插值多项式由于采用了中间疏两边密的非等距结点,而不是Newton插值多项式所用的等距节点,有效地抑制或消除了本应出现的Runge现象(这里说“本应出现”是经过计算验证的,若取等距节点,则20次的Lagrange插值多项式也会出现严重Runge 现象)。

3.降低插值多项式的次数能有效避免Runge现象。

本实验中,分段线性插值法(各区间上均为1次)和三次样条插值法(最高次数为3)都取得了较为理想的差值逼近效果,没有出现Runge现象,且在整个插值区间都与原函数的图像吻合的很好。

4.与连续函数相比,存在不连续点的分段函数的插值逼近误差更大,且更加不稳定。

本实验中,对连续的Runge函数进行插值逼近时,除了等距节点的高次Newton多项式出现严重Runge现象,其余三种方法基本都收敛到了原曲线上,取得了不错的插值逼近效果;而对分段函数进行插值逼近时,除了等距节点的高次Newton多项式的逼近效果非常糟糕外(巨大偏差,严重震荡),其余三种方法虽然没有出现Runge现象,但在不连续点(x=0)的附近区域都存在一定的误差,整体逼近效果逊色于对连续Runge函数的插值逼近。

综上,在实际运用中,为了取得较好的插值逼近效果,应尽量保证以下几点:不采用次数过高的插值多项式;适当选取插值节点;避免函数值突变,若不得已对存在不连续点的函数进行插值逼近,可以尝试分段插值,并将不连续点都处理到子区间的端点上,从而原函数在各子区间内分段连续,以便提高插值逼近的效果。

相关文档
最新文档