多项式插值的震荡现象81025
插值多项式简介

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
早在6世纪,中国的刘焯已将等距二次插值用于天文计算。
17世纪之后,I.牛顿,J.-L.拉格朗日分别讨论了等距和非等距的一般插值公式。
在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。
插值问题的提法是:假定区间[a,b]上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……xn 处的值是f [x0],……f(xn),要求估算f(x)在[a,b]中某点的值。
其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0,C1,……Cn的函数类Φ(C0,C1,……Cn)中求出满足条件P(xi)=f(xi)(i=0,1,…… n)的函数P(x),并以P()作为f()的估值。
此处f(x)称为被插值函数,c0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……Cn)称为插值函数类,上面等式称为插值条件,Φ(C0,……Cn)中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为插值余项。
当估算点属于包含x0,x1……xn 的最小闭区间时,相应的插值称为内插,否则称为外插。
多项式插值这是最常见的一种函数插值。
在一般插值问题中,若选取Φ为n次多项式类,由插值条件可以唯一确定一个n次插值多项式满足上述条件。
从几何上看可以理解为:已知平面上n+1个不同点,要寻找一条n次多项式曲线通过这些点。
插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。
埃尔米特插值对于函数f(x),常常不仅知道它在一些点的函数值,而且还知道它在这些点的导数值。
这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。
多项式插值实验报告

实验报告一题目:多项式插值摘要:熟悉插值多项式构造,通过计算机解决实验问题;龙格现象的发生、防止,通过拉格朗日插值、分段线性插值以及三次样条插值进展插值效果的比拟通过分析、推导,掌握数据插值的思想方法;通过对插值方法的进一步讨论,了解插值的“龙格〞现象;熟悉常用的分段线性插值和样条插值的使用方法;掌握上机编程与调试能力。
由于高次多项式插值不收敛,会产生Runge 现象,本实验在给出具体的实例后,采用分段线性插值和三次样条插值的方法有效的克制了这一现象,而且还取的很好的插值效果。
前言:〔目的和意义〕1. 掌握拉格朗日插值法,分段线性插值法,三次样条插值法。
2. 深刻认识多项式插值的缺点。
3. 明确插值的不收敛性怎样克制。
4. 明确精度与节点和插值方法的关系。
数学原理:在给定n+1个节点和相应的函数值以后构造n 次的Lagrange 插值多项式,实验结果说明〔见后面的图〕这种多项式并不是随着次数的升高对函数的逼近越来越好,这种现象就是Rung 现象。
解决Rung 现象的方法通常有分段线性插值、三次样条插值等方法。
分段线性插值:设在区间[a, b ]上,给定n+1个插值节点a=x 0<x 1<…<x n =b和相应的函数值y 0,y 1,…,y n ,,求作一个插值函数)(x φ,具有如下性质:1) j j y x =)(φ,j=0,1,…,n 。
2) )(x φ在每个区间[x i , x j ]上是线性连续函数。
那么插值函数)(x φ称为区间[a, b ]上对应n 个数据点的分段线性插值函数。
三次样条插值:给定区间[a, b ]一个分划⊿:a=x 0<x 1<…<x N =b假设函数S(x)满足以下条件:1)S(x)在每个区间[x i, x j]上是不高于3次的多项式。
2)S(x)及其2阶导数在[a, b]上连续。
那么称S(x)使关于分划⊿的三次样条函数。
程序设计:本实验采用Matlab的M文件编写。
实验2.1

运行下面的程序,其中分点数取2: n=3; for i=1:n+1 x(i)=-5+10*(i-1)/n; y(i)=atan(x(i)); end x;y; xx=linspace(-5,5,30); for i=1:30 y1(i)=atan(xx(i)); end y1;yy=largrange(x,y,xx); plot(xx,y1,'r',xx,yy,'b')
end f=f+l; if i==n if(nargin==3) f=subs(f,'t',x0); else f=collect(f); f=vpa(f,6); end end end
当分点的数目为2时,则把区间 [1,1]分成了3部 分,得到4个节点。利用拉格朗日 插值法,运行如下的程序:
得到如下的图3:
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
当分点的数目增大到8时,节点数目为 10,得到如下的图4:
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
当分点数目增大到10时,节点数目为 12,得到如下的图5:
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
当节点数为5时,得到下面的图18:
数值分析实验报告--实验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.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],插值函数与原函数逼近程度好,但在区间外插值函数发散。
数值实验报告_实验三

