MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

  • 格式:doc
  • 大小:155.50 KB
  • 文档页数:6

姓名:樊元君学号:2012200902 日期:2012.10.25
1.实验目的:
掌握拉格郎日插值法与牛顿插值法构造插值多项式。

2.实验内容:
分别写出拉格郎日插值法与牛顿插值法的算法,编写程序上机调试出结果,要求所编程序适用于任何一组插值节点,即能解决这一类问题,而不是某一个问题。

实验中以下列数据验证程序的正确性。

已知下列函数表
求x=0.5635时的函数值。

3.程序流程图:
●拉格朗日插值法流程图:
●牛顿插值法流程图:
4.源程序:
●拉格朗日插值法:function [] = LGLR(x,y,v)
x=input('X数组=:');
y=input('Y数组=');
v=input('插值点数值=:');
n=length(x);
u=0;
for k=1:n
t=1;
for j=1:n
if j~=k
t=t*(v-x(j))/(x(k)-x(j));
end
end
u=u+t*y(k);
end
disp('插值结果=');disp(u); end
●牛顿插值法:
function [] = Newton(x,y,v)
x=input('X数组=:');
y=input('Y数组=:');
v=input('插值点数值=:');
n=length(x);
t=zeros(n,n);
u=0;
for i=1:n
t(i,1)=y(i);
end
for j=2:n
for i=2:n
if i>=j
t(i,j)=(t(i,j-1)-t(i-1,j-1))/(x(i)-x(i-j+1));
end
end
end
for k=1:n
s=1;
m=1;
for j=1:k
if j<k
s=s*(v-x(j));
end
end
m=s*t(k,k);
u=u+m;
end
disp('插值结果=');disp(u);
end
5.运行结果:
6.实验小结:
通过这次实验,加深对拉格朗日插值算法和牛顿插值法算法(差商概念)的认识,重温熟悉了MATLAB简单编程的语法规定,两者的优缺点:拉格朗日插值法增加一个节点,需要整个计算重新开始,没有继承性;差商和差分概念帮助牛顿插值法节省计算次数,具有继承性。