第3节 差商及Newton插值多项式
- 格式:ppt
- 大小:836.00 KB
- 文档页数:20
第8讲 牛顿插值公式§1.4 差商与差分及其性质 1 差商的概念:称10110)()(],[x x x f x f x x f --=为函数f (x )的一阶差商;称21021210],[],[],,[x x x x f x x f x x x f --=为函数f (x )的二阶差商;一般地,称010110],...,[],...,[],...,,[x x x x f x x f x x x f n n n n --=-为函数f (x )的n 阶差商;特别地,定义)(][00x f x f =为函数f (x )关于x o 的零阶差商。
由此可知,高阶差商总是由比它低一阶的的两个差商组合而成。
2(a )n 阶差商可以表示成n +1个函数值01,,,n y y y 的线性组合,即∑-----==+-ki n i i i i i i i i k x x x x x x x x x x x f x x f 011100)())(())(()(],...,[该性质说明:k 阶差商],...,,[10n x x x f 计算是由函数值f (x 0),f (x 1),…f (x k )线性组合而。
如:],,[],,[],,[012201210x x x f x x x f x x x f ==;011100010110)()()()(],[x x x f x x x f x x x f x f x x f -+-=--=))(()())(()())(()()()()()()()()()()()(],[],[],,[120222101120100021221210111000111000201011212021021210x x x x x f x x x x x f x x x x x f x x x x x f x x x f x x x f x x x f x x x f x x x f x x x x x f x f x x x f x f x x x x f x x f x x x f --+--+--=--+------=-+-=------=--=对称性): 差商与节点的顺序无关。
二、差商法牛顿多项式插值2.1 问题描述使用差商法构建牛顿多项式插值,首先给出牛顿插值多项式:()[][]()[]()()[]()()001001201010n n n N x f x f x ,x x x f x ,x ,x x x x x f x ,x ,,x x x x x =+-+--++-- (2.1)上式中的系数可由差商表得到:][01n f x ,x ,,x []()()111i i i i i if x f x f x ,x x x +++-=- (2.2)[][][]111111i i k i k i i i k i i i k i k i k if x ,,x ,x f x ,x ,,x f x ,x ,,x ,x x x ++-+++-++-++-=- (2.3)使用上述二式构建差商表,进而求出差商的结果。
2.2 代码代码为FORTRAN 语言,使用VS2010在win10环境下写成的,使用FORTRAN95格式,使用安装在VS2010上的IVF2011编译器生成并运行成功。
PROGRAM CHASHANG IMPLICIT NONEINTEGER :: N,I,J !N 是样本个数REAL*8 :: X(20), Y(20) !作为样本的x 值和y 值 REAL :: F(20,20) !数组,用于盛放差商表REAL :: INPUT,OUTPUT,INPUTL(20) !input 是要求的插值点,output 是input 点对应的y 值!读取离散数据OPEN(unit=11,file='INPUT.txt') READ(11,*) N,INPUT READ(11,*) X(1:N+1) READ(11,*) Y(1:N+1)!构建差商表F(1:N+1,1:N+1)=0 DO I=1,N+2F(I,1)=Y(I) !C0第一列 ENDDODO I=2,N+2,1 DO J=2,I,1F(I,J)=(F(I,J-1)-F(I-1,J-1))/(X(I)-X(I-J+1)) ENDDO ENDDO!输出差商表 DO I=1,N+2 DO J=1,N+1WRITE(*,*)F(I,J) ENDDO ENDDO!构建累乘表INPUTL INPUTL(1:N+1)=1 DO I=2,N+1INPUTL(I)=INPUTL(I-1)*(INPUT-X(I-1)) !分别求出公式2.1中的各项并存储在INPUTL(I)中,累乘n 次 ENDDO!计算结果OUTPUT=F(1,1)*INPUTL(1) DO I=2,N+2OUTPUT=OUTPUT+F(I,I)*INPUTL(I) !累加得到公式2.1中的N(x)值ENDDOOPEN(unit=22,file='OUTPUT.txt') WRITE(22,*) OUTPUTENDPROGRAM2.3 验证使用了沈艳等人《高等数值计算》(清华大学出版社出版的)一书中例6.1(P100)中的样本值开展了验证,将题目中的6π,4π,3π写为小数形式: 0.5235 0.7854 1.0472同样,其对应的函数值也写为小数形式:0.5 0.7071 0.8660 输入插值点518π,即0.8727,程序执行之后,得到该插值点对应的y 值: 0.765433667340945输入文件格式:—————————————— 2 0.872660.5236 0.7854 1.0472 0.5 0.7071 0.866得到的输出文件:——————————————0.7654179 ——————————————。