实验题三
实验 3.1 多项式插值的振荡现象
3.1.1 问题提出 考虑一个固定区间上用插值逼近一个函数。 显然拉格朗日插值中使用的节点越多, 插值 多项式的次数就越高。 我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函 数。龙格(Runge)给出的一个例子是极著名并富有启发性的。设区间[-1,1]上函数
程序 3.1.2:产生 n 个分点的函数 gen_eqpts.m
数值实验报告 实验题三 2
function xn=gen_eqpts(left,right,n) %Returns an n-dimentional line vector of equidistant points on interval [left, right] % %Type: xn=gen_eqpts(left,right,n) % %'left' is the lower boundary of the interval. %'right' is the lower boundary of the interval. %'n' is the number of equidistant points. n must be an integer greater or equal to 2. %This m file is coded by Steve Zhao. For reference only. % %The author will not be responsible for any potential consequences that may %caused by this file. % %(c)2016 3g Studio. All rights reserved %Safeguards for input arguments if left>=right error('The upper bound must be greater than the lower bound.') end if mod(n,1)~=0 error('n must be an integer.') end if n<2 error('n must be at least 2.') end %Start generating xn=zeros(1,n); xn(1)=left; for i=2:n xn(i)=left+(i-1)/(n-1)*(right-left); end %Experiment 3.1 (1) %Comparison of Lagrange Interpolation and original function
实验2.1多项式插值的振荡现象

向宏志 20120047(2012-10-13)实验2.1(多项式插值的振荡现象)问题提出:考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时,)(x L n 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数22511)(xx f += 实验内容:考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为∑=+=ni ijn x l x x L 02)(2511)( 其中的n i x l i ,,2,1,0),( =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2,3….,画出原函数f(x)及插值多项式函数)(x L n 在[-1,1]上的图像,比较并分析实验结果。
(2)选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+= 重复上述的实验看其结果如何。
(3)区间[a,b]上切比雪夫点的定义为 1,,2,1,)1(2)12(cos 22+=⎪⎪⎭⎫⎝⎛+--++=n k n k a b a b x k π 以121,,+n x x x 为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析原因。
实验方法:考虑到:1、一幅图中太多的曲线会相互覆盖;2、n 取奇偶数可能结果不同;3、不同的节点选取方式可能导致不同的结果。
故而n 的选择分为n=2:2:8、n=3:2:9或者n=2:4:10、n=3:4:11与n=40三种情况;而节点的选取分为均匀节点、不均匀节点和切比雪肤节点三种。
说明:以下所有图中,蓝色曲线为原函数,绿色曲线为插值函数,插值节点数与两者交点数目相等。
实验数据及其分析:(1)22511)(x x f +=1. 节点为均匀节点时n i nix i ,,2,1,0,21 =+-=节点是对称的a)当节点数取为奇数个时,即n=2:2:8时。
数据分析 使用matlab分析多项式插值的震荡现象

n=5 时
n=10 时
n=18 时 n=22 时
n=20 时 n=25 时
n=30 时
n=40 时
n=70 时
n=200 时
如以上所示的图像对比可知,Ln(x)的值不一定更加靠近被逼近函数。在某些次数时,
Ln(x)的值随着次数的增加更加靠近被逼近函数。而在其他次数时,插值多项式的次数越
高,如果发生振荡现象,则其振荡的幅值也越来越大。
(2)对于函数 h(x),其原函数和插值多项式在[-5,5]上的图像如下图所示,分别取 n=5, n=10,
n=15, n=20, n=30 和 n=100 时的图像进行分析。
n=5 时
n=10 时
n=15 时
n=20 时
n=30 时
n=100 时
如上图所示,随着 n 的次数不断增加,在区间[-5,5]之间,原函数 h(x)与插值多项式
[-1,1]上函数
f
(x)
=
1
+
1 25 x 2
.
实验内容:考虑区间[-1,1]的一个等距划分,分点为
xi
=
−1 +
2i n
,i
=
0,1,2,, n
则拉格朗日插值多项式为
Ln (x)
=
n i=0
1+
1
25
x
2 i
li
(x).
其中, li (x), i = 0,1,2,, n, n 是 n 次 Lagrange 插值函数。
case'f' f=inline('1./(1+25*x.^2)');a=-1;b=1;
case'h' f=inline('x./(1+x.^4)');a=-5;b=5;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二次作业
——多项式插值的振荡现象
实验 多项式插值的振荡现象
问题提出:考虑在一个固定的区间上用插值逼近一个函数。
显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时,)(x L n 是否也更加靠近被逼进的函数。
设区间[-1,1]上函数
22511)(x x f +=
实验内容:考虑区间[-1,1]的一个等距划分,分点为 ,,,2,1,0,21n i n
i x i ⋅⋅⋅=+
-= 则拉格郎日插值多项式为 )(2511)(02x l x x L i n
i i n ∑=+= 其中,n i x l i ,,2,1,0),(⋅⋅⋅=是n 次lagrange 插值基函数。
function t_charpt2
%输入插值结点
result=inputdlg({'请输入插值结点数N1:'},'charpt_2',1,{'3'})
N1=str2num(char(result));
result=inputdlg({'请输入插值结点数N2:'},'charpt_2',1,{'5'})
N2=str2num(char(result));
result=inputdlg({'请输入插值结点数N3:'},'charpt_2',1,{'10'})
N3=str2num(char(result));
result=inputdlg({'请输入插值结点数N4:'},'charpt_2',1,{'15'})
N4=str2num(char(result));
if (N1<1|N2<1|N3<1|N4<1) errordlg('结点输入错误!');return ;end
%插值结点小于1时错误
f=inline('1./(1+25*x.^2)');a=-1;b=1;
%标准函数f
x1=linspace(a,b,N1+1);
x2=linspace(a,b,N2+1);
x3=linspace(a,b,N3+1);
x4=linspace(a,b,N4+1);
y1=feval(f,x1);
y2=feval(f,x2);
y3=feval(f,x3);
y4=feval(f,x4);
x=a::b;inter1=Lagrange(x1,y1,x);
inter2=Lagrange(x2,y2,x);inter3=Lagrange(x3,y3,x);
inter4=Lagrange(x4,y4,x);
%inter1为插值结点为3,inter2为插值结点为5,inter3为插值结点为10,inter4为插值结点为15 fplot(f,[a,b],'-');
%画标准函数f的图形
hold on;
plot(x,inter1,'--');
plot(x,inter2,'*');
plot(x,inter3,'-.');
plot(x,inter4,':');
%画插值逼近函数
legend('f','inter1','inter2','inter3','inter4')
xlabel('x');ylabel('y=f(x) o and y=Ln(x)--');
%----------------------------------------------------------------
function y=Lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=;
for k=1:n
p=;
for j=1:n
if(j~=k)
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=s+p*y0(k);
end
y(i)=s;
end
图1、函数
22511)(x x f +=的拉格朗日插值多项式
结果分析: 多项式插值逼近结果如图所示,inter1为插值结点为3,inter2为插值结点为5,inter3为插值结点为10,inter4为插值结点为15。
当结点数由3个结点增加为5个结点时,函数图形越接近,当插值结点增加到10时,曲线光滑,函数逼近效果在曲线的中间部分(,)比较好,但是由上图在两个端点处x=-1和x=1附近时会出现在与原函数f(x)偏差会很大(龙格现象)。
可以看出,适当提高插值多项式次数,可以提高逼近的精度,但是太高反而会产生不良的现象。
由函数4
1)(x x x h +=和x x g arctan )(=的拉格郎日插值多项式的逼近结果可以得出相同的结论。
图2、函数41)(x
x x h +=
的拉格郎日插值多项式
图3、函数x x g arctan )(=拉格郎日插值多项式
由上图函数41)(x
x x h +=的拉格郎日插值多项式和函数x x g arctan )(=拉格郎日插值多式 的拟合图形可以看出,采用插值多项式时,适当增加插值结点可以提高拟合的精度,但是当插值结点过于大时都会出现龙格现象。