Page 25 - 《软件学报》2020年第12期
P. 25

赵世忠  等:循环迭代程序的一种可信计算算法                                                           3691


             37: end if

             38:  D ⇐  (, , ,y k ε 0  enough ) ;
         2.1.2    特定函数子算法
                                                                                1 f
             下面给出被主函数调用的第 2 个子算法.其中,f 为 f 1 ×f 2 ,f 1 /f 2 ,sin(f 1 ),arctan(f 1 ),ln(f 1 )或 e .
             算法 2. Sub2_AccurateEnough( {( , ) |1y ε  ≤≤  n }, ( , ,...,f x x  x  ),ε ).
                                               i

                                        i  i          1  2   n
             1:   if f=f 1 ×f 2  then

             2:      D ⇐  AccurateEnough  _ Mul ({( , ) |1y ε i  ≤≤  n }, ,f f 2 , )ε ;

                                                 i
                                          i
                                                       1
             3:   else if f=f 1 /f 2  then


             4:      D ⇐  AccurateEnough  _ Div ({( , ) |1y ε i  ≤≤  n }, ,f f 2 , )ε ;
                                                 i
                                          i
                                                       1
             5:   else if f=sin(f 1 ) then

             6:      D ⇐  AccurateEnough  _ Sin ({( , ) |1y ε i  ≤≤ n }, , )f ε ;

                                                 i
                                                       1
                                          i
             7:   else if f=arctan(f 1 ) then

             8:      D ⇐  AccurateEnough  _ ArcTan ({( , ) |1y ε  ≤≤ n }, , )f ε ;
                                                    i

                                             i  i         1
             9:   else if f=ln(f 1 ) then

             10:     D ⇐  AccurateEnough  _ Ln ({( , ) |1y ε i  ≤≤ n }, , )f ε ;

                                                i
                                         i
                                                      1
                          1 f
             11: else if  f =  e   then

             12:     D ⇐  AccurateEnough  _ Exp ({( , ) |1y ε i  ≤≤  n }, , )f ε ;

                                                 i
                                          i
                                                       1
             13: end if
             算法 2 中涉及到了 6 个子算法,分别为乘法运算子算法、除法运算子算法以及正弦函数、自然对数函数、
         反正切函数与指数函数子算法.
             命题 2.2.  已知函数 f(X),f 1 (X)与 f 2 (X)以及自变量 Y.存在一个算法,对于任意的误差限ε>0 与 Y 的一个计算

         值 Y 以及 f(X)或任意一个 f i (X)(1≤i≤2),或者能够判定,利用此计算值可以获得一个值 z,使得:
                                         |z−u|<ε(u∈{f(Y),f 1 (Y),f 2 (Y)})                   (19)
         成立,或者可以获得一个更为精确的计算值,利用此新的计算值可以获得满足式(19)的一个新的 z.
             (1)  乘法运算

             定理 2.3.  若命题 2.2 成立,那么存在一个算法,对于 Y 的一个计算值 Y 与ε,或者能够判定,利用此计算值可
         以获得一个值 y,使得:
                                              |y−f 1 (Y)×f 2 (Y)|<ε                          (20)
         成立,或者可以获得一个更为精确的计算值,使得利用此新的计算值,可以获得一个满足式(20)的 y.
             证明:设|z 1 −f 1 (Y)|<0.1,|z 2 −f 2 (Y)|<0.1.这时:
                                        |z 1 |+0.1>|f 1 (Y)|, |z 2 |+0.1>|f 2 (Y)|           (21)
             令:
                                   ε 1 =δ(ε/(2(|z 2 |+0.1))), ε 2 =δ(ε/(2(|z 2 |+0.1+ε 1 )))  (22)
         则存在 z 3 与 z 4 ,使得:
                                          |z 3 −f 1 (Y)|<ε 1 , |z 4 −f 2 (Y)|<ε 2            (23)
         其中,式(23)的第 1 个不等式又意味着:
                                               |z 3 |<|f 1 (Y)|+ε 1                          (24)
             由式(23)、式(22)、式(21)的第 2 个不等式、式(24)以及式(21)的第 1 个不等式,我们有下列不等式:
                           ( )×
                                                            ( )| | z <
                                                                         ( ) | ε ×
                                                     +
                  | z ×  z −  f Y  f Y ≤  ( )| | z −  f Y ×  ( )| | z −  f Y ×  | ε  | f Y  +  ×  | z ≤  |
                                          ( ) | | f Y
                    3  4  1     2     3   1      2      4  2      3  1   2     2  3
                      ε    ×   ( ) | +   ε      ×  |<  ε  +  ε      ×   ( ) | ε +  ) <  ε  +  ε  =  ε
                                                                       1
                              2
                   2(| z 2  | 0.1)+  | fY  2(| z +  1  | 0.1 ε  +  1 )  | z 3  2  2(| z +  1  | 0.1 ε  +  1 )  (| f Y  1  2  2
   20   21   22   23   24   25   26   27   28   29   30