当前位置:文档之家› 数值微分的计算方法

数值微分的计算方法

数值微分的计算方法内容摘要 求解数值微分问题,就是通过测量函数在一些离散点上的值,求得函数的近似导数。

本文就所学知识,归纳性地介绍了几种常用的数值微分计算方法。

并举例说明计算,实验结果表明了方法的有效性。

关键词 数值微分 Taylor 展开式 Lagrange 插值 三对角矩阵引言:数值微分即根据函数在一些离散点的函数值,推算它在某点的导数或高阶导数的近似值的方法。

常见的可以用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的相应导数作为能求导数的近似值,由此也可导出多点数值微分计算公式。

当函数可微性不太好时,利用样条插值进行数值微分要比多项式插值更适宜。

1.Taylor 展开式方法理论基础:Taylor 展开式()()()()()()()()()000000022!!nnx x x x f x f x x x f x f x f x n --'''=+-++++我们借助Taylor 展开式,可以构造函数f x 在点0x x 的一阶导数和二阶导数的数值微分公式。

取步长0h则),()(2)()()(0011''20'00h x x f h x hf x f h x f +∈++=+ξξ (1)所以),()(2)()()(0011''000'h x x f h h x f h x f x f +∈--+=ξξ (2)同理),()(2)()()(0022''20'00x h x f h x hf x f h x f -∈+-=-ξξ (3) ),()(2)()()(0022''000'x h x f h h h x f x f x f -∈+--=ξξ (4)式(2)和式(4)是计算'0f x 的数值微分公式,其截断误差为O h ,为提高精度,将Taylor 展开式多写几项),()(24)(6)(2)()()(0011)4(40'''30''20'00h x x f h x f h x f h x hf x f h x f +∈++++=+ξξ ),()(24)(6)(2)()()(0022)4(40'''30''20'00x h x f h x f h x f h x hf x f h x f -∈+-+-=-ξξ两式相减得)()(62)()()(40'''2000'h O x f h h h x f h x f x f +---+= (5)上式为计算)(0'x f 的微分公式,其截断误差为O(h 2),比式(2)和(4)精度高。

