学习资料
题目一:多项式插值
某气象观测站在8: 00 (AM开始每隔10分钟对天气作如下观测,用三次 多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出 9点 30分该地区的温度(x=10)。
X y
1 22.5 2 23.3 3 24.4 4 21.70 5 25.2 6 28.5 7 24.8 8 25.4 、数学原理 假设有n+1个不同的节点及函数在节点上的值(xg, y°), ...... (xn , yn ),
插值多项式有如下形式:
Pn(X)
0
(X-Xo) 2(X-Xo)(X Xi ) (X-Xo)( X Xi) (X Xn)
(1)
其中系数i (i=0,1,2 ................ n)为特定系数,可由插值样条
Pn(x)
y
(i=0,1,2……n)确定。 根据均差的定义,把x看成[a,b]上的一点,可得
f(x)= f
( X0 )+f[ X0, X1] ( X-X0 )
X0,X1]
f[x, x°]= f[ X0,X1〕+f[X,
( X -X1 )
f[x, X0,…Xn-1〕= f[X, X0,…Xn]+ f[X, X。,…X n ](X-X n )
综合以上式子,把后一式代入前一式,可得到:
f(x)= …+ f[X,
f[
x°]+f[ X0,X1] ( X-X0) + f[ X0,X1,X2] ( X -X0) ( X -X1 ) +
X0,…Xn] ( X-X0 )••• (X-X n-1
)+ 叹 X。,…Xn,X] n 1( ) = Nn
X
(X) +R(X)
其中
N(X)
n
= f[ X0 ]+f[ X°, X1] ( X -X0 ) + f[ X0,X1,X2] ( X-X0 ) ( X-X1 )
+
…+ f[X, X0,…Xn]
(
X -X0 (X-X n-1)
(2)
仅供学习与参考
学习资料
Rn(x) = f(x)- N n ( x )
= f[x, X。,…X n , X
]
(3)
n 1(X)
= ( X-Xo (x-x n)
Newton插值的系数j (i=0,1,2 ............ n)可以用差商表示。一般有
k f
[ Xo, Xi Xk ] ( k=0,1,2 , .... , n
(4)
把(4)代入(1)得到满足插值条件Nn(Xi)f (Xi) (i=0,1,2,… n次Newton插值多项式
Nn
(x)
=f ( Xo ) +f[ Xo, X1]
( X -X1 ) +f[ Xo, X1, X2] ( x -X1
)(
+
...... +f[ Xo, X1 Xn]
(
x -X1
)
(
x -x2
)…(X - X n-1 )
•
其中插值余项为:
f “()
Rn(X)
f ( x)-N ( X )
丄二)n1(X )
n
(n 1)! n1
介于Xo, X1
Xk之间。
三、程序设计
fun ctio n [y,A,C, L]=newdscg(X,Y,x,M)
% y为对应x的值,A为差商表,C为多项式系数,L为多项式
% X为给定节点,丫为节点值,x为待求节点 n=length(X); m=length(x); % n 为 X 的长度 for t=1:m
z=x(t); A=zeros( n,n) ;A(:,1)=Y'; s=o.o; p=1.o; q1=1.o; c1=1.o; 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)));
仅供学习与参考
n 1(X
)
)
•• n)的 x -X2)
学习资料
d=le ngth(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=[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
0 0
24.4000 0.9500
25.2000 0.4000 -0.1375
0 24.8000 -0.2000 -0.1500 -0.0021
-0.0021
-0.1187 1.4521 21.1688
-xW/480 - (19*xA2)/160 + (697*x)/480 + 3387/160 四、结果分析和讨论
对于不超过三次的插值多项式, x 如果选取 1,3,5,7 这三个点能够得到较好 的三次插值多项式 L=-0.0021xA3-0.1187xA2+1.4521x+21.1688 。当 x=10 时,也 即9点30分时的温度为 21.731 7度,结果分析知此值应是偏小的。对于选取不 同的插值节点,能够得到不同的插值多项式,误差也不尽相同。 五、完成题目的体会与收获
对于牛顿插值法有了更深的了解, 合理选择插值节点很重要。 加深了对其原 理的认识, 学会了牛顿插值法的 matlab 编程, 对 matlab 计算方法更加熟悉。 通 过完成这道题使我受益匪浅。
仅供学习与参考
因篇幅问题不能全部显示,请点此查看更多更全内容