计算方法插值法(均差与牛顿插值公式)
- 格式:ppt
- 大小:1.09 MB
- 文档页数:36


牛顿插值法
一:实验目的:
1.matlab中多项式的表示及多项式运算
2.用matlab实现牛顿插值法
二:实验代码
(一)function [p]=Newton_Ployfit(X,Y)
if size(X) ~= size(Y)
error;
end
format long g
r=size(X);n=r(2);
M=ones(n,n);
M(:,1)=Y';
for i=2:n
for j=i:n
M(j,i)=(M(j,i-1)-M(j-1,i-1))/(X(j)-X(j-i+1));
end
end
M
p0=[zeros(1,n-1) M(1,1)];p=p0;
for i=1:n-1
p1=M(i+1,i+1).*poly(X(1:i));
p0=[zeros(1,n-i-1) p1];
p=p+p0;
end
(二)x0=linspace(0,2*pi,10);
y0=sin(x0);
p=Newton_Ployfit(x0,y0);
x=0:0.2:2*pi;
y1=sin(x);
y2=polyval(p,x);
plot(x,y1,'co',x,y2,'r');
三:流程图
N
Y
N
Y
Y N
N
Y 输入n
i=0
i=i+1 分别输入n+1个输入各节点
第五章 函数近似计算(插值问题)的插值方法
5.3 Newton插值/均值与差分
lagrange插值多项式作为一种计算方案,公式简洁,做理论分析也方便。其缺点是,当节点改变时,公式需要重建,计算量大;如果还要根据精度要求,选取合适的节点和插值多项式的次数,则只好逐次计算出 )(1xL, )(2xL 等,并做误差试算,才可以做到,这当然是不理想的。
为次,人们从改进插值多项式的形式入手,给出另一种风格的插值公式,这就是Newton(牛顿)插值公式。
Newton插值公式通过均差和差分的记号来表达。
1. 均差的概念及其性质
定义 5.3.1 设函数f在互异节点,,10xx上的值为 )(0xf, )(1xf,等,定义
(1) f在jixx,上的1阶均差为
jijijixxxfxfxxf)()(],[
(2) f在kjixxx,,上的2阶均差为
kikjjikjixxxxfxxfxxxf],[],[],,[
(3)递推地,f在kxxx,,,10上的k阶均差为
kkkkxxxxxfxxxfxxxf02111010],,,[],,,[],,,[
同时规定f在ix上的零阶均差为 )(][]ixfxf
性质1 k阶均差可以表示成1k个函数值的线性组合,即
kjkjjjjjjjkxxxxxxxxxfxxxf011010)())(()()(],,,[(5.3.5)
或记为 kjjkjkxxfxxxf0110)(')(],,,[ (5.3.5b)
证明:用数学归纳法。当1k时由均差定义有
011100101010)()()()(],[xxxfxxxfxxxfxfxxf
故(5.3.5)式成立。现假设1mk时(5.3.5)已成立,对mk由均差定义及归纳假设有 mmmmxxxxxfxxxfxxxf02111010],,,[],,,[],,,[
牛顿插值法公式
牛顿插值法公式,这可真是个有趣又实用的数学工具!
还记得我当年读书的时候,有一次参加数学竞赛的集训。那时候,我们一群对数学充满热情的小伙伴天天聚在一起钻研各种难题。有一天,老师就给我们讲到了牛顿插值法公式。
当时,我们都被这个看起来有点复杂的公式给难住了。老师在黑板上写下:$N(x) = f[x_0] + f[x_0, x_1](x - x_0) + f[x_0, x_1, x_2](x -
x_0)(x - x_1) + \cdots + f[x_0, x_1, \cdots, x_n](x - x_0)(x - x_1) \cdots (x -
x_{n-1})$ ,然后开始给我们讲解每个部分的含义。
老师说,这个公式就像是一个神奇的魔法,能够通过已知的几个点,帮我们推测出其他未知点的大致情况。比如说,我们知道了一些温度随时间变化的几个特定时间点的数值,用牛顿插值法公式就能大概猜到其他时间点的温度。
咱来仔细瞅瞅这个公式。首先,$f[x_0]$ 就是我们已知的第一个点的函数值。而 $f[x_0, x_1]$ 呢,它叫一阶差商,计算方法是
$\frac{f(x_1) - f(x_0)}{x_1 - x_0}$ 。再往后的二阶差商 $f[x_0, x_1,
x_2]$ 、三阶差商 $f[x_0, x_1, x_2, x_3]$ 等等,计算起来就更复杂一点啦,但原理都是相通的,就是通过不断地找差值的差值来找到规律。
举个简单的例子吧。假设我们知道三个点,$(1, 2)$ 、$(2, 5)$ 和
$(3, 10)$ 。先算一阶差商,$f[1, 2] = \frac{5 - 2}{2 - 1} = 3$ ,$f[2, 3] = \frac{10 - 5}{3 - 2} = 5$ 。然后算二阶差商,$f[1, 2, 3] = \frac{5 - 3}{3 -
1} = 1$ 。这样,我们就能用牛顿插值法公式写出通过这三个点的插值多项式啦。
举例来看:可以认为某水文要素T随时间t的变化是连续的,某一个测点的水文要素T可以
看作时间的函数T=f(t),这样在实际水文观测中,对测得的(n+1)个有序值进行插值计算
来获取任意时间上的要素值。
①平均值法:若求T
i和T
i+1之间任一点T,则直接取T为T
i和T
i+1的平均值。
插值公式为:T=T
i+T
i+12
②拉格朗日(Lagrange)插值法:若求T
i和T
i+1之间任一点T,则可用T
i-1、T
1、T
i+1三个点
来求得,也可用T
i、T
i+1、T
i+2这三个点来求得。
前三点内插公式为:T=(t-t
i)(t-t
i+1)
(t
i-1-t
i)(t
i-1-t
i+1) T
i-1+(t-t
i-1)(t-t
i+1)
(t-t
i-1)(t-t
i+1) T
i+(t-t
i)(t-t
i-1)
(t
i+1-t
i)(t
i+1-t
i-1) T
i+1
后三点内插公式为:T=(t-t
i+1)(t-t
i+2)
(t
i-t
i+1)(t
i-t
i+2) T
i+(t-t
i)(t-t
i+2)
(ti-t
i)(t
i-t
i+2) T
i+1+(t-t
i)(t-t
i+1)
(t
i+2-t
i)(t
i+2-t
i+1) T
i+2
为提高插值结果可靠性,可将前后3点内插值再进一步平均。
③阿基玛(Akima)插值法:对函数T=f(t)的n+1个有序型值中任意两点T
i和T
i+1满足:
f(t
i)=T
i dfdt |
t-ti=k
i f’(t
i+1)=T’
i dfdt |
t-ti+1=k
i+1
式中k
i,k
i+1为曲线f(t)在这两点的斜率,而每点的斜率和周围4个点有关,插值公式为:
T=P
0+P
1(t-t
i)+P
2(t-t
i)2+P
3(t-t
i)3,来对T
i和T
i+1之间的一点T进行内差。
④牛顿(Newton)插值法:若求T
i和T
i+1之间任一点T,插值公式为:
T=f(x
0)+(x-x
0)f(x
0,x
1)+ (x-x
0)(x-x
1)f(x
0,x
1,x
2)+…+(x-x
0)(x-x