数值分析专题报告——数值微分
专业:农业工程 姓名:杨文学 学号:2014812077
1 数值微分的用处
数值微分主要通过测量函数一些离散点的值来求得函数的近似导数,对于一些基本的初等函数我们可以用求导公式直接求出,但对于以下几种情况,可能就要用到数值微分的思想了。
① 只给出函数的图像
② 给出表格,一些离散点和它的函数值
③ 一些比较复杂的函数,不能用求导公式直接求出
在解决实际问题中,数值微分也发挥着重要的作用,如解决地下水的寻找问题,图像处理中的边界识别问题,物理学中的波普的波峰问题,当然还有其他学科其他领域,无论科学研究还是实际运用,都是非常重要的。
2 数值微分的内容
值微分就是用离散方法近似地计算函数在某点的导数值,若f(x)在x=A可导,根据导数的定义,可以用差商近似代替微商(导数),有以下几种数值微分公式
f ( a + h ) - f ( a ) f′(a) ≈
h
(1)
f ( a ) - f ( a - h ) f′(a) ≈ (2)
h f′(a) ≈ (3) (h>0且足够小)分别称为向前差分,向后差分,中心差分。
高阶导数也可用差商法求得, 例如二阶导数公式为
f ( a + h ) - f ( a - h )2 hf ( a + h ) - 2 f ( a ) + f ( a - h )f′′(a) ≈
h2(4)
2.1误差分析
对于(1)式向前差分,用Taylor公式展开,出现截断误差:存在?∈?a ,a?h? a ? a+h f(x)?f(a?)f'a()?x(a?)?f
2''(?x)(a
)/2! f(a?h)?f(a)?f'(a)h?f''(?)h2/2!
f ( a + h ) - f ( a ) 代入(1)式 G(h)= ,有
h R(x) = f′(a)﹣G(h)=f''(?)h/2!=O?h? 同理也可得向后差分的截断误差:
a-h ? a
R(x) = f′(a)﹣G(h)=f''(?)h/2!=O?h?
由于中心差分精度较高,下面对其做细致分析。首先计算导数f′(a)的近似
值,首先必须选取合适的步长,为此需要进行误差分析。分别将f(a?h)在x= a处做泰勒展开
h2h3h4?4?h5?5?f(a?h)=f(a)?hf'(a)?f''(a)?f'''(a)?f?a??f?a?????
2!3!4!5!代入(3)式得
h2h4?5?G(h)=f'(a)?f'''(a)?f?a????? 3! 5!
由此得知,从截断误差的角度看,步长越小,计算结果越准确,下面有截断误差
h2|f'''(x)|) |? |f'( a ) ? G (h M 其中 M?|maxx?a|?h6但是不是步长越小越好呢?其实并不是这样的,我们对y = ex这个函数来进
行分析,选取不同的步长来算f′(1.15),观察误差变化规律,确定最佳步长。
表 2-1 计算结果
解 用中心差商表示的数值微分计算公式得到: h f′(1.15) error 0.1 3.1630 -0.0048 0.09 3.1622 -0.0040 0.08 3.1613 -0.0031 0.07 3.1607 -0.0025
h f′(1.15) error 0.05 3.1590 -0.0008 0.04 3.1588 -0.0006 0.03 3.1583 -0.0001 0.02 3.1575 -0.0007
0.06 3.1600 -0.0018 0.01 3.1550 -0.0032
事实上,f′(1.15)=3.1582,可以看出不是步长越小越好,因为我们还要考虑一个舍入误差,当h很小时,因f(a + h)与f(a – h)很接近,直接相减会造成有效数字的严重损失,从舍入误差分析,不易过小。下面我们分析舍入误差:
当f(a + h)及f(a-h)分别有舍入误差?1及?2,令?=max{|?1|,|?2|},则计算舍入误差的上界为
|?1|?|?2|??2hh?(f'(a))?|f'(a)?G(a)|?可以看出h越小,舍入误差越大,是病态的。所以计算f′(a)的误差上界为
h2?E(h)?M?6h要使误差最小,用导数,单调性知识分析,当h=33?/M,误差E(h)最小
2.2 插值型数值微分
有时候我们会碰到函数y = f(x)以列表形式给出,我们就可以用插值的思想来近似建立一个多项式Pn(x)来代替f(x),但函数值差不多,导数值可能差别很大,所以我们要考虑误差。依据插值余项定理,求导公式的余项为
式中
w(x)d(n?1)f(n?1)(?)f'(x)?p'n(x)?w'n?1(x)?n?1f???(n?1)!?n?1?!dxwn?1(x)d(n?1)f???在这余项中,?是x的未知函数,我们无法对第二项 ? n ? 1 ? ! dx 做
i?0wn?1(x)??(x?xi)n
出进一步说明,导致整个误差也无法估计。但求某个节点xk的导数,第二项因式wn+1(k)= 0 ,这时有余项公式
1. 两点公式
设给出点x0,x1上函数值f(x0),f(x1),做线性插值得
于是有下列求导公式:
11P'1(x0)??fx?fxP'(x)?f?x1??f?x0????????10?11??? h hP'1(x)?f(n?1)(?)f'(xk)?p'n(xk)?w'n?1(xk)(n?1)!(5)
下面我们仅考察节点处的导数,假设所给节点是等距的。
P1(x)?x?x0x?x1f?x0??f?x1?x0?x1x1?x0令x1—x0 =h,对上式两端求导,有
1??f?x0??f?x1???h?而利用余项(5)知,带余项的两点公式是
2. 三点公式
设已给出三个节点x0,x1= x0+h,x2= x0+2h上的函数值,做二次插值
P2?x??(x?x0)(x?x2)(x?x0)(x?x1)(x?x1)(x?x2)f(x0)?f(x1)?f(x2) (x0?x1)(x0?x2)(x1?x0)(x1?x2)(x2?x0)(x2?x1)f'(x1)?f'(x0)?1hfx?fx?f''(?)??????10?h?21hfx?fx?f''(?)??????10??h2令x=x0 + th,上式可表达为
P2?x0?th??11(t?1)(t?2)f(x0)?t(t?2)f(x1)?t(t?1)f (x2)22对两端t求导,有
P'2?x0?th?? 1[(2t?3)f(x0)?(4t?4)f(x1)?(2t?1)f(x2)]2h对t分别取t=0,1,2,得到3种三点公式:
1[?3f(x0)?4f(x1)?f(x2)]2h1P'2?x1??[?f(x0)?f(x2)]2h1P'2?x2??[f(x0)?4f(x1)?3f(x2)]2hP'2?x0??
亦可求得带余项的三点公式:
1h2f'?x0??[?3f(x0)?4f(x1)?f(x2)]?f'''(?0)2h31h2f'?x1??[?f(x0)?f(x2)]?f'''(?1)2h61h2f'?x2??[f(x0)?4f(x1)?3f(x2)]?f'''(?2)2h3
2.3样条插值微分
三次样条函数S(x)作为f(x)的近似,不但数值接近,导数值也很接近,并有
( ||f(k)(x?)Sk)4)|f(|??k4(x?)?||kCk()x(k),? , 1, 2 (3.1) |h|?k, 0利用三次样条函数S(x)直接得到 f(k)(x)?S可求得
0, 1,2hkhkf'(x)?S'(x)??M?Mk?1?f[xk,xk?1]k kk 36
f''(xk)?Mk
这里 f[xk,xk?1]为一阶均差,其误差可由(3.1)式可得
1 ||f'?S'||??||f(4)||?h324
3(4)2||f''?S''||?||f||h?? 8
2.4数值微分的外推法
利用第一个方法中点公式计算导数值时可以看到有
f ( a + h ) - f ( a - h )f'(x)?G(h)?2 h f'(x)?G(h)??1h2??2h4????
下面对f(x)在x处做泰勒展开
但这里与h无关,利用理查德森外推法对h分半,?1,?2????i可以对照法1获知,若记G0(h)=G(h),则有
可以从下表2-4来观察计算过程
表2-4 外推过程
h4mGm?1()?Gm?1(h)2Gm(h)?,m?1,2,???m4?1
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数值分析第一次作业在线全文阅读。
相关推荐: