MATLAB牛顿插值法例题与程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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计算方法更加熟悉。通过完成这道题使我受益匪浅。

相关文档
最新文档