差商与牛顿插值多项式

合集下载

§2.4 差商与Newton插值公式

§2.4 差商与Newton插值公式

称为函数f (x)在x0、x1 、xk 点的二阶差商.
© 2009, Henan Polytechnic University §4 差商与Newton插值公式
6 6
第二章 插值法
一般地,k-1阶差商的差商
f [ x0 ,, xk 2 , xk ] f [ x0 , x1 ,, xk 1 ] f [ x0 , x1 ,, xk ] x k x k 1
© 2009, Henan Polytechnic University §4 差商与Newton插值公式
1010
第二章 插值法
性质3 若f(x)在[a,b]上存在n阶导数, 且节点x0 , x1 ,…,
xn∈[a,b] ,则至少存在一点 [a, b] 满足下式
f ( n ) ( ) f [ x0 , x1 ,, xn ] n!
f ( x 3 ) f ( x0 ) 1 1 a3 a a 1 2 x x x3 x2 x x 3 0 3 1

© 2009, Henan Polytechnic University §4 差商与Newton插值公式
© 2009, Henan Polytechnic University §4 差商与Newton插值公式
1212
第二章 插值法
2.4.2 牛顿插值公式 N n ( x) a0 a1 ( x x0 ) an ( x x0 )( x xn1 )
a0 f ( x0 )
1616
第二章 插值法
f ( x ) f ( x0 ) f [ x, x0 ]( x x0 )
f [ x , x0 ] f [ x0 , x1 ] f [ x , x0 , x1 ]( x x1 )

数值分析2-3(牛顿插值法)

数值分析2-3(牛顿插值法)

二阶差商
f [ xi , x j , xk ]
一般的k阶差商定义为
f [ x0 , x1 ,..., x k ] f [ x0 ,..., x k 2 , x k ] f [ x0 , x1 ,..., x k 1 ] x k x k 1
特别地,f(x)关于一个点xi的零阶 差商定义为函数值本身,即
§3
差 商 与 牛 顿 插 值
一、差商及其性质 二、差商的计算
三、牛顿插值公式 四、牛顿插值法举例
一、差商及其性质
1. 差商的定义 函数关于 xi, xj 一阶差商
f [ xi , x j ] fห้องสมุดไป่ตู้( x j ) f ( xi ) x j xi
f [ x j , xk ] f [ xi , x j ] xk xi
∶ ∶ ∶
f[x0,x1,x2] f[x1,x2,x3]
∶ ∶ ∶
f[x0,x1,x2,x3]
∶ ∶ ∶
例 已知函数y= f (x)的观测数据如下, 试构造差商表,并求 f [2,4,5,6]的值
x 0 2 f(x) 1 5
4 5 6 9 -4 13
解 构造差商表如下
xi f(xi) 一阶 二阶 三阶 0 1 2 5 2 4 9 2 0 5 -4 -13 -5 -1 6 13 17 15 5 四阶
4 3 2
用二次插值求f (3)时,取
x0=2, x1=4, x2=5, 得 f ( 3) f ( 2) f [2,4]( 3 2)
f [2,4,5]( 3 2)( 3 4) 7 5( 3 2)( 3 4) 12 思考:若本题只给出前三个点,结果 如何?请你总结牛顿插值法何时停止?

数值分析2-3(牛顿插值法)差商和与牛顿插值

数值分析2-3(牛顿插值法)差商和与牛顿插值

确定插值多项式的次数
根据已知数据点的数量确定插值多项式的最高次 数。
计算插值多项式
利用差商表,通过拉格朗日插值公式计算插值多 项式。
3
进行插值
将需要插值的x值代入插值多项式中,得到对应 的y值。
05
牛顿插值法的优缺点分析
优点
计算简单
局部性质好
相比于其他多项式插值方法,牛顿插 值法的计算过程相对简单,不需要求 解高阶方程,降低了计算的复杂度。
数值分析2-3:牛顿 插值法、差商和
目录
• 引言 • 牛顿插值法的基本概念 • 差商的计算方法 • 牛顿插值法的实现步骤 • 牛顿插值法的优缺点分析 • 实际应用案例 • 总结与展望
01
引言
主题简介
数值分析是数学的一个重要分支,主 要研究如何用数值方法解决各种数学 问题。
本章节将介绍牛顿插值法、差商和的 概念及其应用。
03
差商的计算方法
差商的递推公式
差商的递推公式
$f[x_0, x_1, ldots, x_n] = frac{f[x_1, ldots, x_n] - f[x_0, x_1, ldots, x_{n-1}]}{x_n - x_0}$
应用
通过递推公式,我们可以计算任意点之间的差商,从而得到插值多项式的导数。
在数据点附近,牛顿插值具有较好的 局部性质,能够提供较为准确的插值 结果。
适用性强
牛顿插值法适用于各种数据分布情况, 无论是线性还是非线性数据,都能得 到较好的插值结果。
缺点
全局误差较大
由于牛顿插值多项式的构造方式, 其全局误差通常较大,尤其是在 数据点较少的情况下。
对数据点敏感
如果数据点发生微小的变动,牛 顿插值多项式可能会发生较大的 变化,导致插值结果不稳定。

