Lagrange 插值多项式与Newton插值.docVIP

  • 83
  • 0
  • 约2.51千字
  • 约 7页
  • 2020-12-17 发布于浙江
  • 举报
专业     序号   姓名      日期     实验1 Lagrange 插值多项式 【实验目的】 1.掌握用MATLAB计算拉格朗日插值方法,改变节点的数目,对插值结果进行初步分析; 2.掌握用MATLAB的插值方法并通过实例学习用插值解决实际问题。 3. 观察Runge现象的演示。 输入n,【程序设计】 输入n, 输入x,令y=0对i=0,1......,n 执行 输入x,令y=0 对i=0,1......,n t=1对j==0,1......,nIf ji y=y+ 执行 end end t=1对j==0,1......,n If ji y=y+ 输出x,y,结束 输出x,y,结束 【实验内容】 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 % 见 P84 f = inline(1./(1+25*x.^2)); % 定义函数 n = 11; X = linspace(-1,1,n); % n 等分( n+1 个点),插值点横坐标 Y = f(X); % 插值点纵坐标 x = -1 : 0.01 : 1; % 加细 x y = 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:n t=1; for j = 1:n if j ~= i t = t.*((x-X(j))/(X(i)-X(j))); % 注意这里是点乘,字母与书上不同,此时t变成向量了 end end y=y+ t.*Y(i); end 【运行结果如下】: 【结果分析】: 拉格朗日插值实验通过离散的点来构造一个函数来逼近原来的函数,理论上应该是点越多,构造函数应该会越来越逼近原函数,但是却发生了Range现象,所以在利用拉格朗日插值法来构造函数来逼近原函数时,应该选择适当的点来逼近原函数,但即使如此,依然不能有效的避免Range现象。 实验2 Newton 插值多项式 【实验目的】 1.掌握用MATLAB计算牛顿插值方法,改变节点的数目,对插值结果进行初步分析; 2.掌握用MATLAB的牛顿插值方法并通过实例学习用插值解决实际问题。 3. 观察Runge现象的演示。 【程序设计】 对i=0,1......,n输入n, 执行 对i=0,1......,n 输入n, 对i=n-1,.....,0输入x, 执行 end 对i=n-1,.....,0 输入x, 输出x,y,结束 输出x,y,结束 【程序如下】: function try_Runge % 见 P84 f = inline(1./(1+25*x.^2)); % 定义函数 n = 11; X = linspace(-1,1,n); % n 等分( n+1 个点),插值点横坐标 Y = f(X); % 插值点纵坐标 x = -1 : 0.01 : 1;% 加细 x y=interp_new(X,Y,x); % 作图 (见P84图4-6) plot(x,f(x),r,X,Y,o,x,y,b) title(Runge现象) % 加标题 legend(y=1/(1+25*x^2),插值点 ,等分的10次插值多项式,0

文档评论(0)

1亿VIP精品文档

相关文档