Page 26 - 《软件学报》2020年第12期
P. 26
3692 Journal of Software 软件学报 Vol.31, No.12, December 2020
这样,只要令 y=z 3 ×z 4 ,则有式(20)成立.证明完毕. □
由上述定理,可得下列算法 3(与算法 4).它检验 Y 的计算值 Y 的精度是否精确到当用 Y 代替 Y 后,也能获得
f 1 (Y)×f 2 (Y)的一个计算值 y,使得|y−f 1 (Y)×f 2 (Y)|<ε.
算法 3. AccurateEnough_Mul( {( , ) |1y ε i ≤≤ n }, ( , ,...,f xx 2 x n ), f 2 ( , ,...,xx 2 x n ),ε ).
i
1
1
1
i
Require: {( , ) | yε i i = y ,1≤≤ } n ,f 1 (x 1 ,x 2 ,…,x n ),f 2 (x 1 ,x 2 ,…,x n ),ε>0;
i
y
i
i
i ε
Ensure:返回一个 4 元组 D = (, , ,y k ε 0 enough ) .若 enough=true,则|y−f 1 (Y)×f 2 (Y)|<ε;否则,当 enough=false 时, y
k
的精度ε k 不能满足计算的要求,其精度需要提高至ε 0 .
1: ε′⇐0.1;
_
2: Calculate and Judge ({( , ) |1y ε i ≤≤ n }, , )f ε′ ;
i
_
1
i
3: z ⇐ f ;
1 1
4: Calculate and Judge ({( , ) |1y ε ≤≤ n }, f , )ε′ ;
_
_
i
i i 2
5: z ⇐ f ;
2 2
6: ε 1 ⇐δ(ε/(2(|z 2 |+0.1)));
7: Calculate and Judge ({( , ) |1y ε i ≤≤ n }, , )f ε ;
_
i
_
1
i
1
8: z ⇐ f ;
1
3
9: ε 2 ⇐δ(ε/(2(|z 2 |+0.1+ε 1 )));
10: Calculate and Judge ({( , ) |1y ε i ≤≤ n }, f 2 , )ε 2 ;
i
_
_
i
11: z ⇐ f ;
4
2
12: y⇐z 3 ×z 4 ;
13: return (y,0,0,true);
算法 4. Calculate_and_Judge( {( , ) |1y ε ≤≤ n }, ( , ,...,f x x x ),ε )——这是一个内联函数,要嵌入到其他函
i
i i 1 2 n
数中.
Require: {( , ) | yε i i = y i ε ,1≤≤ } n ,f(x 1 ,x 2 ,…,x n ),ε>0;
y
i
i
i
i
Ensure:计算 AccurateEnough ({( , ) |1y ε i ≤≤ n }, , )f ε 的值.若其结果的第 4 个分量为 false,则返回该结果(4
i
元组);否则,将第 1 个分量赋给 f .
1: D ⇐ AccurateEnough ({( , ) |1≤≤ n f
y ε
i
}, , ) ε ;
i
i
2: if Fth ()D = false then
3: return D ;
4: else
5: f ⇐ Fst ( )D ; //获取 D 的第 1 个分量.变量名是由函数的第 2 个参数名与波浪号组合而成.
6: end if
(2) 除法运算
定理 2.4. 若命题 2.2 成立,并且 f 2 (Y)≠0,那么存在一个算法,对于 Y 的一个计算值 Y 与ε,或者能够判定,利用
此计算值可以获得一个值 y,使得:
|y−f 1 (Y)/f 2 (Y)|<ε (25)
成立,或者可以获得一个更为精确的计算值,使得利用此新的计算值,可以获得一个满足式(25)的 y.
证明:设 z 是|f 1 (Y)|的一个上界.类似于式(16),不难验证:对于 f i (Y)的计算值(z i ,ε i )(1≤i≤2)来说,只要满
1
足下列 3 个条件:
| z | 2 ,ε> | ε z /(z × (| z − | ε × ) ) | ε / 4,ε / | z < | ε < / 4 (26)
2 2 2 1 2 2 2 1 2
则有| z 1 /z 2 ε/2 −f 1 (Y)/f 2 (Y)|<ε.这样,只要令 y= z 1 /z 2 ε/2 ,则有式(25)成立.证明完毕. □
算法 5. AccurateEnough_Div( {( , ) |1y ε i ≤≤ n }, ( , ,...,f xx 2 x n ), f 2 ( , ,...,xx 2 x n ),ε ).
i
1
i
1
1