matlab牛顿插值法例题与程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目一:多项式插值

某气象观测站在8:00(AM )开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton )逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。

二、数学原理

假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式:

)()

)(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -⋯⋯-+⋯⋯+-++=αααα (1)

其中系数i α(i=0,1,2……n )为特定系数,可由插值样条i i n y x P =)

((i=0,1,2……n )确定。

根据均差的定义,把x 看成[a,b]上的一点,可得

f(x)= f (0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x )

……

f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n )

综合以上式子,把后一式代入前一式,可得到:

f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+

…+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ])

(x 1n +ω= N n (x )+)

(x n R 其中

N n (x )= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+

…+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2)

)(x n R =

f(x)- N n

(x )= f[x,

0x , (x)

n

,x ])

(x 1n +ω (3)

(x 1n +ω=(0x -x )…(x-x n ) Newton 插值的系数i α(i=0,1,2……n )可以用差商表示。一般有

f k =α[

k

10x x x ⋯⋯,] (k=0,1,2,……,n )

(4)

把(4)代入(1)得到满足插值条件N )()

(i i n x f x =(i=0,1,2,……n )的n 次Newton 插值多项式

N n (x )=f (0x )+f[10x x ,](1x -x )+f[210x x x ,,](1x -x )(2x -x )+……+f[n 10x x x ⋯⋯,](1x -x )(2x -x )…(1-n x -x ).

其中插值余项为:

()!

()

()()()(x 1n f x N -x f x R 1n 1

n n +++==ωξ ξ介于k 10x x x ⋯⋯,之间。 三、程序设计

function [y,A,C,L]=newdscg(X,Y,x,M)

% y 为对应x 的值,A 为差商表,C 为多项式系数,L 为多项式 % 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=; p=; q1=; c1=;

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=conv(C,poly(X(k))); d=length(C);C(d)=C(d)+A(k,k); end

y(k)= polyval(C, z); %输出y 值

end

L(k,:)=poly2sym(C); %输出多项式

>> syms M,X=[1,3,5,7];Y=[,,,];x=10;

>> [y,A,C,L]=newdscg(X,Y,x,M)

y =

A =

0 0 0

0 0

C =

L =

- x^3/480 - (19*x^2)/160 + (697*x)/480 + 3387/160

四、结果分析和讨论

对于不超过三次的插值多项式,x如果选取1,3,5,7这三个点能够得到较好的三次插值多项式L=^^2++。当x=10时,也即9点30分时的温度为度,结果分析知此值应是偏小的。对于选取不同的插值节点,能够得到不同的插值多项式,误差也不尽相同。

五、完成题目的体会与收获

对于牛顿插值法有了更深的了解,合理选择插值节点很重要。加深了对其原理的认识,学会了牛顿插值法的matlab编程,对matlab计算方法更加熟悉。通过完成这道题使我受益匪浅。

相关文档
最新文档