搜索
您的当前位置:首页正文

MATLAB牛顿插值法例题与程序复习过程

2020-11-24 来源:赴品旅游


学习资料

题目一:多项式插值

某气象观测站在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 计算方法更加熟悉。 通 过完成这道题使我受益匪浅。

仅供学习与参考

因篇幅问题不能全部显示,请点此查看更多更全内容

Top