1实验报告一班级:数学与应用数学学号:姓名:成绩:一、实验问题编写一个函数实现Lagrange插值多项式,要求(1)输入:节点X,及节点上的函数值Y,某个数x,输出:输出x对应的Lagrange插值多项式的值。(2)以y=sin(x)为例,取[-pi,pi],节点为X=-pi:0.1:pi,Y=sin(X),画出Lagrange插值多项式的图像和被插值函数的图像。二、问题的分析(涉及的理论知识与求解的方法等)Matlap中没有现成的Lagrange插值函数0()()nkkkLnxylx,所以先编写一个M文件实现Lagrange插值。设n个节点数据以数组x,y输入,输入我们想求的x0,就可获得结果z。以y=sin(x)为例,取[-pi,pi],节点为X=-pi:0.1:pi,Y=sin(X),画出Lagrange插值多项式的图像和被插值函数的图像,观察两个函数的拟合程度。三、计算过程(1)实现lagrange插值多项式函数程序如下:functionz=lagrange(x,y,x0)n=length(x);s=0;l=1;fori=1:n;forj=1:nifj~=i;l=l*(x0-x(j))/(x(i)-x(j));endends=s+l*y(i)endz=s;(2)m文件调用lagrange插值函数x=-pi:0.1:pi;y=sin(x);plot(x,y,'r')holdonx0=-3:0.1:3;y1=[];n=length(x0);fori=1:nz=lagrange(x,y,x0(i));y1=[y1,z];end2plot(x0,y1)3四、问题求解结果由图可见,lagrange插值与被插值函数拟合得很好。五、实验的总结与体会本实验是编写一个函数实现Lagrange插值多项式,利用强大的Matlab软件,可以实现Lagrange插值函数0()()nkkkLnxylx的求解。在实验中,我学会了如何调用function函数和for循环的嵌套,以及在解决问题中如何运用它们。lagrange插值多项式的计算量很大,但是有了计算机,计算量大不再成为问题,从而得到推广。通过本次实验,我更了解到Matlab软件的强大之处,更感觉到它的有趣,我更灵活的掌握了function函数的使用和for循环的嵌套的应用,,使整个编程更灵活了!从本次实验中,我收获很多!填写日期:2012年11月11日