Lagrang插值多项式
- 格式:doc
- 大小:167.51 KB
- 文档页数:7
拉格朗日插值多项式
拉格朗日插值多项式是根据一组给定的数据点,利用拉格朗日插值法求出的拟合多项式。
拉格朗日插值法是一种求解插值问题的方法,它是由法国数学家拉格朗日在18次世界数学家大会上提出的。
拉格朗日插值法的基本思想是:将插值多项式看作是一个多元函数,它的值在给定的数据点处等于给定的数据值,并且在其他点上满足拉格朗日插值准则。
拉格朗日插值多项式的优点是:
1. 它可以用于拟合任意类型的函数,而不仅仅是线性函数;
2. 它可以得到更高的准确度,因为它可以根据不同的数据点来调整多项式的形式;
3. 它可以得到更平滑的曲线,因为它可以根据不同的数据点来调整多项式的形式;
4. 它可以用于处理离散数据点,而不仅仅是连续数据点。
拉格朗日插值多项式的缺点是:
1. 它的计算量较大,因为它需要解决一个多项式的拟合问题;
2. 它可能会得到不稳定的拟合结果,因为它的多项式形式可能会受到数据点的影响;
3. 它不能处理缺失的数据点,因为它需要给定的数据点来调整多项式的形式。
拉格朗日插值多项式是一种近似函数,它可以通过给定一组离散数据点,来估算出其他数据点的值。
拉格朗日插值多项式是由18世纪法国数学家Joseph-Louis Lagrange提出的,他是一位杰出的数学家和物理学家。
拉格朗日插值多项式的推导可以从一个简单的例子开始。
假设我们有一组离散的数据点{(x1, y1), (x2, y2), …, (xn, yn)},我们想要通过这些点来拟合一个函数,使得在这些点上的函数值与给定的数据点相等。
首先,我们假设要拟合的函数是一个n-1次多项式:P(x) = a0 + a1x + a2x^2 + … + an-1x^n-1我们的目标是找到多项式中的系数a0, a1, …, an-1,使得在给定的数据点上函数值与数据点的y值相等。
根据插值的思想,我们希望在每个数据点上函数值与给定的数据点相等,即对于每个数据点(xi, yi)都满足:P(xi) = yi我们可以将这个条件用一个方程表示出来。
将插值多项式代入方程中,我们得到:a0 + a1xi + a2xi^2 + … + an-1xi^n-1 = yi现在我们有n个方程,通过解这个方程组,我们可以求解出多项式的系数。
为了方便求解,我们引入拉格朗日基函数。
拉格朗日基函数Li(x)的定义是一个n 次多项式,它可以满足以下条件:1.对于所有的i≠j,Li(xj) = 02.Li(xi) = 1根据拉格朗日基函数,我们可以将插值多项式表示为:P(x) = L0(x)y0 + L1(x)y1 + … + Ln-1(x)yn-1其中Li(x)可以表示为:Li(x) = (x - x0)(x - x1)…(x - xi-1)(x - xi+1)…(x - xn-1) / (xi - x0)(xi - x1)…(xi - xi-1)(xi - xi+1)…(xi - xn-1)现在我们可以使用拉格朗日基函数来表示插值多项式,并求解多项式的系数。
第5章 实验四Lagrange 插值多项式实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。
5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)()()(,)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n ij j j i j i n i i i 。
其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。
)(x l i 的这种表示具有较好的对称性。
公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。
(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。
5.2 Lagrange 插值多项式源代码I% 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi)fi=zeros(size(xi)); np1=length(f); for i=1:np1z=ones(size(xi)); for j=1:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end endfi=fi+z*f(i); end return例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。
写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。
解:4个数据点的Lagrange 插值公式为:)9.36.1(*)7.26.5(*)6.16.5()9.3(*)7.2)(6.1(*94.2)6.59.3(*)7.29.3(*)6.19.3()6.5(*)7.2(*)6.1(*9.3)6.57.2(*)9.37.2(*)6.17.2()6.5(*)9.3(*)6.1(*22.4)6.56.1(*)9.36.1(*)7.26.1()6.5(*)9.3(*)7.2(*3.3)(3------+------+------+------=x x x x x x x x x x x x x L清单5.1 clearx=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o')其结果为:yi =1.0596 6.6457xg (x ):-, d a t a p o i n t s :o图5.1 插值多项式曲线图5.3 Lagrange插值多项式源代码II% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。
拉格朗日插值多项式(Lagrange Interpolation Polynomial)是一种用于在已知数据点之间进行插值的方法。
它可以用一个简单的公式表示如下:
假设有n+1个互不相同的数据点(x0, y0), (x1, y1), ..., (xn, yn),其中xi和yi分别是已知的数据点的横纵坐标。
那么拉格朗日插值多项式可以表示为:
L(x) = Σ(yi * li(x))
其中,i从0到n,li(x)是拉格朗日基础多项式(Lagrange basis polynomial),其表达式为:
li(x) = Π[(x - xj) / (xi - xj)], j ≠ i
在这个公式中,Σ表示求和运算,Π表示连乘运算。
这样得到的L(x)就是通过拉格朗日插值法得到的插值多项式。
需要注意的是,拉格朗日插值多项式在实际应用中可能会因为龙格现象(Runge's phenomenon)而导致插值结果出现震荡,因此在实际工程中可能会考虑其他插值方法或者对数据进行适当处理来减少这种影响。
数学软件实验任务书实验一 多项式插值1实验原理()y f x =在区间[,]a b 上的1n +个互异点01n a x x x b =<<= 出得值为012,,,,n y y y y ,存在次数不超过n 的多项式:2012()n n n P x a a x a x a x =++++使得满足条件:()()n i i p x f x =2 数据来源X=[1 1.4 1.8 2.0]Y=[-2 -0.8 0.4 1.2]3 实验程序clcclear allX=[1 1.4 1.8 2.0];Y=[-2 -0.8 0.4 1.2]';n=length(X);A=zeros(n,n);for i=1:nfor j=1:n-1A(i,j+1)=X(i)^j;endendB=zeros(n,1);for i=1:nB(i,1)=1;endA(:,1)=B;A1=A;%%%%%%%%范德蒙行列式a=inv(A1)*Ysyms x;f=a(1)+a(2)*x+a(3)*x^2+a(4)*x^3%%%%%检验subs(f,1)4 实验结果%%%%%%%%%%多项式系数a =-9.200012.5333-7.00001.666723()0.9212.537 1.67f x x x x =-+-+%%%%%%%%%%%%%%%代入1x =检验subs(f,1)ans =-2.000000003实验二 Lagrange 插值1 实验原理通过平面上不同两点可以确定一条直线经过这两点,这就是拉格朗日线性插值问题,对于不在同一条直线的三个点得到的插值多项式为抛物线。
这里给出一般的插值公式,拉格朗日插值的基多项式为:10(),0,1,2,,n i j i jj i x x l x i n x x =≠-==-∏ 有了基函数以后就可以直接构造插值多项式,插值多项式为:0()()nn i i i p f x l x ==∑2 数据来源X=[0 1 2 4]Y=[1 9 23 3]3 实验程序function laglange(X,Y,x0)syms xn=length(X);w=1;for i=1:nw=w*(x-X(i));enda=diff(w,x);f=0;for i=1:nb=w/(x-X(i));l=b/(subs(a,x,X(i)));f=f+l*Y(i);endf=expand(f)%subs(f,x,x0)sprintf('f(%f)=%f',x0,subs(f,x,x0))end4 实验结果运行程序在Matlab 窗口显示f =3 2- 11/4 x + 45/4 x - 1/2 x + 1 即:3211451()1442f x x x x =-+-+ 实验三 牛顿插值1 实验原理函数()f x 的差商定义为:[]()k k f x f x =111[][][,]k k k k k kf x f x f x x x x ----=-111[,,][,,][,,,]k j k k j k k k j k k k j f x x f x x f x x x x x -+------=-下面给出牛顿插值多项式为:001001011()[][,]()[,,,]()()()n n n N x f x f x x x x f x x x x x x x x x -=+-++---如果记:011()()(),1,2,,k k w x x x x x x k n -=---=则牛顿插值可以表达为: 001101()[][,][,,,]n n n N x f x f x x w f x x x w =+++2 数据来源X=[1.0 1.3 1.6 1.9 2.2]Y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623] 3 实验程序1 计算差商表程序clcclearX=[1.0 1.3 1.6 1.9 2.2];Y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623]; f0=Y;n=length(X);f=zeros(n);f(1,:)=Y;for i=1:n-1f(2,i)=(f0(i+1)-f0(i))/(X(i+1)-X(i))endfor k=2:n-1for i=1:n-kf(k+1,i)=(f(k,i+1)-f(k,i))/(X(k+i)-X(i)) endend2 牛顿差值程序function s=niudun(x,y,t)syms p;s=y(1);xishu=0;dxs=1;n=length(x);%%构造牛顿插值方法for(i=1:n-1)for(j=i+1:n)xishu(j) = (y(j)-y(i))/(x(j)-x(i));endtemp1(i)=xishu(i+1);dxs=dxs*(p-x(i));s=s+temp1(i)*dxs;y=xishu;endsimplify(s)end4 实验结果差商表:f =0.7652 0.6201 0.4554 0.2818 0.1104-0.4837 -0.5489 -0.5786 -0.5715 0-0.1087 -0.0494 0.0118 0 00.0659 0.0681 0 0 00.0018 0 0 0 0在命令窗口输入x=[1.0 1.3 1.6 1.9 2.2];y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623]; yt=niudun(x,y,1.5)得到结果yt =[0.5118199945]。
拉格朗⽇(Lagrange)插值算法拉格朗⽇插值(Lagrange interpolation)是⼀种多项式插值⽅法,指插值条件中不出现被插函数导数值,过n+1个样点,满⾜如下图的插值条件的多项式。
也叫做拉格朗⽇公式。
这⾥以拉格朗⽇3次插值为例,利⽤C++进⾏实现:1//利⽤lagrange插值公式2 #include<iostream>3using namespace std;45double Lx(int i,double x,double* Arr)6 {7double fenzi=1,fenmu=1;8for (int k=0;k<4;k++)9 {10if (k==i)11continue;12 fenzi*=x-Arr[k];13 fenmu*=Arr[i]-Arr[k];14 }15return fenzi/fenmu;16 }1718int main()19 {20double xArr[4]={};21double yArr[4]={};22//输⼊4个节点坐标23 cout<<"请依次输⼊4个节点的坐标:"<<endl;24for (int i=0;i<4;i++)25 cin>>xArr[i]>>yArr[i];2627//输⼊要求解的节点的横坐标28 cout<<"请输⼊要求解的节点的横坐标:";29double x;30 cin>>x;31double y=0;32for (int i=0;i<4;i++)33 y+=Lx(i,x,xArr)*yArr[i];34 printf("x=%lf时,y=%lf\n",x,y);3536//分界,下⾯为已知y求x37 cout<<"请输⼊要求解的节点的纵坐标:";38 cin>>y;39 x=0;40for (int i=0;i<4;i++)41 x+=Lx(i,y,yArr)*xArr[i];42 printf("y=%lf时,x=%lf\n",y,x);4344 system("pause");45return0;46 }作者:耑新新,发布于转载请注明出处,欢迎邮件交流:zhuanxinxin@。
专业序号姓名日期实验1Lagrange 插值多项式【实验目的】1.掌握用MATLAB计算拉格朗日插值方法,改变节点的数目,对插值结果进行初步分析;2.掌握用MATLAB的插值方法并通过实例学习用插值解决实际问题。
3. 观察Runge现象的演示。
【实验内容】Lagrange 插值多项式按照 P74 图4-4 的方法编 Lagrange 插值多项式function y = mylagpoly(X,Y,x)X,Y 采样点x 自变量(向量)y 多项式的函数值要特别注意大小写,x,y 和 t 都是向量【程序如下】:% exp4_2.m --- Runge现象的演示(内含 L 和 N 插值多项式)function try_Runge% 见 P84f = inline('1./(1+25*x.^2)'); % 定义函数n = 11;X = linspace(-1,1,n); % n 等分( n+1 个点),插值点横坐标Y = f(X); % 插值点纵坐标x = -1 : 0.01 : 1; % 加细 xy = mylagpoly(X,Y,x)plot(x,f(x),'r',X,Y,'o',x,y,'b')title('Runge现象') % 加标题legend('y=1/(1+25*x^2)','插值点 ','等分的10次插值多项式',0) % 加标签function y = mylagpoly(X,Y,x)n = length(X);y = zeros(size(x));for i = 1:nt=1;for j = 1:nif j ~= it = t.*((x-X(j))/(X(i)-X(j))); % 注意这里是点乘,字母与书上不同,此时t变成向量了endendy=y+ t.*Y(i);end【运行结果如下】:【结果分析】:拉格朗日插值实验通过离散的点来构造一个函数来逼近原来的函数,理论上应该是点越多,构造函数应该会越来越逼近原函数,但是却发生了Range现象,所以在利用拉格朗日插值法来构造函数来逼近原函数时,应该选择适当的点来逼近原函数,但即使如此,依然不能有效的避免Range现象。
数学与软件科学学院实验报告学期・ 至 第 学期 年 月 日 课!呈名称: 计算机数值务法 专业:级 班 实验编号:1实验项目一次、二次Lagrange 插值多项式指导教师 张莉姓名: 学号: 实验成绩: 一、实验目的及要求 实验目的:体会使用Lagrange 插值基函数构造插值多项式的特点, 熟悉使用一次或二次Lagrange 插值多项式近似函数y=f(x)的算法。
掌握Lagrange 插值多项式近似函数f(x)的误差表达式,并会熟练应 用。
实验要求:1.给出一次、二次Lagrange 插值算法2•用C 语言实现算法3・给出误差分析。
二、实验内容用下列插值节点数据,构造一次和二次Lagrange 插值多项式,并计 算 要求:所需数据都从键盘读入,最后输出结果.三、实验步骤(该部分不够填写•请填写附页)步骤一:用为代码描述lagrange 插值多项式的算法Step 1:输入:插值节点控制数n,插值点序列(xi,yi) ,i=O,l,...n,要计算的函数点x.Step 2: for j=0 to n{ { forj=0 to n 对于给定的x,计算lagrangc 基函数li(x)然后 求 tmp=tmp* (x-xj) /(xi-xj);fx=fx+tmp*yi;Step 3:输111结果。
步骤二:编辑程序如下:X11 F(x) 0.190809 12 13 0.207912 0.224951# includc<stdio.h>#define MAX N 3typedef struct tagPOINT {double x;double y;} POINT;/*the structer of point */〃点的结构int main(){int n,i,j;POINT pointsLMAX_N+lJ;double tmp=1.0;double x;double lagrange=0.0;clrscr();printf(”\nlnput n value scanf(n%d n,&n); /*the number of the points inserted*/ 〃输入被插值点的个数if(n>MAX_N){printf("The i叩ut n is larger than MAX_N,please redefine the MAX_N.\n");return 1;1if(n<=0){printf("Please i叩ut a number between 1 and %d.\n",MAX_N);}printf("Now input the (x_i,y_i),i=O,...%d:\n",n);fbr(i=O;i<=n ;i++)scanf("%lf %lf',&points[i].x,&points[i].y);〃输入被插值点printf("Now input the x value:*'); /*the value of x*/ scanf(“%f,&x); 〃输入待求的点的第一个分量for(i=0;i<=n;i++){for(j=0;j<=n && j!=i;j++)tmp*=(x-pointsfj].x)/(points[i].x-points[jl.x);lagrange+=tmp*points[i].y;} 〃用lagrange來求多项式printf(M the results is %lf',lagrange);// 定义点的最大维数return 0;实验报告附页四、实验结果分析与评价(该部分不够填写•请填写附页)构造lagrange —次插值多项式,求点f仃1. 5),选取前两个插值点Input n ualue :1Now input the ■ ■ ■!_ :11 0.190807 12 0.207912Now input the x value:11・5 the results is 0.294763构造lagrange —次插值多项式,求点f (12.5),选取后两个插值点Input n ualue :1Now input the〈X—i.y—i〉. iW. ■ ■ .1 : 12 0.207912 13 0.224951Now input the x ualue:12.5the results is 0.320388_构造lagrange二次插值多项式,求点f (11. 5),结果为:F:\MYD0CU 1\ 我的课程'程序设1\TC\TC.EXEInput n ualue :2N OVJ input the <x_i J.y_i>j. 1=0^...2:hl 0.190809 12 0.207912 13 0.224951Nou input the x ualue:11.5the results is 0.266646构造lagrange二次插值多项式,求点f (12.5),结果为:F八MYDOClT 1 \我的课程\程序设"1\TC\TC.EXEInput n ualue :2Now input the <x_i,y_i〉.••.2:11 0.190809 12 0.207912 13 0.224951Now input the x ualue:12.5the results is 0.587034误差分析:当x=ll. 5时,lagrange 一次插值多项式的误差为:①|R(x) | = |f(2) (a) (x-xO) (x-xl)/2| = |sin(x) (11. 5-11) (11. 5~12)/2|<=0. 125②当x=12. 5时,bgrEingc —次插值多项式的误差为:R (x) | = |f(2) (a) (x-xl) (x-x2) | = |sin(x) (12. 5-12) (12. 5-13)/2|<=0. 125③当x二11. 5 lagrange二次插值多项式的误差为:|R(x) | = |f(3) (a) (x-xO) (x-xl) (x—x2)/(3*2) |<=| (11.5-11) (11.5-12) (11.5-13 )/61 =0. 0625④当x=12. 5时,lagrange二次插值多项式的误差为:R(x) =f (3) (a) (x-x3) (x-xl) (x-x2)/(3*2) |〈二| (12. 5-12) (12. 5-12) (12. 5-13)/(3*2) I 二0・ 0625发现:二次插值的误差要小于一次插值的误差。
第5章 实验四Lagrange 插值多项式
实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项
式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。
5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)
()()(,
)()(1
11
1+=--==∏
∑+≠=+=n i x x x x x l x l y x L n i
j j j i j i n i i i 。
其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。
)(x l i 的这种表示具有较好的对称性。
公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。
(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。
5.2 Lagrange 插值多项式源代码I
% 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi)
fi=zeros(size(xi)); np1=length(f); for i=1:np1
z=ones(size(xi)); for j=1:np1
if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end end
fi=fi+z*f(i); end return
例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。
写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。
解:4个数据点的Lagrange 插值公式为:
)
9.36.1(*)7.26.5(*)6.16.5()
9.3(*)7.2)(6.1(*
94.2)
6.59.3(*)
7.29.3(*)6.19.3()
6.5(*)
7.2(*)6.1(*9.3)
6.5
7.2(*)9.37.2(*)6.17.2()
6.5(*)9.3(*)6.1(*22.4)
6.56.1(*)9.36.1(*)
7.26.1()
6.5(*)9.3(*)
7.2(*
3.3)(3------+
------+
------+
------=x x x x x x x x x x x x x L
清单5.1 clear
x=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o')
其结果为:
yi =
1.0596 6.6457
x
g (x ):-, d a t a p o i n t s :o
图5.1 插值多项式曲线图
5.3 Lagrange插值多项式源代码II
% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。
% 输出:C是拉格朗日插值多项式的系数矩阵;L是插值基函数系数矩阵。
function [C,L]=lagran(x,y)
w=length(x);
n=w-1;
L=zeros(w,w);
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(x(j)))/(x(k)-x(j));
end
end
L(k,:)=V;
end
C=y*L
程序中使用了命令poly和conv。
poly命令创建一个向量,其项为以多项式的系数,该多项式具有给定的根。
conv命令生成一个向量,其项为多项式系数,该多项式是另外两个多项式的乘积。
例如:找出两个一次多项式p(x)和q(x)的乘积,它们的根为3和5。
>> p=poly(3)
p=
1-3
>> q=poly(5)
q=
1-5
>> conv(p,q)
ans=
1 -8 15
例5.2 用Lagrange 插值多项式源代码II ,对4对数据(1.6,3.3),
(2.7,4.22),(3.9,5.61),(5.6,2.94),写出这4个数据点的Lagrange 插值公式,并计算出横坐标组xi=[2.101,4.234]时对
应的纵坐标值。
解:4个数据点的Lagrange 插值公式为:
)
9.36.1(*)7.26.5(*)6.16.5()
9.3(*)7.2)(6.1(*
94.2)
6.59.3(*)
7.29.3(*)6.19.3()
6.5(*)
7.2(*)6.1(*9.3)
6.5
7.2(*)9.37.2(*)6.17.2()
6.5(*)9.3(*)6.1(*22.4)
6.56.1(*)9.36.1(*)
7.26.1()
6.5(*)9.3(*)
7.2(*
3.3)(3------+
------+
------+
------=x x x x x x x x x x x x x L
清单5.2 clear
x=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; [C,L]=lagran(x,y); xx=1.5:0.05:6.5; yy= polyval(C,xx); plot(xx,yy, x,y,'o')
数据清单见图5.2,插值曲线图见图5.3。
图5.2 输出插值多项式的系数、插值基函数系数矩阵及yy 值
-15-10
-5
5
10
图5.3 插值多项式曲线图形
例5.3 将区间[-5,5]等分5份、10份,求函数)
1(12x y +=的拉格朗日插值
多项式,作出函数)
1(1
2x y +=的原图像,观察龙格现象得出什么结果?
解:
清单5.3 clear,clf x=-5:2:5; y=1./(1+x.^2); [C,L]=lagran(x,y); xx=-5:0.1:5; yy=polyval(C,xx); hold on
plot(xx,yy,'b',x,y,'.') xp=-5:0.01:5; z=1./(1+xp.^2); plot(xp,z,'r')
清单5.4
clear,clf x=-5:1:5; y=1./(1+x.^2); [C,L]=lagran(x,y); xx=-5:0.1:5; yy=polyval(C,xx); hold on
plot(xx,yy,'b',x,y,'.') xp=-5:0.01:5; z=1./(1+xp.^2); plot(xp,z,'r')
图5.4 5等份插值图形
图5.5 10等份插值图形
通过观察图形可以得出:
(1) 并不是插值节点越多,插值多项式逼近函数效果就越好。
(2) 误差较大地方,是在插值区间两端点附近出现。
练习题
1.设()2/f x x x =+,(1)用基于点0121,2 2.5x x x ===和的二次拉格朗日
多项式,求(1.5)f 和(1.2)f 的近似值。
(2)用基于点5.00=x ,11=x ,
32=x 和53=x 的三次拉格朗日多项式,求(1.5)f 和(1.2)f 的近似值。
2.用等距插值节点计算区间0/2x π≤≤上函数sin x x 的四次拉格朗日多项
式。
每隔/16π计算一次插值误差,并画出图形。