目录
前言
本篇内容为个人所学知识分享
一、牛顿插值法是什么?
由于利用插值基函数得到的拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为重要,但当插值节点增减时,计算要全部重新进行,甚为不便,为了计算方便,重新设计出逐次生成插值多项式的牛顿插值
1.均差下的牛顿插值
当n=1时,此时插值多项式记为编辑,它满足条件编辑
用点弦式表示为
编辑它可看成是零次插值编辑的修正,即编辑
其中编辑是函数编辑的差商,在考察三个节点的二次插值,编辑,
它满足条件
编辑
可表示为
编辑
显然它满足条件编辑及编辑.令编辑,则得
编辑
系数编辑是函数f的“差商的差商”,一般情景已知f在插值点编辑上的值为编辑,要求n次插值多项式编辑满足条件
编辑
则编辑可表示为
编辑
其中编辑为待定系数,与拉格朗日插值不同,这里的编辑是由基函数编辑逐次递推得到的,
2.为了给出编辑的表达式,引入均差的概念
编辑称为函数编辑关于点编辑的一阶均差。
编辑称为编辑的二阶均差。
编辑为编辑的k阶均差
则牛顿插值在均差形式下的公式为
编辑
3.差分形式的牛顿插值公式(牛顿前插公式)
针对于等距节点,即编辑的情形,
这里称h为步长,令编辑
称编辑为编辑处以h为步长的一阶差分,
编辑为编辑处的二阶差分,
编辑为编辑处的n阶差分,
且均差和差分具有以下的关系
编辑 编辑 编辑使用差分代替均差,并令x=x_0+th,则得牛顿前插公式
编辑三、matlab实现代码
1.生成牛顿均差表
function table=Newtonian_mean_difference_table(x,y)
%功能:生成牛顿均差表
%输入:x为插值节点,y为插值节点对应的值
%输出:均差表table,
table=[x',y'];
[M,N]=size(table);
for n=3:M+1%循环作用:从左到右依次生成均差表
for m=n-1:M%循环作用:在每一列里自上而下生成均差表
table(m,n)=(table(m,n-1)-table(m-1,n-1))/(table(m,1)-table(m-n+2,1));
end
end
end
2.牛顿插值多项式
function y0=Newtonian_interpolated(x,y,x0)
%功能:牛顿插值多项式求解
%输入:x为插值节点,y为插值节点对应的值,x0为计算点集
%输出:x0处值的集合y0
y0=onex(1,length(x0));
for k=1:length(x0)
table=Newtonian_mean_difference_table(x,y);%调用均差表函数
y0(k)=y(1);
for m=2:length(x)%循环作用:均差系数(table对角线的上斜对角线元素)×(x-x0)(x-x1)···(x-xn-1)
product=1;
for n=2:m%循环作用:构成(x-x0)(x-x1)···(x-xn-1)
product=product.*(x0(k)-x(n-1));
end
y0(k)=y0(k)+table(m,m+1).*product;
end
end
end
3.生成牛顿差分表
function table=Difference_table(x,h,t,y)
%功能:构造差分表
%输入:第一个插值点x,步长h,次数t,插值点对应的y值
%输出:差分表table
x=x:h:x+h*t;
table=[x',y'];
[M,N]=size(table);
for n=3:M+1%循环作用:从左到右依次生成差分表
for m=n-1:M%循环作用:在每一列里自上而下生成差分表
table(m,n)=(table(m,n-1)-table(m-1,n-1));
end
end
end
4.牛顿前插公式
function y0=Newtonian_pre-insertion(x,h,t,y)
%功能:牛顿前插公式
%输入:最小的点x0,步长h,次数t
%输出:x0对应
table=Difference_table(x,h,t,y)%调用差分表函数
y0=y(1);
for m=2:length(y)%循环作用:差分系数(table对角线的上斜对角线元素)×t(t-1)*...(t-n+1)/n!
product=1;
for n=1:m-1%循环作用:构成t(t-1)*...(t-n+1)/n!
product=product.*(t-n+1)/n;
end
y0=y0+table(m,m+1).*product;
end
end
end
总结:
拉格朗日插值和牛顿插值的推导其实很像是对于线性插值的两点式的点弦式的高阶外推。
拉格朗日插值是两点式,牛顿插值是点弦式。
然后一般牛顿插值和牛顿向前插值的不同在于,牛顿向前插值要求节点是等距节点。
标签:end,编辑,插值法,牛顿,插值,matlab,均差,table From: https://www.cnblogs.com/bubianyingzi/p/17007072.html