实验报告(作业)
课程名称计算方法
班级与班级代码
专业数学与应用数学
指导教师
学号
姓名
提交日期 2012年6月1日
广东商学院教务处制
目录
一、实验目的 (1)
二、实验方法 (1)
(1)拉格朗日插值 (1)
(2)牛顿插值 (1)
三、实验内容 (2)
四、实验程序 (2)
(1)拉格朗日插值 (2)
(2)牛顿插值 (3)
五、实验结果 (4)
(1) 拉格朗日插值 (4)
(2)牛顿插值 (4)
六、结果分析 (4)
实验四 插值问题
一、 实验目的
用拉格朗日插值和牛顿插值的方法,在已知函数在点n x x x ,,,10 的函数值n y y y ,,,10 的情况下,求插值节点x 的函数值y ,即求)(x f 。
并比较结果,说明为什么相等。
二、 实验方法
(1) 拉格朗日插值
根据n x x x ,,,10 ;n y y y ,,,10 构造插值多项式
()k n k n k j j j k i n y x x x x x p •⎪⎪⎪⎭
⎫ ⎝⎛--=∑∏=≠=00 将插值点x 代入上式,就可得到函数)(x f 在点x 处的函数值的近似值。
(2) 牛顿插值
根据n x x x ,,,10 ;n y y y ,,,10 构造插值多项式
()()()()()()()()110100100,,,,----++-+=n n n x x x x x x x x x f x x x x f x f x N 牛顿插值公式中各项的系数就是函数)(x f 的各阶均差(差商)()()n x x x f x x f x f ,,,,,,),(10100 ,因此,在构造牛顿插值公式时,常
常先把均值差列成一个表,此表称为均差表。
三、实验内容
从函数表
出发,计算)5.0(f,()7.0f及)
.0(f的近似值。
85
四、实验程序
(1)拉格朗日插值
function f=agui_lagrange(x0,y0,x) %x0为节点向量,y0为节点上的函数值,x为插值点,f返回插值
n=length(x0); %n为节点向量x0的长度
m=length(x); %m为x的长度
format long %数据显示为15字长定点数
s=0.0; % s为k次插值多项式的值,初始值为0.0
for k=1:n %k=1,2,3,...,n
p=1.0; %p为关于x0,x1,...,xj的插值,初始值为1.0
for j=1:n %j=1,2,3,...,n
if j~=k %j不等于k
p=p*(x-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
f=s; %f为使用拉格朗日插值多项式求得的x近似值
end
(2)牛顿插值
function f=agui_newtonint(x0,y0,x) %x0为节点向量,y0为节点上的函数值,x为插值点,f返回插值
n=length(x0); %n为节点向量x0的长度
m=length(y0); %m为x的长度
format long %数据显示为15字长定点数
Y=zeros(n); %Y为差商表,初始值为n×n的零矩阵
Y(:,1)=y0'; %把向量y0的转置依次存入矩阵Y的第一列中
for k=1:n-1 %k=1,2,3,...,n-1
for i=1:n-k %i=1,2,...,n-k
Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x0(i+k)-x0(i));
end
end
s=0.0; %s为牛顿插值多项式,初始值为0.0
for i=1:n %i=1,2,3,...,n
p=1.0; %p的初始值为1.0
for k=1:i-1 %k=1,2,...,i-1
p=p*(x-x0(k));
end
s=s+Y(1,i)*p;
end
f=s; %f为使用牛顿插值多项式求得的x近似值
end
五、实验结果
(1)拉格朗日插值
(2)牛顿插值
六、结果分析
(1)由两种程序运行的最终结果来看,使用拉格朗日插值和牛顿插值等不同的方法对于同一系列的点及相关函数求插值,所
得的结果是完全相等的。
(2)由两种程序的运行来看,对于同一系列的点及相关函数求插
值时,拉格朗日插值是通过构造n+1个n次基本多项式,然后线性组合(也是n次的多项式)而得到的;牛顿插值是通过求各阶差商,递推得到的一个牛顿多项式。
而拉格朗日插值法和牛顿插值法都是求一条n次代数曲线近似地表示待插值的函数曲线,所以它们的结果是相等的。