差商法牛顿多项式插值

差商法牛顿多项式插值

二、差商法牛顿多项式插值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 ——————————————。

差商公式推导牛顿插值公式

差商公式推导牛顿插值公式

差商公式推导牛顿插值公式
设有n+1个数据点(x0,y0),(x1,y1),...,(xn,yn),要求通过
这些数据点构造一个n次多项式P(x),用于近似原函数的插值。

牛顿插值公式的一般形式为:
P(x)=f[x0]+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+...+f [x0,x1,...,xn](xx0)(xx1)...(xxn1)
其中f[x0]代表差商,f[x0,x1]代表二阶差商,以此类推。

1.一阶差商的计算:
f[xi]=(yiy0)/(xix0)
2.二阶差商的计算:
f[xi,xi+1]=(f[xi+1]f[xi])/(xi+1xi)
3.三阶及更高阶差商的计算:
f[xi,xi+1,...,xi+k]=(f[xi+1,xi+2,...,xi+k]f[xi,xi+1,...,xi
+k1])/(xi+kxi)
4.将差商代入牛顿插值公式中,得到:
P(x)=f[x0]+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+...+f [x0,x1,...,xn](xx0)(xx1)...(xxn1)
这样就得到了n次牛顿插值公式。

总结起来,差商公式的推导过程就是根据给定的数据点,计算不同阶次的差商,然后将差商代入牛顿插值公式中得到n次多项式。

通过这个多项式,我们可以在给定的数据点间进行插值,从而近似原函数的数值。

差商与牛顿插值多项式

差商与牛顿插值多项式

⇒ f [x, x0 ,⋯, xn−1 ] = f [x0 , x1 ,⋯, xn ] + f [ x, x0 ,⋯, xn ]( x − xn ) (d )
f x x x ] x − xx f [ x,, x00]]= f [ x0 , x1 ] + f [x,, x00,,x11(]( x − 1 )1 ) (b) x
f ( x0 ) f ( x1 ) f ( x1 ) − f ( x0 ) f [ x0,x1 ] = + =1时 当k =1时, ⇐ f [x0 , x1 ] = x0 − x1 x1 − x0 x1 − x0 利用(1)很容易得到。 (1)可用归纳法证明。(2)利用(1)很容易得到。只证(1) )可用归纳法证明。(2)利用(1)很容易得到 只证(1) f ( x1 ) − f ( x0 ) f ( x0 ) f ( x1 ) ( =1时 = + 证明: ) 证明: 1)当k =1时, f [x0 , x1 ] = x1 − x0 x0 − x1 x1 − x0
f [x2 , x3 ] f [x1, x2 , x3 ] f [x3 , x4 ] f [x2 , x3 , x4 ]
⋮ ⋮ f [xk−1, xk ] f [xk−2 , xk−1, xk ]
f [x0 , x1, x2 , x3 ] f [x1, x2 , x3 , x4 ]
⋮ ⋱
f ( x4 )
f [x0 , x1 ,⋯, xk ] = ∑
k j =0
f (xj )
( x j − x0 )(x j − x1 )⋯( x j − x j−1 )(x j − x j+1 )⋯( x j − xk ) k k f (xj) f (x j ) =∑ k =∑ j =0 ′ Π ( x j − x i ) j = 0 ω k +1 ( x j )

2.2 牛顿插值法

2.2 牛顿插值法

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

f [ x , x 0 , x1 , x 2 ] =
f [ x 0 , x1 , x 2 ] - f [ x , x 0 , x1 ] x2 - x
a2=
依次递推可得到a3, …, an. 为写出系数 ak的一般表达式, 均差定义
2.3.2 均差及其性质
1、均差的定义 称 f [ x0 , xk ] =
f ( xk ) - f ( x0 ) xk - x0
为 f ( x ) 关于点 x 0 , x k 的一阶差商。 称 f [ x 0 , x1 , x k ] =
注:均差与节点的排列次序无关——均差 的对称性
f[x0,x1,…,xn]= f[x1,x0,x2,…,xn]=… = f[x1, …, xn ,x0]
因此 f [ x 0 , x 1 , , x k ] = f [ x 1 , x k - 1 , x 0 , x k ]
= f [ x 1 , x 2 , , x k -1 , x k ] - f [ x 1 , x 2 , , x k -1 , x 0 ] xk - x0 f [ x 1 , x 2 , , x k -1 , x k ] - f [ x 0 , x 1 , x 2 , , x k -1 ] xk - x0
f (xj)
k
j=0

j=0

( x j - xi )
i=0 j i
1ºn 阶均差可表示为函数值f(x0), f(x1),…, f(xn) 的线性组合

差商与牛顿基本插值公式

差商与牛顿基本插值公式
同理可证 ak f x0 , x1,, xk k 0,1,2,, n
可以得到 n 次牛顿插值多项式为
N n x f x0 f x0 , x1 x x0 f x0 , x1 , x2 x x0 x x1 f x0 , x1 , , xn x x0 x x1 x xn 1
定义 f x 在点 x0 , x1 ,, xm 处的 m 阶差商为
f x0 , x1 ,, xm
f x1 ,, xm x0 , x1 ,, xm1 xm x0

