四、数值运算的误差估计 1.一元函数情形 设y=f(x),则y=f(x),由 Taylor展开公式 e(y2)=y-y=∫(x)-∫(x2)≈∫(x2)(x-x) e(y)≈f(x*)e(x (13) 两边除以y=f(x)得 er( b e(a) x∫'(x ∫(x*) ∫(x) r(yx) x er(x*) (1.3)和(1.4)给出了由自变量的误差引起的函 数值的误差的近似式(误差传播)
两边除以 得 (1.3)和(1.4)给出了由自变量的误差引起的函 数值的误差的近似式(误差传播)。 四、数值运算的误差估计 1. 一元函数情形 设 y = f (x), 则 ,由Taylor展开公式 e( y*) = y − y* = f (x) − f (x*) f (x*)( x − x*) e( y*) f (x*)e(x*)* ( * ) ( * ) '( * ) ( * ) x r x f x f x er y e ( ) * * y = f x (1.4) ( *) ( *) '( *) * ( *) ( *) * e x e e f x r x f x y y y r = ( ) * * y = f x (1.3)
2.多元函数情形 设y=f(x1,x2,…,xn)则,*=f(x,x2,…,xn 由多元函数的 Taylor展开公式类似可得 e(y)≈∑f(x1*,x2*…,xn)e(x1*) (y)≈∑ fx1,x2*…,xn*) e(x12) (1.6) ∫(x1*,x2*,…xn*) 在(1.6)式中,分别取f(x,)=x+x22,可得 e(x+x2)5里2(x(x,x同号)(1,7 er(:er(i)+er(x2) 点“x(xx;+1(x)(1.9)
2. 多元函数情形 设 y = f (x1 , x2 , , xn ) y* = f (x1 *, x2 *, ,xn *) , ( *) ( *, *, , *) ( *) 1 2 1 n i n i e y fi x x x e x = * ( *) ( *, *, , *) ( *, *, , *) ( *) 1 2 1 2 1 i r i n i n n i r x e x f x x x f x x x e y = 1 2 1 2 f (x , x ) = x + x 2 1 1 2 , x x x x ( ) 1 2 ) 1 2 ( * * max * i r i er x x e x + 1 2 x , x ) 2 ) ( 1 ) ( 1 2 ( * * * x* er x x er x +er ( ) * 2 ) 1 ) ( 2 ) ( 1 ) ( * 2 * 1 ( e x* e x* e x* e x x x e r r r r − r + 则, 由多元函数的Taylor展开公式类似可得 (1.5) (1.6) 在(1.6)式中,分别取 ,可得 同号) (1.7) (1.8) (1.9) (
例1.3:测得某桌面的长a的近似值a*=120cm,宽b的 近似值b*=60cm。若已知|e(a*)≤0.2cm, e(b*)≤0.1cm。试求近似面积s*三a为b米 的绝对误差限与相对误差限。 解:面积s=ab,在公式(1.5)中,将y=f(x1,x2) 换为s=ab,则 as(am,b“) as(a*, b*) e(s)≈ e(a)+ a ab b*e(a)+a*e(b") e(s)|<b*‖e(a*)+|a2‖e(b) ≤60×0.2+120×0.1=24cm 相对误差限为|e,(s) els 24 0.33% 120×60
例1.3:测得某桌面的长a的近似值a*=120cm,宽b的 近似值b*=60cm。若已知|e(a*)|≤0.2cm, |e(b*)|≤0.1cm。 试求近似面积s*=a*b* 的绝对误差限与相对误差限。 2 60 0.2 120 0.1 24 | ( *)| | * || ( *)| | * || ( *)| * ( *) * ( *) ( *) ( *, *) ( *) ( *, *) ( *) cm e s b e a a e b b e a a e b e b b s a b e a a s a b e s + = + = + + 解: 面积s=ab,在公式(1.5)中,将 换为 s=ab, 则 ( , ) x1 x2 y = f 相对误差限为 0.33% 120 60 24 | * ( *) | ( *)| | = = s e s e s r
§1.3选用算法应遵循的原则 1.尽量简化计算步骤,减少乘除运算的次数 例如,计算多项式Pn(x)=ao+a1x+……+anx 通常运算的乘法次数为1+2+…+mn=m(n+1) 2 若采用递推算法 儿.= +1 k (k=n-1,n-2,…,l,0) P (x) 则乘法次数仅为n.又如 1000 1000 ∑ n(n+1) ∑ )=1 hann+ 1001
§1.3 选用算法应遵循的原则 1.尽量简化计算步骤,减少乘除运算的次数. 例如,计算多项式 通常运算的乘法次数为 若采用递推算法, 则乘法次数仅为n. 又如 n pn (x) = a0 + a1 x + ...... + an x 2 ( 1) 1 2 ...... + + + + = n n n 0 1 ( ) ( 1 2 1 0) p x u u xu a k n- ,n- , , , u a n k k k n n = = + = = + 1001 1 ) 1 1 1 1 ( ( 1) 1 1000 1 1000 1 = − + = − + n= n n n= n n
2.防止大数“吃掉”小数 当la|>|b|时,尽量避免a+b。例如,假设计算机 只能存放10位尾数的十进制数,则 103+0.04=10。×0.1+109×0.0000000004=103 3.尽量避免相近数相减 例如,当x很大时,应 √x+1 x+√x+1 xx+1x(x+1) 当x接近于0时,应 1-cos x ac sina 1+cos x
2.防止大数“吃掉”小数 当|a|>>|b|时,尽量避免a+b 。例如,假设计算机 只能存放10位尾数的十进制数,则 3.尽量避免相近数相减 例如,当x很大时,应 8 9 9 8 10 + 0.04 = 10 0.1 + 10 0.00000000004 = 10 1 1 1 + + + − = x x x x ( 1) 1 1 1 1 + = + − x x x x , 1 cos 2 sin sin 1 cos x tg x x x x 或 + = − 当x接近于0时,应