MAAB牛顿插值法例题与程序
- 格式:docx
- 大小:66.84 KB
- 文档页数:3
题目一:多项式插值
某气象观测站在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 ).
其中插值余项为:
ξ介于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);%输出多项式 >>symsM,X=[1,3,5,7];Y=[,,,];x=10; >>[y,A,C,L]=newdscg(X,Y,x,M) y= A=
四、结果分析和讨论
对于不超过三次的插值多项式,x如果选取1,3,5,7这三个点能够得到较好的三次插值多项式L=^^2++。当x=10时,也即9点30分时的温度为度,结果分析知此值应是偏小的。对于选取不同的插值节点,能够得到不同的插值多项式,误差也不尽相同。
五、完成题目的体会与收获
对于牛顿插值法有了更深的了解,合理选择插值节点很重要。加深了对其原理的认识,学会了牛顿插值法的matlab编程,对matlab计算方法更加熟悉。通过完成这道题使我受益匪浅。