j 0
m
x
j
x0 x j x j 1 x j x j 1 x j xm
n 次牛顿插值多项式为
Nn x a0 a1 x x0 a2 x x0 x x1 an x x0 x x1 x xn1
定义零阶差商为
f xi f xi
定义 f x 在点 xi , x j 处的一阶差商为
f xj
通过上式可以发现差商具有对称性,即任意调换节点的次序,不会影响差商的值,例如
f x0 , x1, x2 f x1, x2 , x0 f x1, x0 , x2
通过满足插值条件 Nn xi f xi
i 0,1,2,, n ,有
return;
已知函数表
x
x
用线性插值得
100 10
121 11
144 12
169 13
115 N1 115 10.7143
用抛物线插值得
115 N 2 115 10.7228

第一章 第二节 Newton 插值多项式

第一章 第二节 Newton 插值多项式

从而有,
f ( x ) = Pn+1 ( x ) = Pn ( x ) + f ( x, x0 , x1 ,, xn ) n+1 ( x )
因此,对所有 x = xi , i = 0,1,, n ,有
Rn ( x ) = f ( x ) Pn ( x ) = f ( x, x0 ,, xn ) n+1 ( x )
算过的结果不能利用,需要全部重新算起,这在实际计算中
是非常不利的。 由此引入新的插值公式。
二、差商及其性质
1、差商的概念
设在 n + 1 个互异点 x0 , x1 ,L xn上的函数值为已知,我们称
f ( xi , x j ) = f ( xi ) f ( x j ) xi x j , (i j )
为 f (x) 的一阶差商。
一般地,我们把一阶差商的一阶差商
f ( xi , x j , xk ) = f ( xi , x j ) f ( x j , xk ) xi xk ,(i k )
称为 f (x) 的二阶差商。
把 n 1阶差商的一阶差商
f ( x0 , x1 ,, xn ) = f ( x0 , x1 ,, xn 1 ) f ( x1 , x2 , xn ) x0 xn
(2)对称性
即当任意调换 xi 的位置时,不改变差商值,如
f ( x0 , x1 , x2 ) = f ( x1 , x0 , x2 ) = f ( x2 , x1 , x0 )
(3)、若
F ( x) = f ( x) g ( x)

F ( xi ,, xi + k ) = f ( xi ,, xr ) g ( xr , xi + k )

研究生数值分析(15)插商与牛顿(Newton)插值多项式

研究生数值分析(15)插商与牛顿(Newton)插值多项式
插商与牛顿(Newton)插值多项式 构造拉格朗日插值多项式
( x x0 ) ( x xk 1 )( x xk 1 ) ( x xn ) Ln ( x) yk lk ( x) yk ( xk x0 ) ( xk xk 1 )( xk xk 1 ) ( xk xn ) k 0

f [ xi , x j , xk ]
f [ x j , xk ] f [ xi , x j ] xk xi
一般地,称 m-1 阶差商的差商
f [ x1 , x2 , , xm ] f [ x0 , x1,, xm1 ] f [ x0 , x1 , , xm ] xm x0
用牛顿二次、三次插值多项式近似计算f(1.46)
的值,并估计牛顿二次插值多项式近似计算的截断
误差,说明牛顿二次多项式近似计算结果的有效数 字。
f [ x0 , x1 , , xk ]
j 0 k
f (x j ) ( x j x0 ) ( x j x j 1 )( x j x j 1 ) ( x j xk )
性质2 差商具有对称性,即在k阶差商
f [ x0 , x1 ,, xk ] 中任意调换2个节点
xi
R2 (115) f [ x0 , x1 , x2 , x3 ]3 (115) 0.0000003138 (115 100)(115 121)(115 144) 0.00082
与实际误差
115 N 2 (115) 0.001 相当接近。
练习:给定数据如下:
x f(x) 1 1.25 1.5 2.50 0 1.00 2 5.50
例3 已知函数表
x
x
… …

第3节 差商及Newton插值多项式

第3节 差商及Newton插值多项式

为n次Newton插值多项式。 Newton插值多项式 插值多项式。 如果 f(x) ≈ Nn(x),则误差为: 则误差为:

Rn ( x) = ( x − x0 )( x − x1 )L( x − xn ) f [ x, x0 , x1 ,L, xn ]

验证
Nn ( xi ) = f ( xi ), i = 0,1,L, n
得到
f [ x0 , x1 , x2 ] =
f [ x0 , x1 ] − f [ x1 , x2 ] x0 − x2 f ( x0 ) f ( x1 ) f ( x2 ) = + + ( x0 − x1 )( x0 − x2 ) ( x1 − x0 )( x1 − x2 ) ( x2 − x0 )( x2 − x1 )
f [ x, x0 ] = f ( x) − f ( x0 ) x −x0
f [ x, x0 ] − f [ x0 , x1 ] f [ x, x0 , x1 ] = x −x1 f [ x, x0 , x1 ] − f [ x0 , x1 , x2 ] f [ x, x0 , x1 , x2 ] = x −x2 L L L L L L L L L L L L L L L L L L f [ x, x0 ,L, xn−1 ] − f [ x0 , x1 ,L, xn ] f [ x, x0 , x1 ,L, xn ] = x −xn
f ( x0 ) = 2, f ( x1 ) = 3.2, f ( x2 ) = 4
2 − 3.2 1.2 = =6 0.1− 0.3 0.2
可以求得
f [ x0 , x1] =
f [ x1 , x2 ] =
3.2 − 4 0.8 = =4 0.3 − 0.5 0.2

