《构造拉格朗日插值多项式.doc》由会员分享,可在线阅读,更多相关《构造拉格朗日插值多项式.doc(6页珍藏版)》请在金锄头文库上搜索。
1、MATLAB期中作业构造拉格朗日插值多项式一、问题分析:首先从最简单的一次lagrange出发构造一个插值函数,过两个点做一条直线,用两点式表示,则有分别记作:则是的一次插值基函数,是的一次插值基函数。是这两个差值基函数的线性组合:,这种形式的插值称为拉格朗日线性插值。同样地我们可以用三个点来构造过三个点的插值函数,即二次插值。点的二次插值基函数为:点的二次插值基函数为:点的二次插值基函数为:有了这3个二次插值基函数,可得到过的二次拉格朗日插值项式:有了上面的一次和二次差之多插值多项式、,我们可以推广到次插值多项式。下面构造通过各节点的次插值多项式,是之满足 首先构造个插值节点上的插值基函数,
2、对任一点所对应的插值基函数,由于在所有取零值,因此有因子。又因是一个次数不超过的多项式,所以只可能相差一个常数因子,固可表示成:利用得:于是因此满足 的插值多项式可表示为:从而次拉格朗日插值多项式为:二、lagrange插值多项式在MATLAB中的实现:定义函数文件lagran:function y=lagran(x0,y0,x)% x0,y0是已知的插值点坐标% x是待求点组成的数组% y是拉格朗日差值多项式在x处的值% L是拉格朗日插值函数的权函数n=length(x0);m=length(x);L=zeros(1,n);y=zeros(1,m);for k=1:m s=0; for i=
3、1:n L(i)=1; for j=1:n if j=i L(i)=L(i)*(x(k)-x0(j)/(x0(i)-x0(j); end end s=s+y0(i)*L(i); endy(k)=s;endreturn;用下列命令文件调用函数文件lagran.m:x1=1.1 2.3 3.9 5.1;y1=3.887 4.276 4.651 5.117;x=2.101 3.523 4.234 5.226;y=lagran(x1,y1,x)P,S=polyfit(x,y,3)plot(x,y,r*);grid;hold onplot(x1,y1,g)title=(lagran(x,y);xlabel(x);ylabel(y);运行结果:y = 4.2257 4.5531 4.7526 5.1858P = 0.0218 -0.1909 0.7768 3.2345S = R: 4x4 double df: 0 normr: 2.5121e-015三、 结果分析: