MATLAB牛顿插值法例题与程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB牛顿插值法例题与程序
题目一:多项式插值
某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10) 0
、数学原理
假设有n+1个不同的节点及函数在节点上的值(x 0,y 0), ...... (x n ,y n ),插值多项式有如下形式:
Pn(X) 0 1(X-X°) 2(X-X°)(X X1 ) n(X-X°)( X X1) (X X n)
(1)
其中系数i (i=0,1,2 .... n)为特定系数,可由插值样条
P n(xJ y i (i=0,1,2 .... n)确定。
根据均差的定义,把x瞧成[a,b]上的一点,可得
f(X)= f( X°)+f[ X。, X』(X-X o)
f[X, X°]= f[ X0, X1〕+f[X, X0, X1] ( X -X1)
f[X, X0,…X n-1 ]= f[X, X0,…X n]+ f[X, X。,…X n ](X-X n)
综合以上式子,把后一式代入前一式,可得到:
f(x)= f[ X°]+f[ X0, X』(X-X°)+ f[ X0, X1, X2〕( X-X°)( X-X1)+
…+ f[X, X0 ,…X n ]( X-X0)…(X-X n-1)+ f[X, X° ,…X n , X ] n 1( X)=
N n (X)+ R(X)
其中
N n (X)= f[ X°]+f[ X0, X1]( X-X°)+ f[ X0, X1, X2]( X-X°)( X-XJ +
…+ f[x, X0,…X n]( X-X0)…(X-X n-1)
MATLAB牛顿插值法例题与程序
R n(x) = f(x)- N n (x)= f[X, X。,…X n ,X ] n 1(X)
⑶
n 1(X)=(X-X o)…(X-X n)
Newton插值的系数i(i=0,1,2 ...... n)可以用差商表示。一般有
k f [ X o, X1 X k ] (k=0,1,2, ...... ,n ) ⑷
把⑷ 代入⑴ 得到满足插值条件N(X i)f &丿(i=0,1,2,……n)的n次
Newton插值多项式
N n(x)=f( x°)+f[ X0, xj( x -X1 )+f[ X0, X1, X2K x -X1)( x -x2)+ .................. +f[ X0, X1 X n]( x -x1)( x -x2)…(X-X n-1)、
其中插值余项为:
n \ )
f
R n(X) f(X)-N ( X ) -^―)n 1(X )
n(n 1)! n1
介于X0, X1 X k之间。
三、程序设计
fun ctio n [y,A,C, L]=newdscg(X,Y,x,M)
% y为对应x的值,A为差商表,C为多项式系数丄为多项式
% X为给定节点,Y为节点值,x为待求节点
n=length(X); m=length(x); % n 为X 的长度
for t=1:m
z=x(t); A=zeros( n,n) ;A(:,1)=Y';
s=0、0; p=1、0; q1=1、0; c1=1、0;
for j=2: n
for i=j:n
A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1));
end
q1=abs(q1*(z-X(j-1)));c1=c1*j;
end
C=A (n,n) ;q1=abs(q1*(z-X( n)));
for k=(n-1):-1:1
C=co nv(C,poly(X(k)));
d=le ngth(C);C(d)=C(d)+A(k,k);
end
MATLAB牛顿插值法例题与程序
end
L(k,:)=poly2sym(C); %输出多项式
>> syms M,X=[1,3,5,7];Y=[22 、5,24、4,25 、2,24 、8];x=10;
>> [y,A,C,L]=newdscg(X,Y,x,M)
y =
21 、7313
A =
22 、5000 0 0 0
24 、4000 0 、9500 0 0
25 、2000 0 、4000 -0 、1375 0
24 、8000 -0 、2000 -0 、1500 -0 、0021
C =
-0 、0021 -0 、1187 1 、4521 21 、1688
L =
-xW/480 - (19*x A2)/160 + (697*x)/480 + 3387/160
四、结果分析与讨论
对于不超过三次的插值多项式,x 如果选取1,3,5,7 这三个点能够得到较好的三次插值多项式L=-0、002似八3-0、1187xA2+1、4521X+21、1688。当x=10 时, 也即9 点30分时的温度为21、7317度,结果分析知此值应就是偏小的。对于选取不同的插值节点, 能够得到不同的插值多项式, 误差也不尽相同。
五、完成题目的体会与收获
对于牛顿插值法有了更深的了解, 合理选择插值节点很重要。加深了对其原理的认识,学会了牛顿插值法的matlab编程,对matlab计算方法更加熟悉。通过完成这道题使我受益匪浅。