差商及其性质

差商及其性质

n)0;,(1x,i , nx) 的j ,当插i值 多j) 项式为牛项:顿式插系值数多
f ( x) Pn ( x) Rn ( x) (4.2)
其中,Pn( x) f ( x0 ) ff[[xx00,,xx11]]( x x0 ) ff[[xx00,,xx11,,, xnn]( x x0)( x x1)(x xn1)
(
xj

x1)( x j

f (xj) xj1)(xj
x j1)( x j

xn1 )
假设当k n时成立,即有
f [x0,x1,xn]
n
j0 (xj

x0 )( x j

f (xj) xj1)(x j

x j1)( x j

xn )
f
[ x1,x2, xn1 ]
f x, x0 ,, xn1 f x0 , x1,, xn f [x, x0 ,, xn ]( x xn ) (d )
( x x0 )( x x1 )( x xn1 )
将(b)式两边同乘以,( x x0 ) ,(c)式两边同乘以 ( x x0 )( x x1 ), (d)式两边同乘以 ( x x0 )( x x1 )( x xn1 ) ,把所有式子相加,得
,f
xn1, xn

f ( xn ) f ( xn1 ). xn ห้องสมุดไป่ตู้xn1
即有定义:
定义为f(x) 的差商
定义4(1)对于[ xi , x j ] ,称
f
xi , x j

xi , x j
f (x)
f ( x j ) f ( xi ), x j xi

5-2牛顿插值

5-2牛顿插值

1 1 m m f xk , xk 1 , xk m f f k m k m m m!h m!h (m 1,2,) (5 33)
由(5-33)可的如下公式:
f [ x0 , ... , x k ] k f 0

k f n f [ xn , xn 1 , ... , xn k ] k ! hk
一阶差分
二阶差分
三阶差分 1
0.09001 0.08521 0.07958 t -0.00480 -0.00563 -0.00083
t (t 1)(t 2) 3!
t
1 t (t 1) 2
t (t 1)(t 2) 3!
1 t (t 1) 2
Newton向前插值公式为
1 N 3 ( x0 th) 0.38942 0.09001t 0.00480 t (t 1) 2 1 0.00083 t (t 1)(t 2) 6 x x0 0.57891 0.4 将 t 1.7891 代入上式得 0.1 h

差分值可由函数值算出:
n f k ( 1) f n k j j j0
n n j
f k (1)n j
n j 0
n
n f k j n j
其中
n n( n 1)...( n j 1) j! j
可用差分表示差商:
an ( x x0 )...( x xn1 ) 的形式,希望每加一个节点时,
只附加一项上去即可.
牛顿插值多项式 N n ( x) a0 a1 ( x x0 ) a2 ( x x0 )( x x1 ) ...
an ( x x0 )...( x xn 1 )

4.2 差商差分及牛顿插值多项式

4.2 差商差分及牛顿插值多项式
(n 1)
(3)
f (x 0 )
(2)
t ( t 1 ) ...
f (x 0 )
(n)
t ( t 1 )...( t n 1 ) R ( t )
2!
n!
( ), x 0 x n .
同样可得Newton后插公式:
在节点等距的情况下, x n, x
(k)
{ x i }i 0 [a , b ]
n

n 1
例4.4利用差分的性质证明
1
2
2
2
... n
2

n ( n 1 )( 2n 1 ) 6
插值型求导公式
设n(x)是f(x)的过点{x0 ,x1 ,x2 ,…xn } [a,b]的 n 次 插值多项式,由Laglange插值余项,有对任意给 定的x[a,b],总存在如下关系式: 若取数值微分公式 误差为:
d dx
f
( n 1 )
( )
( n 1 )!

(x)
d dx
f
( n 1 )
( )
( n 1 )! dBiblioteka dx中 是未知的 ( )
, 其误差不能估计
, 注意到在插值
节点处 ( x i )
f
( n 1 )
( n 1 )!
0 , 此时的余项为
R n ( x i ) f ( x i ) n ( x i )
牛顿插值多项式多项式插值拉格朗日插值多项式三次多项式插值lagrange插值多项式matlab多项式插值多项式插值法牛顿插值牛顿插值公式matlab牛顿插值
§1.2
差商差分及牛顿插值多项式

使用Python求牛顿插值多项式及其差商表(附加一个拉格朗日插值多项式)

使用Python求牛顿插值多项式及其差商表(附加一个拉格朗日插值多项式)

使⽤Python求⽜顿插值多项式及其差商表(附加⼀个拉格朗⽇插值多项式)闲话不多说,直接上代码。

import numpy as npfrom sympy import *# 定义⼀个求差商表的函数,使⽤递归求解差商表,返回值是差商的值# x是数组,表⽰样本点的x# f是数组,表⽰样本点的函数值f(x)# start是int类型,表⽰x数组的起始下标,# end是int类型,表⽰x数组的结束下标,# res是数组类型,表⽰差商表,对⾓线以下为各阶差商表def cs(x,f,start,end,res):# 当x中只有两个元素的时候,结束递归if((end-start)==1):# 将⼀阶差商填⼊差商表res[end-1][end-start-1]=(f[end]-f[start])/(x[end]-x[start])# 返回差商return res[end-1][end-start-1]# 当x中元素个数⼤于2时,根据公式递归调⽤此函数求差商,并将差商填⼊差商表res[end-1][end-start-1]=(cs(x,f,start+1,end,res)-cs(x,f,start,end-1,res))/(x[end]-x[start])# 返回差商return res[end-1][end-start-1]# 定义⼀个求⽜顿插值多项式的函数# x是数组,表⽰样本点的x# f是数组,表⽰样本点的函数值f(x)def Newton(x,f):res = np.ones([x.size - 1, x.size - 1])*np.inf # 初始化差商表⾻架结构cs(x, f, 0, x.size - 1, res) #调⽤差商表函数给差商表填值,对⾓线及以下才是差商表的值X=symbols("x") #定义x变量y=f[0] #初始化⽜顿插值多项式,它的第⼀项是常数项,正好是f[0]for i in range(x.size-1):temp=1 #临时变量,保存 f[x0,x1,...,xn]*(x-x1)(x-x2)...(x-xn-1)for j in range(i+1):temp=temp*(X-x[j]) #(x-x1)(x-x2)...(x-xn-1)temp=res[i,i]*temp #将差商表对⾓线元素作为系数y=y+temp #将temp添加到多项式中# 返回⽜顿插值多项式return yif__name__=="__main__":# 样本点x=np.array([2.0,2.1,2.2,2.3,2.4])f=np.array([1.414214,1.449138,1.483240,1.516575,1.549193])##### 可以直接得到差商表res = np.ones([x.size - 1, x.size - 1]) * np.inf # 初始化差商表⾻架结构# 调⽤差商表函数cs(x,f,0,x.size-1,res)print(res)#### 也可以直接得到⽜顿插值多项式X=symbols("x") #定义⾃变量xy=Newton(x,f) #调⽤函数得到⽜顿插值多项式,类型是<class 'sympy.core.add.Add'>print("N(x)=",y)# 给⾃变量x赋值,求出函数近似值print(y.evalf(subs={X:2.15})) #求给定⾃变量x值时函数f(x)的值 | 将表达式转化为函数得到的差商表:⽜顿插值多项式(⽐较长,就截取了部分):拉格朗⽇插值多项式代码(使⽤⽅法很简单,和⽜顿插值多项式⼀样): #拉格朗⽇插值法def L(x,f):X=symbols("x")m=x.size #x个数L=0for i in range(m):temp=1for j in range(m):if(i!=j):temp=temp*((X-x[j])/(x[i]-x[j]))L=L+temp*f[i]return L各位⼤哥点个赞呐(卑微)。

差商与牛顿多项式

差商与牛顿多项式

5
重节点差商
类似的有
f [ x0 , x1,⋯, x(1) ] − f [ x0 , x1 ,⋯, x] = d f [ x , x ,⋯, x , x] ()f [ x0 , x1,⋯, xn , x, x] ≡ lim 1 0 1 n (1) dx x ( 1) → x x −x

f ′( x0 ) ′( x0 ) = 首先,由定义 分析:(2)首先 分析:(2)首先,由定义 f [ x 0 , x0 ] = f 1! f [ x0 , x] − f [ x0 , x0 ] 下证 f [ x0 , x0 , x0 ] = lim f [ x0 , x0 , x] ≡ lim 泰勒展开式 x → x0 x → x0 x − x0 f ′′(x0 ) f (n) (x0 ) ∵ f (x) = f (x0 ) + f ′(x0 )(x − x0 ) + (x − x0 )2 +⋯+ (x − x0 )n + o((x − x0 )n ) 2! n! (n) f (x) − f (x0 ) f ′′(x0 ) f (x0 ) (x − x0 ) +⋯+ (x − x0 )n−1 +o((x − x0 )n−1) ∴ f [x0 , x] = = f ′(x0 ) + x − x0 2! n!
§4 差商与牛顿插值多项式
n 阶差商 f [x1 , x2 ,⋯ xn ] − f [ x0 , x1 ,⋯, xn−1 ] ≡ f [ x0 , x1 ,⋯, xn ] ≡ [ x0 , x1 ,⋯, xn ] f ( x) 牛顿插值多 牛顿插值公式
x n − x0
项式系数
f ( x ) = Pn ( x ) + Rn ( x )

牛顿插值公式

牛顿插值公式


k f ( x1 ) k!hk

k f ( x0 ) k!hk
k f ( x1 ) k f ( x0 )

k!hk
(k 1)h
(k 1)h

k ( f ( x1 ) f ( x0 )) (k 1)!hk1

k 1 f ( x0 ) (k 1)! hk 1
.
n
Rn( x) f [x, x0 , x1, , xn ]( x xi ) --- 牛顿插值余项 i0
乘除法次数大约为: 1 n2 3 n 较L-插值法减少了3-4倍. 22
5 重节点差商
定义5 (重节点差商)
则定义

f[
类似的有
x0
,
x0
]

x
lim
(1 0
)

x
0
f[
若 lim x0(1) x0
x0
,
x(1) 0
]

f ( x0(1) ) f ( x0
x0(1) x0
lim f ( x0(1) )
x0(1) x0
x0(1)
)
f (x x0
f
0
( x0 ) )
f
(
,
x
0
)
(1)f [x0, x1,
, xn, x, x]
lim
x(1) x
f [x0, x1,
m!
f
x0 , x1,
,
xm
m f ( x0 ) m!hm
5.2 牛顿向前插值,向后插值公式
1、公式
a
x0
x1
x2
xn1 xn b

2 newton插值的原理和算法

2 newton插值的原理和算法

Newton插值的原理和算法
Newton插值法是一种数学方法,用于通过已知的离散数据点来构造多项式,该多项式可以用来估计未知数据点的值。

以下是Newton插值的原理和算法:
原理:
Newton插值基于差商的概念。

差商可以理解为两个相邻数据点之间的值与它们之间距离的比的极限。

对于给定的数据点集,可以通过构造差商表来找到插值多项式。

算法:
1.确定插值节点:选择一组已知数据点的x坐标,这些点将成为插值的节
点。

2.计算差商:根据差商的定义,计算每个数据点与其相邻数据点之间的差
商。

具体来说,对于第i个数据点,其差商Di(x)可以表示为:Di(x) =
[f(xi)/xi - f(xi-1)/(xi-1)] / (xi - xi-1),其中f(xi)和f(xi-1)分别是第i个和第i-1
个数据点的函数值,xi和xi-1分别是它们的x坐标。

3.构造差商表:将计算出的差商存储在一个表格中,以便后续使用。

4.构建插值多项式:根据差商表,使用Newton插值公式来构建插值多项
式。

具体来说,对于任意x坐标,其对应的函数值f(x)可以通过插值多项式来计算。

5.计算未知数据点的值:将需要估计的x坐标代入插值多项式中,即可得
到对应的函数值估计。

需要注意的是,Newton插值法在处理大量数据点时可能会遇到数值稳定性问题。

此外,当插值节点过多时,差商的计算量会变得非常大,因此在实际应用中需要谨慎选择插值节点数量。

4.2 差商差分及牛顿插值多项式

4.2 差商差分及牛顿插值多项式
n 1
若以相反的节点顺序:
,..., x 0 建立 Newton 基本插值公式得:
n -1
N a (x ) f [x n ] f [x n , x ... f [ x n , x 由于: f [x n , x ] f [x n -1
n 1
]( x x n ) f [ x n , x
(n 1)
(3)
f (x 0 )
(2)
t ( t 1 ) ...
f (x 0 )
(n)
t ( t 1 )...( t n 1 ) R ( t )
2!
n!
( ), x 0 x n .
同样可得Newton后插公式:
在节点等距的情况下, x n, x
,x
n -2
] f [x
n -2
,x
,xn]
f (x n )
2
2! h
n -1
,..., x
n -r
] f [x
n -r
,..., x
n -1
,xn]
f (x n )
r
r! h
N a (x ) f (x n ) ... f (x n )
n
f (x n ) 1! h
由Newton插值公式:
N ( x ) f [ x 0 ] f [ x 0 , x 1 ]( x x 0 ) ... f [ x 0 , x 1 ,..., x n ]( x x 0 )( x x 1 )...( x x n 1 ) R ( x ) 及任意的 f[x 0 , x 1 ,..., x k ]与差分之间的关系: f (x 0 )

第三节 牛顿插值多项式

第三节  牛顿插值多项式

第三节 牛顿插值多项式拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点时原有多项式不能利 用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费;牛顿(Newton )插值多项式是代数插值的另一种表现形式,当增加节点时它具有所谓的“承袭性”,这 要用到差商的概念。

5.3.1 差商的定义与性质定义 已知函数f(x)的n+1个插值点为),(j i y x ,i y =f(i x ),i=0,1, …,n ,ji j i x x x f x f --)()(称为f(x)在点),(j i y x 的一阶差商,记为f [ji y x ,],即f [j i y x ,]=j i j i x x x f x f --)()( (5.3.1)一阶差商的差商k i k j j i x x x x f x x f ---],[][称为f(x) 在点kj i x x x ,,的二阶差商,记为f [k j i xx x ,,],即f [kj i x x x ,,]=ki k j j i x x x x f x x f ---],[][(5.2.2) 一般地,k-1阶差商的差商kk k x x x x x f x x x f ---021110],...,[],...,,[称为f(x)在点k x x x ,...,,10的k 阶差商,记为f [k x x x ,...,,10],即f [k x x x ,...,,10]=kk k x x x x x f x x x f ---021110],...,[],...,,[ (5.3.3)差商具有以下性质:性质1 n 阶差商可以表示成n+1个函数值)(),...,(),(10n x f x f x f 的线 性组合,即f [k x x x ,...,,10]=∑=+-----ni n i i i i i i i x x x x x x x x x f 0110))...()()...(()( 事实上,由式(1)当n=1时,011100101010)()()()(],[x x x f x x x f x x x f x f x x f -+-=--=当n=2时,))(()())(()())(()())(()()11()())(()())()((1))()((1],[],[],[],[],,[12022210112010012022210120120100122211020111002002211010212110210x 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 x x x x f x x x x x f x x x f x x x f x x x x x f x x x f x x x x x x f x x x x f x x x x f x x f x x x f --+--+--=--+----+--=-+--+-+--=-+-=--=一般地有f [k x x x ,...,,10]=∑=+-----ni n i i i i i i i x x x x x x x x x f 0110))...()()...(()( 性质2(对称性) 差商与节点的顺序无关,如],,[],,[],,[],[],[1202012100110x x x f x x x f x x x f x x f x x f === 这一点可以从性质1看出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f [x, x0 ,⋯, xn−1 ] = f [x0 , x1 ,⋯, xn ] + f [ x, x0 ,⋯, xn ]( x − xn ) (d )
⋯⋯
× ( x − x0 )( x − x1 )⋯( x − xn−1 )
⋯ (b)式两边同乘以 式两边同乘以, 将(b)式两边同乘以,( x − x0 ) ,(c)式两边同乘以 ( x − x 0 )( x − x1 ), ⋯ ,(c)式两边同乘以 (d)式两边同乘以 (d)式两边同乘以 ( x − x0 )( x − x1 )⋯ ( x − x n−1 ) ,把所有式子相加,得 把所有式子相加, f ( x ) = f ( x 0 ) + f [ x 0 , x1 ]( x − x 0 ) + f [ x 0 , x1 , x 2 ]( x − x 0 )( x − x1 ) + ⋯ + f [ x 0 , x 1 , ⋯ , x n ]( x − x 0 )( x − x 1 ) ⋯ ( x − x n − 1 ) + f [ x , x 0 , ⋯ , x n ]( x − x 0 )( x − x 1 ) ⋯ ( x − x n − 1 )( x − x n )
j =1
( x j − x0 )⋯( x j − x j −1 )( x j − x j +1 )⋯( x j − xn ) n+1 f ( xj ) f [ x1,x2, xn+1 ] = ∑ ⋯ ( ( j =1 ( x j − x1 )⋯ x j − x j −1 )(x j − x j +1 )⋯ x j − xn+1 )
⋮ xk ⋮
⋮ f ( xk )

⋯ f [x0 , x1,⋯, xk ]

计算顺序:同列维尔法, 计算顺序:同列维尔法,即每次用前一列同行的差商与前一列 上一行的差商再作差商。 上一行的差商再作差商。
4.2 牛顿插值多项式
1 牛顿插值多项式的推导 ) 函数表( ) 由差商定义及对称性, 已知 y = f (x) 函数表(4.1), 由差商定义及对称性,得 (4 . 1 f ( x ) − f ( x0 ) ⇒ f ( x ) = f ( x 0 ) + f [x , x 0 ]( x − x 0 ) ( a ) f [x , x 0 ] = x − x0 f [ x, x0 ] − f [ x0 , x1 ] f [x, x0 , x1 ] = x − x1 ⇒ f [ x , x ] = f [ x , x ] + f [x , x , x ]( x − x ) (b )
f ( x j ) − f ( xi ) x j − xi
,
的一阶差商表,再作一次差商, (2)由函数 = f ( x ) 的一阶差商表,再作一次差商,即 )由函数y=
f [ x j , xk ] − f [ xi , x j ] , f xi , x j , xk ≡ xi , x j , xk f ( x ) ≡ xk − xi
i =0 i≠ j
2) 是对称的, (2)k 阶差商 f [x0, x1,⋯, xk ] 关于节点 x0 , x1 ,⋯, xk 是对称的,或说 均差与节点顺序无关 与节点顺序无关, 均差与节点顺序无关,即 f [x0 , x1 ,⋯, xk ] = f [x1 , x0 ,⋯, xk ] = ⋯ = f [xk , xk −1 ,⋯, x0 ] 例如: 例如:f xi , x j , xk = f [xi , xk , x j ,] = f x j , xi , xk = f [x j , xk , xi ]
xn+1 − x0 ( x j − x0 )(x j − x1 )⋯( x j − x j −1 )(x j − x j +1 )⋯( x j − xn+1 ) n+1 f ( xj ) # =∑ ( ( j =0 ( x j − x0 )(x j − x1 )⋯ x j − x j −1 )(x j − x j +1 )⋯ x j − xn+1 )
n+1
时成立, 假设当 k = n 时成立,即有
f [ x0,x1, xn ] = ∑ ⋯
j =0
n
f (xj )
则由定义 f [x1 , x2 ,⋯ xn +1 ] − f [x0 , x1 ,⋯, xn ] f [ x0 , x1,⋯, xn,xn+1] ≡ xn +1 − x0 1 f ( xn+1) − f ( x0 ) ( ) = + xn+1 − x0 (xn+1 − x1)(xn+1 − x2 )⋯( xn+1 − xn ) (x0 − x1)(x0 − x2 )⋯( x0 − xn )
[
] [
]
称为y 二阶差商(二阶均差) 称为 = f ( x ) 在点 x i , x j , x k 的二阶差商(二阶均差); 即
n-1阶 - 差商
- 阶差商表可定义函数的n阶差商。 (3)一般由函数 = f (x ) 的n-1阶差商表可定义函数的 阶差商。 )一般由函数y=
ff [x1 , x2 ,⋯,x n ] − f [x 0 , x1 ,⋯, x n−1 ] xn 0 1 n−1 ≡ f [x0 , x1 ,⋯, xn ] ≡ [x0 , x1 ,⋯, xn ] f(x) xn − x0
f [x0 , x1 ,⋯, xk ] = ∑
k j =0
f (xj )
( x j − x0 )(x j − x1 )⋯( x j − x j−1 )(x j − x j+1 )⋯( x j − xk ) k k f (xj) f (x j ) =∑ k =∑ j =0 ′ Π ( x j − x i ) j = 0 ω k +1 ( x j )
称为函数y= f ( x ) 在 x0 , x1 , ⋯ , x n 点的n阶差商(n阶均差)。 称为函数 = 点的 阶差商( 阶均差) 阶差商 阶均差
2 基本性质 定理5 ) 定理 (1)f (x) 的k阶差商 f [x0 , x1,⋯, xk ] 是函数值 f (x0 ), f (x1 ),⋯, f (xk ) 阶差商 的线性组合, 的线性组合,即
f ( x0 ) f ( x1 ) f ( x1 ) − f ( x0 ) f [ x0,x1 ] = + =1时 当k =1时, ⇐ f [x0 , x1 ] = x0 − x1 x1 − x0 x1 − x0 利用(1)很容易得到。 (1)可用归纳法证明。(2)利用(1)很容易得到。只证(1) )可用归纳法证明。(2)利用(1)很容易得到 只证(1) f ( x1 ) − f ( x0 ) f ( x0 ) f ( x1 ) ( =1时 = + 证明: ) 证明: 1)当k =1时, f [x0 , x1 ] = x1 − x0 x0 − x1 x1 − x0
f [ x , x 0 , x1 , x 2 ] = f [ x , x 0 , x1 ] − f [ x 0 , x1 , x 2 ] x − x2 ⇒ f [ x , x 0 , x1 ] = f [ x 0 , x1 , x 2 ] + f [ x , x 0 , x1 , x 2 ]( x − x 2 ) ( c )
f [x2 , x3 ] f [x1, x2 , x3 ] f [x3 , x4 ] f [x2 , x3 , x4 ]
⋮ ⋮ f [xk−1, xk ] f [xk−2 , xk−1, xk ]
f [x0 , x1, x2 , x3 ] f [x1, x2 , x3 , x4 ]
⋮ ⋱
f ( x4 )
⇒ f [x, x0 ,⋯, xn−1 ] = f [x0 , x1 ,⋯, xn ] + f [ x, x0 ,⋯, xn ]( x − xn ) (d )
f x x x ] x − xx f [ x,, x00]]= f [ x0 , x1 ] + f [x,, x00,,x11(]( x − 1 )1 ) (b) x
假设当 k = n 时成立,即有 时成立,
f [ x0,x1, xn ] = ∑ ⋯
j =0
n
f ( xj ) ( x j − x0 )⋯( x j − x j −1 )(x j − x j +1 )⋯( x j − xn )
f ( xj )
f [ x1,x2, xn+1] = ∑ ⋯ ( ( j =1 ( x j − x1 )⋯ x j − x j −1 )(x j − x j +1 )⋯ x j − xn+1 )
( x i ≠ x j ,当 i ≠ j )
定义为f( ) 定义为 (x) 的差商
即有定义: 即有定义:
定义4 定义 (1)对于[ xi , x j ] ,称 f [x i , x j ] ≡ [x i , x j ] f ( x ) ≡ 为函数 f ( x ) 在 x i , x j 的一阶差商(一阶均差); 一阶差商(一阶均差 均差);
[
]
[ ] = f [x , x , x ] = f [x , x , x ]
k j i
k i j
共6个 个
f [x0 , x1 ,⋯, xk ] = ∑
k j =0
分析 :
f ( xj ) ( x j − x0 )(x j − x1 )⋯( x j − x j−1 )(x j − x j+1 )⋯( x j − xk )
+∑
n
f ( xj )

( x j − x0 ) − ( x j − xn+1 )
3 差商表
表2.4
一阶差商 二阶差商 三阶差商 k 阶差商
相关文档
最新文档