两式相加,如果],[)(00)4(h x h x C x f+-∈,则有2''(4)00002()2()()()()12f x h f x f x h h f x f h ξ+-+-=- ,00(,)x h x h ξ∈-+ (6)式(6)是计算)(0''x f 的数值微分公式,其截断误差为2()O h 。

例1.设函数0ln ,2,0.1f xx x h,试用数值微分公式计算'2f 的值。

解 由式(2)、式(4)和式(5)分别计算结果为4879.01.02ln 1.2ln )2('≈-≈f5129.01.09.1ln 2ln )2('≈-≈f5004.02.09.1ln 1.2ln )2('≈-≈f与真值'20.5f相比,式(5)计算的结果精度较高。

2.数值微分的Lagrange 插值方法设函数yf x 具有1n 个实验数据:,0,1,2,,i ix f x i n ,我们希望估计'f x 的值,特别i xx 时,估计'i f x 的值。

基于插值方法的数值微分做法是,由已知,0,1,,i ix f x i n 建立Lagrange 插值多项式或Newton 插值多项式(这里以Lagrange 插值方法为例),即n n f xL x R x于是()()()'''n n f x L x R x =+当i xx 时,有'''()()()(0,1,2,...,)n i n i i f x L x R x i n =+=其中1(1)''()()()(1)!n n n i i f R x x n ξω++=+略去误差项有''()()i n i f x L x ≈实际运用中,等距节点更为常见。

设,0,1,2,,,i b ahx a ih i n nx a th ,于是有)(!)1)...(1(...!2)1(!1)(00200x R y n n t t t y t t y t y x f n n+∆+--++∆-+∆+=所以'000(1)0(1)...(1)(){...}1!!()()(1)!n ni t i n n nj j id t t t t n f x y y y dt n h f i j n ξ=+=≠--+=+∆++∆+-+∏ 3.多点数值微分公式由于高阶插值的不稳定性,实际应用时多采用n=1,2,4的两点、三点和五点等多点插值型求导公式。

(1) 两点公式(n=1)⎪⎩⎪⎨⎧=-=-=-=)(2)()(1)()(2)()(1)(''1'011'''0'010'ξξf hx R y y h x f f h x R y y h x f (7) (2)三点公式(n=2)⎪⎪⎪⎩⎪⎪⎪⎨⎧=+-=-=+-==-+-=)(3)()34(21)()(6)()(21)()(3)()43(21)()3(20'2102')3(21'201')3(20'2100'ξξξf h x R y y y h x f f h x R y y h x f f h x R y y y h x f (8) (3)五点公式(n =4)⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧=+-+-=-=++-+-=-=-+-=-=+-+--==-+-+-=)(5)()254836163(121)()(20)()310186(121)()(30)()88(121)()(20)()618103(121)()(5)()316364825(121)()5(40'432104')5(43'432103')5(42'43102')5(41'432101')5(40'432100'ξξξξξf h x R y y y y y h x f f h x R y y y y y h x f f h x R y y y y h x f f h x R y y y y y h x f f h x R y y y y y h x f (9) 例2.设ln f x x ,取0.05h,分别用三点公式和五点公式计算'2f 的近似值。

解:由式(8)有499802861.0))10.2()05.2(4)2(3(05.021)2('=-+-⨯=f f f f 500104205.0))05.2()95.1((05.021)2('=+-⨯=f f f 499779376.0))2(3)95.1(4)90.1((05.021)2('=+-⨯=f f f f 由式(9)有499999843.0))10.2()05.2(6)95.1(8)90.1((05.0121)2('=-+-⨯=f f f f f与真值'20.5f 相比,三点公式已有相当满意精度,而五点公式的结果是十分满意的。

4.数值微分的隐式格式前述的Taylor 展式法和数值微分格式均称为显式格式,即直接由已知的(0,1,2,,)i f x in ,经过适当的算术四则运算,立即可得'i f x 的近似值。

显式格式优点是计算方便,工作量小,缺点是数值不稳定。

为克服后一缺点,隐式格式常常具有数值稳定性。

数值微分的隐式格式建立方法常用通过Taylor 展开式方法或数值积分方法等不同途径。

首先我们用Taylor 展开式方法来推导数值微分的隐式格式。

由式(5)和式(6),我们用k x 代替0x 得:)()(6)]()([21)(4'''2'h O x f h h x f h x f h x f k k k k +---+=)(12)]()(2)([1)()4(22''ξf h h x f x f h x f h x f k k k k --+-+=所以也有)(12)]()(2)([1)()5(2'''2'''ξf h h x f x f h x f h x f k k k k --+-+= 将最后'"k fx 表达式代入'k f x 表达式可得)()]()(2)([61)]()([21)(4''''h O h x f x f h x f h x f h x f h x f k k k k k k +-+-+---+=略去误差项4O h ,并且k m 表示'k f x 的近似值,则有),...,2,1()]()([341111n k x f x f hm m m k k k k k =-=++-++- 同样,用数值积分方法也可推导数值微分的隐式格式。

),...,2,1()(')(1111n k dxx f dx x f k k k k x x k x x ==⎰⎰+-+-根据simpson 公式)]()2(4)([6)(b f ba f a f ab dx x f ba +++-=⎰有),...,2,1(],4[62)()(1111n k m m m hx f x f k k k k k =++=-+--+),...,2,1()]()([341111n k x f x f hm m m k k k k k =-=++-++-上式是关于1n个未知量01,,n m m m 的1n 个方程,如果已知0m''0,nn f x m f x ,记)]()([311-+-=k k k x f x f hd ,故有方程组:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----n n n n n m d d d dm d m m m m m 123201123214114114114114 (10) 这就是求121,,,n m m m 的线性方程组。

相关主题