用程序编写计算公式的高次方程数字计算机

78 阅读26分钟

4.诸常数B,η,K满足条件h=BKη≤1/2 那么方程(1)在邻域(12)内有解x*,并且基本程序(10)与变形程序(11)都收敛于这个解x*,基本程序(10)的收敛速度有下列估计: n
1 2 -1 │x -x*│≤ (2h) η (13) n n-1
2 [注]除上面的估计式(13)外,实用中还有更方便的估计式

│x -x│≤η(r-r ) n n 其中r是方程 1 2
hr -r+1=0 2
的最小正根,而r 是由初始近似根r =0出发,按基本程序(10)得到的第n次近似根。 n 0 我们给出当h=0.05,0.1,...,0.5与n=0,1,2,...,5时r
-r 的数值表如表11. n 表11 0 1 2 3 4 5

0.05 1.026 -1
0.263310 -4
0.1825
10 -11
0.9524*10

0.10 1.056 -1
0.557310 -3
0.1725
10 -8
0.1664*10

0.15 1.089 -1
0.889310 -3
0.6979
10 -7
0.4365*10

0.20 1.127 0.1270 -2
0.201710 -6
0.5248
10

0.25 1.172 0.4716 -2
0.549110 -5
0.4248
10 -11
0.3190*10

0.30 1.225 0.2251 -1
0.108610 -4
0.2784
10 -2
0.1838*10

0.35 1.292 0.2922 -1
0.229910 -3
0.1664
10 -7
0.1211*10

0.40 1.382 0.3820 -1 0.486310 -2 0.104410 -6 0.4591*10

0.45 1.519 0.5195 0.1104 -2 0.749510 -4 0.395510 -8 0.1113*10

0.50 2.000 1.0000 0.5000 0.2500 0.1250 -7
0.6250*10 如果方程(1)左端P(x)在区间[a,b]上是具有二阶连续微商的实函数, 注:微商即导数。 则有特别简单的收敛性判别法。陈述如下: 假设在区间[a,b]上成立 P(x)P``(x)>0, 而且, P(a)P(b)<0 如果, P(b)P``(b)>0,[或P(a)P``(a)>0], 则当取x =x =b(或a)时,基本程序(10)与变形程序(11)都收敛于方程(1)的解。 0 0 现在给出牛顿程序计算表如下: 表12

n 0 1 2 ………. x n P(x ) n P(x ) n P(x ) n △ =- n P(x )
n 注:此表是用来计算实数方程的实根的。如果求方程的复根,则牛顿程序计算表为: 表13 n 0 1 x =u +iv
n n n u 0 v 0 P(x )=a +ib n n n a 0 b 0 P(x )=c +id n n n c 0 d 0 P(x )P(x ) n n a c +b d 0 0 0 0 b c +a d 0 0 0 0 P(x )P(x ) n n 2 2
c +d 0 0 0 P P △x =- n P P △u =- 0 a c +b d 0 0 0 0

  2    2                      

c +d 0 0 △v =- 0 b c +a d 0 0 0 0

  2    2                      

c +d 0 0 若用变形牛顿程序(11)求方程的根, 则只要把表10(或表11)中的P(x )一行都换成P(x )即可。 0 0 计算步骤与注意事项: 1.首先,选定初始近似x ,并根据上述充分判别法验证程序(10)[或(11)]的收敛性。 0 如果初始近似x 选得适当好时,即使P(x )较小,P(x )较大, 0 0 0 那么程序(10)[或(11)]往往容易收敛。此时,就可免去验证收敛条件的麻烦,而直接进行计算即可。 一般说来,初始近似x 选得越好,程序收敛也就越快。 0 2.由x 出发按程序(10)[或(11)]计算,把数据填写在程序表12或表13内, 0 计算到所要求的精确度内前一次近似与后一次近似相同时为止。也可根据h的大小在表11中查到r*-r 的值,由 n │x -x*│≤η(r*-r ) n n 断定n多大时就能达到所要求的精确度;或直接由(13)式断定n的大小。 3.求复根时计算比较复杂,计算量较大,因此,有时把它转化成求含有两个未知量方程组的实根问题。为此,只要令z=x+iy,则P(x)可化为P(x)=u(x,y)+iv(x,y), 但P(x)=0等价于 u(x,y)=0, { (14) v(x,y)=0 注:关于求方程组的根见§6.求方程组的根 例1.用基本牛顿程序求方程2-x=logx的最小正根,并验证收敛条件。 首先,函数P(x)=logx+x-2在区间(0,+∞)内有意义,它的微商 1 P(x)= loge+1, (loge≈0.4329448)
x
在(0,+∞)内恒为正的,因此至多有一正根。 其次,由§1,(一)中的例知道,可取x =1.7作为初始近似, 0 注:§1,(一)中说明的是画图法求近似值,画出f(x)=2-x和函数f(x)=logx的图像,它们的交点近似值是1.7。 我们来验证收敛条件。因为P(1.7)=-0.6955,P(1.7)=1.25547, 故可取 P(x ) 0 η= =0.0554 P(x )
0

              1 

B=0.76952,(因为 =0.76951445...)
P(x ) 0 在x =1.7的邻域│x-1.7│≤2η=0.1108内考虑P(x)的二阶微商 0 1 P``(x)=- loge 2 x 最大绝对值,得│P``(x)│≤│P``(1.5892)│≤0.17196 故可取K=0.17196, 最后我们得到h=BKη≤0.007<1/2, 因此,在邻域│x-1.7│≤0.1108内有方程的根。最后,由于P(x),P(x)的函数值很容易求出,故不必列出计算函数值的表。我们列出程序计算表如下: 表14 n 0 1 2 3 x n 1.7 1.75540 1.7558 1.75558 logx n 0.23045 0.24438 0.24442 P(x ) n -0.06955 -0.00022 0 P(x ) n 1.25547 1.24740 P(x ) n △ =- n P(x )
n 0.05540 0.00018 0 因此,x=1.75558即为方程的近似根。 因为初始近似x 选得较好,因此h较小,收敛也就较快。 0 这里的h=0.007,它当然小于0.05,参照表11知道, -4
当n=2时,表中h=0.05那一行给出估计为0.1825*10 ,

                                             -4                     

而我们这里的η=0.0554,故有误差不超过0.1825η10 <0.11210
例2.用牛顿法求方程 4 3 2
P(x)=x +3x +0.8x -0.1x-2=0 的最小正实根。 因P(1)=正数,P(0)=-1,故[0,1]间有根,我们取x =0.7,不难求得 0 B=0.15,η=0.06011,K=32, 故h=0.27951, 由收敛定理得知用牛顿法计算时收敛,并且由表11可知h=0.3时, -1 -5
只要计算三步即n=3,就可以使误差不超过0.2784η10 <0.1710 现在我们按5位小数计算于表:

表14 n 0 1 2 3 x n 0.7 0.76011 0.75546 0.75543 P(x ) n -0.4089 0.03752 0.00022 -0.00002 P(x ) n 6.82 8.07275 7.96984 7.96918 P(x ) n △ =- n P(x )
n 0.06011 -0.00465 -0.00003 0.00000 得最小正实根为x=0.75543, 由此可见,上面的收敛速度的估计准确。牛顿方法用来求一个数a的平方根,立方根亦是很方便的。 例如,求平方根的程序为 1 a
x = (x + ) (15) n+1 2 n x
n
2
这是由方程x -a=0导出的。 例3.用牛顿法求√0.78265的值,按五位小数进行计算。 为了尽快地求出所要的值,我们在位数不多的简单平方根表中查得x =0.88作为初始近似。 0 其计算表为: 表15 n X n a x n 1 a
x = (x + )
n+1 2 n x
n
0 0.88 0.88933 0.88469 1 0.88469 0.88466 0.88468 2 0.88468 0.88467 0.88468 例4.用变形牛顿程序求 4 3 2
P(x)=x +x +x +x-5=0
的正实根。 因为P(1)<0,P(1,2)>0,故在(1,1.2)内有方程的实根。 取x =1/1,则P(1.1)=0.1051很小,故不必验证收敛条件而直接计算。 0 用综合除法计算P(x)的值如下: 表16

x a =1
0 a =1
1 a =1
2 a =1
3 a =-5
4 P(x)
1.2 1.2 2.46 4.368 6.4416 1.4416 1 1.2 2.46 4.368 6.4416 1.1 1.1 2.31 3.641 5.1051 0.1051 1 2.1 3.31 4.641 0.1051 1.00135 1.09135 2.28239 3.58224 5.00083 0.00083 1 2.09135 3.28239 4.58224 0.00083 1.09128 1.09128 2.28217 3.58177 4.99999 -0.00001 1 2.09128 3.28217 4.58177 计算程序表为: 表17 n x . n f(x ) n f(x )=f(1.1) 0 f(x ) 0 △x =- n f`(x ) 0

x =x +△x` n+1 n
0 1.1 0.1051 12.154 -0.00865 1.09135 1 1.09135 0.00088 12.154 -0.00007 1.09128 2 1.09128 -0.00001 12.154 0 1.09128 故所求的正实根的近似值为1.09128。 例5.用牛顿法求 3 2
P(x)=x -3x +6x-5=0 的复根,已知初始近似x =0.9+i1.8 , 0 注:若没有给出初始近似,则可用以后将要讲到的罗巴切夫斯基方法求出。 表18 n u . n v n p =-2u n n 2 2
q =(u +v ) n n n
0 0.9 1.80000 -1.8 4.05 1 0.85183 1.75805 -1.70366 3.81635 2 0.83897 1.75424 -1.67794 3.78123 3 0.83891 1.75438 -1.67782 3.78162

a =1
0 a =1
1 a =1
2 a =1
3 b -b u 3 2 n b v
1 n
1 -1.2 -0.21 -0.518 -0.0329 -0.375 1 -1.29634 -0.02487 -0.09508 -0.07389 -0.07372 1 -1.32206 0.0043 -0.00027 -0.00063 0.00075 1 -1.32218 0 -0.000018 0.00001 0 表19
n u . n v n P =-2u n n 2 2 q =(u +v ) n n n
0 0.9 1.80000 -1.8 4.05 1 0.85183 1.75805 -1.70366 3.81635 2 0.83897 1.75424 -1.67794 3.78123 3 0.83891 1.75438 -1.67782 3.78162

a =1
0 a =6
1 a =6
2 b -b u 2 1 n b v
1 n
3 -0.6 -7.23 -7.77 -1.08 3 -0.88902 -6.96364 -6.20635 -1.56294 3 -0.96618 -6.96488 -6.13496 -1.69491 3 -0.96654 -6.96654 -6.15570 -1.69568 表20 n 0 1 2 3 x =u +iv
n n n 0.9 1.8 0.85183 1.75805 0.83897 1.75424 0.83891 1.75438 P(x )=a +ib n n n -0.320 -0.378 -0.07389 -0.04372 -0.00063 0.00075 0.00001 0 P(x )=c +id n n n -7.77 -1.08 -6.20635 -1.56294 -6.13496 -1.69491 -6.15570 -1.69568 P(x )P(x ) n n 2.96457 2.58174 0.52692 0.15586 0.00259 -0.00567 -0.00006 0.00002 P(x )P(x ) n n 61.5393 0 40.96156 0 40.51045 0 40.76713 0 P P △x =- n P P -0.04817 -0.04195 -0.01286 -0.00381 -0.00006 0.00014 0 0 我们不验证收敛条件,而直接用牛顿程序计算。用表9求P(x)于P(x)的值。 3 2 2 计算P(x)=x -3x +6x-5的数值见表18. 计算P(x)=3x -6x+6的数值见表19.
计算复根的程序见表20。故近似根为0.83891±i1.75438。 §6.用牛顿方法解方程组 牛顿法除应用于解含一个未知量的方程外,还可用来解非线性方程组。 为了简单起见,我们只讨论二个未知量方程组的情形。 设给定方程组 P(x,y)=0 } (16) Q(x,y)=0
与一对初始近似(x ,y ),取下面线性方程组: 0 0

      Ә P(x  ,y   )         Ә P(x  ,y   )         
           0   0                0   0                      

P(x ,y )+ (x-x )+ (y-y )=0
0 0 Ә x 0 Ә y 0

      Ә Q(x  ,y   )         ӘQ(x  ,y   )         
           0   0                0   0                      

Q(x ,y )+ (x-x )+ (y-y )=0
0 0 Ә x 0 Ә y 0
的一对根(x ,y )作为方程组(16)的第一次近似,再由第一次近似按上法可确定第二次近似, 1 1 一般地由第n次近似(x ,y )按方程组 n n
Ә P(x ,y ) Ә P(x ,y )
n n n n
P(x ,y )+ (x-x )+ (y-y )=0
n n Ә x n Ә y n

      Ә Q(x  ,y   )         ӘQ(x  ,y   )         
           n   n               n   n

Q(x ,y )+ (x-x )+ (y-y )=0
n n Ә x n Ә y n
就可确定第n+1次近似(x ,y ),我们令
n+1 n+1
△x =x -x ;△y =y -y ;(n=0,1,2,...)
n n+1 n n n+1 n
则由代数学知识知(D ≠0) n A B
n n
△x = ,△y = (17) n D n D
n n
其中,

                     Ә P(x  ,y  )       
 -P(x   ,y   )            n   n  
0    0             Ә y           
                                     

A =
n Ә Q(x ,y )
-Q(x ,y ) n n
0 0 Ә y

    Ә P(x  ,y  )                  
      n   n       -P(x   ,y   )    

Ә x 0 0

B =
n Ә Q(x ,y )
n n -Q(x ,y )
Ә x 0 0 0
而D 是矩阵 n

   Ә P(x  ,y  )         Ә P(x  ,y  )       
     n   n               n   n 

Ә x Ә y

D =
n Ә Q(x ,y ) Ә Q(x ,y )
n n n n Ә x Ә y

的行列式(n=0,1,2,...)。计算程序表为: 表21 Ә ( ) Әx 0 Ә ( ) Әy 0 -( ) 0 Ә ( ) Әx 1 Ә ( ) Әy 1 -( )

……. P ӘP ( ) Әx 0 之值 ӘP ( ) Әy 0 之值 -(P) 0 之值 ӘP ( ) Әx 1 之值 ӘP ( ) Әy 1 之值 -(P) 1 之值 ……. Q ӘQ ( ) Әx 0 之值 ӘQ ( ) Әy 0 之值 -(P) 0 之值 ӘQ ( ) Әx 1 之值 ӘQ ( ) Әy 1 之值 -(Q) 1 之值 ……. A 之值 0 B 之值 0 D 之值 0 A 之值 1 B 之值 1 D 之值 1 …….. △x 之值 0 △y 之值 0 △x 之值 1 △y 之值 1 x 之值 1 y 之值 1 x 之值 2 y 之值 2 其中记号()。表示函数在(x ,y )点的值,等等。 0 0
在实际计算时还需要计算函数与它的偏微商在点(x ,y ) (x ,y ),...值, 0 0 1 1 它们的计算表格视表格视函数本身而定。 例1.用基本牛顿程序(17)求方程组。 2 2 4
P(x,y)=x +y -0.12x -1=0 } 3
Q(x,y)=y-x+0.15y =0 的一对根,按五位小数进行计算。已知初始近似为x =3.3,y =2。 0 0 先求出P与Q的一阶偏微商:

             ӘP          3        ӘP         
        =2x-0.48x   ;           =2y ;
             Әx                   Әy                             
          
             ӘQ                  ӘQ          2
        =-1  ;                 =1+0.45y
                Әx                   Әy     

计算依照表22和表23进行: 表22

m m x 0 m y 0 m x 1 m y 1 m x 2 m y 2 1 3.3 2 3.27851 2.02804 3.27813 2.02766 2 10.89 4 10.74863 4.11295 10.74614 4.11141 3 35.937 8 35.23949 3.84123 35.22724 8.33654 4 118.5921 115.53302 115.47947 4
-(1+0.12x ) -15.23105 -14.86396 -14.85754 3 0.15y 1.2 1.25118 1.25048 由表22和表23看出,方程组的一对近似根为: x*=3.27813;y*=2.02766 上述方法每计算一步需要计算三个行列式的值,因此计算量较大;又在求行列式的值时,由于交错相乘、相减、正负号的关系,常常容易算错,因而在有些情况下采用变形牛顿程序是较方便的。我们令 △x =x -x ;△y =y -y ;(n=0,1,2,...) n n-1 n n n-1 n

而(x ,y )=(x ,y )是方程组(16)的初始近似根,则 0 0 0 0
表23 Ә ( ) Әx 0 Ә ( ) Әy 0 -( ) 0 Ә ( ) Әx 1 Ә ( ) Әy 1 -( ) 1 -( ) 2 P -10.64976 4 0.34105 -10.36754 4.05608 0.00238 0 Q -1 2.8 0.1 -1 2.85083 -0.00071 0 0.55494 -0.72393 -25.81933 0.00967 0.00974 -25.50001 -0.02149 0.02804 -0.00038 -0.00038 3.27851 2.02804 3.27813 2.02766 ӘQ ӘP
( ) ( ) Әy 0 Әy 0
△x =- P(x ,y )+ Q(x ,y ) n D n n D n n 0 0 } (18) ӘQ ӘP ( ) ( ) Әx 0 Әx 0 △y =- P(x ,y )+ Q(x ,y ) n D n n D n n
0 0
其计算程序表为: 表24 -Γ 0 n 0 1 2 3 ӘQ -( ) Әx 0 之值
D 0 ӘP -( ) Әy 0 之值
D 0 P n ӘQ -( ) Әx 0 之值
D 0 ӘP -( ) Әy 0 之值
D 0 Q n △x n △y
n -1 -1
其中的Γ 表示D 的逆矩阵D :Γ =D 0 0 0 0 0
例2.用变形牛顿程序(18)解例1中的方程组,已知初始近似为x =0.7,y =0.7。 0 0 计算按照下面的表进行: 表25 m m x 0 m y 0 m x 1 m y 1 m x 2 m y 2 1 0.7 0.7 0.74525 0.69494 0.74471 0.69447 2 0.49 0.49 0.55540 0.48294 0.55459 0.48229 3 0.3430 0.3430 0.41391 0.33561 0.41301 0.33494 4 0.2401 0.30847 0.30757 4
-(1+0.12x ) -1.02881 -1.03702 -1.03691 3 0.15y 0.05145 0.05034 0.05024 表24 -Γ 0 n 0 1 2 -0.41974 -0.48147 P n -0.04881 0.00132 -0.00003 -0.34391 -0.42485 Q n 0.05143 0.00003 0 △x n 0.04525 -0.00054 0.00001 △y
n -0.00506 -0.00047 0.00001 由表26看出,计算到x ,y 就可停止, 3 3
由表25知x*=0.74471+0.00001=0.74472,y*=0.69447+0.00001=0.69448
第十四部分 罗巴切夫斯基法 下面内容可参看《计算实习》,初等部分,王德人等编,高等教育出版社1959年出版 §7.罗巴切夫斯基法 这个方法只适用于求代数方程的根。在求方程的根时不必预先知道初始近似根,可通过方程的系数之间的计算就能求出方程所有的根。 设给定n次代数方程 (0) n (0) n-1 (0) (0)
P(x)=a x +a x +...+a x+a =0 (19) 0 1 n-1 n
(0) (0) (0) (0)
其中系数a ,a ,...,a ,a 都是实数,且a ≠0.
0 1 n-1 n
设x ,x ...,x 是方程(19)的一切根,则有如下的关系: 1 2 n (k)
a
m m m 1
x +x +...+x =
1 2 n (k) a
0

                                 (k)          
                                a    
m  m   m  m       m    m       1                                                                 

x x +x x +...+x x =
1 2 3 4 n-1 n (k) a
0 } (20)

                                               (k)          
                                              a    
m  m   m    m  m  m      m  m  m           1                                                                 

x x x +x x x +...+x x x =
1 2 3 4 5 6 n-2 n-1 n (k) a
0

                       (k)          
                     a    
m  m   m    m        n                                                                

x x x ...x =
1 2 3 n (k) a
0
(k=0,1,2,...) k (k) (k) (k) (k) (k)
其中m=2 ,而诸数a ,a ,a ,...,a ,a 由下列逐次关系式确定: 0 1 2 n-1 n

       (k)    (k-1)   2                                                      
      a   =(a     )                                                                                   
        0     0
        (k)    (k-1)  2   (k-1)   (k-1)                                            

a =(a ) -2a a
1 1 0 2 (k) (k-1) 2 (k-1) (k-1) (k-1) (k-1)
a =(a ) -2a a +2a a }(21) 2 2 1 3 0 4
………………………… (k) (k-1) 2 (k-1) (k-1)
a =(a ) -2a a
n-1 n-1 n-2 n

       (k)    (k-1)   2                                                      
      a   =(a     )                                                                                   
        n     n

系数的计算程序为(见表27): (一)设方程(19)的一切根都是实根,且互不相同。 注:并且要求诸根的绝对值彼此不很接近。 我们设│x │>│x │>│x │>....>│x │, 1 2 3 4 则当k充分大时,等式(20)左端的第一项成为主要部分,从而我们得到近似等式:

表27 k (k) a 0 (k) a 1 (k) a 2 (k) a 3 …….. (k) a n-1 (k) a n 0 (0) a 0 (0) a 1 (0) a 2 (0) a 3 …….. (0) a n-1 (0) a n (0) 2 (a ) 0 (0) 2 (a ) 1

(0) (0) -2a a 0 2 (0) 2 (a ) 2

(0) (0) -2a a 1 3

(0) (0) +2a a 0 4 (0) 2 (a ) 3

(0) (0) -2a a 2 4

(0) (0) +2a a 1 5

(0) (0) -2a a 0 6 ……..

……..

……..

…….. (0) 2 (a ) n-1

(0) (0) -2a a n-2 n (0) 2 (a ) n

1 (1) a 0 (1) a 1 (1) a 2 (1) a 3 …….. (1) a n-1 (1) a n (1) 2 (a ) 0 (1) 2 (a ) 1

(1) (1) -2a a 0 2 (1) 2 (a ) 2

(1) (1) -2a a 1 3

(1) (1) +2a a 0 4 (1) 2 (a ) 3

(1) (1) -2a a 2 4

(1) (1) +2a a 1 5

(1) (1) -2a a 0 6 ……..

……..

……..

…….. (1) 2 (a ) n-1

(1) (1) -2a a n-2 n (1) 2 (a ) n

2 (2) a 0 (2) a 1 (2) a 2 (2) a 3 …….. (2) a n-1 (2) a n ……. ……… ……….. ……….. …….. ………… ………. (k)
a m 1
x ≈ (k) a 0

                 (k)                
               a
    m  m          2                      

x x ≈ 1 2 (k) a 0

                      (k)                
                    a
    m  m   m         3                     

x x x ≈ 1 2 3 (k) a 0 ……………….. }

                         (k)                
                      a
    m  m     m         n                    

x x ….x ≈ 1 2 n (k) a 0 k
由此我们得到各根x (i=1,2,...,n),m=2 次方的近似值 i (k)
a m 1
x ≈ 1 (k) a 0

           (k)                
         a
    m      2                      

x ≈ 2 (k) a 0

           (k)                
         a
    m      3                     

x ≈ 3 (k) a 0 ……….. }(22) (k)
a m n
x ≈ n (k) a 0 自上面近似等式(26)可求出│x │(i=1,2,...,n)的近似值, i
至于x 是正是负由方程(19)来确定。如果计算进行到第k +1步出现 I 0 (k +1) (k ) 0 0 2
a =(a ) 1 1

(k +1) (k ) 0 0 2
a =(a ) 2 2

(k +1) (k ) 0 0 2
a =(a ) n-1 n-1
那么计算即可停止。 (二)当诸根x (i=1,2,...,n)的绝对值│x │之中有相等的或近似相等的情形。比如, i i │x │>│x │=│x │>│x │>...>│x │ 1 2 3 4 n 则由(20)式可得 (k)
a m 1
x ≈ 1 (k) a 0

           (k)                
         a
    2m     3                     

x ≈ 2 (k) a 1

           (k)                
         a
     m     4                     

x ≈ 4 (k) a 3 ,...,

           (k)                
         a
     m     n                     

x ≈ (23) n (k) a n-1 如果计算进行到第k +1步出现 0 (k )
(0) 0 2
a =(a ) , (i=1,3,4,...,n-1),
i i

(k +1) (k )
0 1 2 2 a = (a ) , 2 2 2
那么计算即可停止。 (三)设方程(19)有复根(为简单起见,只叙述具有一对共轭复根的情形)。比如, ir -ir
x =re ,x =re 2 3 且│x │>r>│x │>...>│x │ 1 4 n 其中x ,x ,...,x 都是实根,则有近似关系式 2 4 n (k)
a m 1
x ≈ 1 (k) a 0

           (k)                
         a
    2m     3                     

r ≈ 2 (k) a 1

           (k)                
         a
     m     4                     

x ≈ 4 (k) a 3 ,...,
(k)
a m n
x ≈ (24) n (k) a n-1 (k +1)
0
如果计算进行到第k +1步,除a 外,出现 0 2

(k +1) (k ) (k +1) (k ) (k +1) (k )
0 0 2 0 0 2 0 0 2
a =(a ) , a =(a ) , ……, a =(a ) 1 1 3 3 n-1 n-1
(k)
那么计算即可停止。此时在计算过程中a 的变化是不规律的。 2 根据等式(24)与方程(19)确定x ,r,x ,...,x 之后,再由根与系数的关系式 1 4 n (0) a
1
x +2rcosφ+x +...+x =- (25)
1 4 n (0) a
0
2
求出cosφ,从而可求得sinφ= 1-cos φ,再后得到复根近似值为

x =r(cosφ+isinφ), 2
x =r(cosφ-isinφ), 3
计算步骤与注意事项: 1.如果方程次数较低,又熟记了系数的规律,那么计算系数的表27可改写为下面的简表: 表28 k (k) a
0 (k) a
1 (k) a
2 ………. (k) a
n 0 (0) a
0 (0) a
1 (0) a
2 ………. (0) a
n (0) 2a
0 (0) 2a
1 (0) 2a
2 ………. (1) a
0 (1) a
1 (1) a
2 ………. (1) a
n

应用表28时不必记录中间数据而直接在计算机上算出所要的数。 2.在求代数方程的一切根时,并不预先知道方程的根属于(一)、(二)、(三)等哪一种情况,但是可由观察在计算时系数变化规律判断之。 (k) (k)
如果某一系数,比如a 变化不规律,特别是a 当k变化时改变正负号, 2 2 那么可以断定方程有一对共轭复根x ,x ; 2 3 (k)
如果计算到某一步某一系数,比如a 出现 2

          (k+1)      1      (k)   2                
         a     ≈       (a      )       情况,
            2       2      2                     

那么方程有一对根x ,x 的绝对值近似相等:
2 3 │x │≈│x │ 2 3 如果在计算系数时不出现上述情况,那么可以断定方程的一切根都是互不相同的实根。 注:并且诸根的绝对值彼此不很接近。[注]如果在计算中有两个系数变化不规律,那么方程有两对复根,比如 x =r (cosφ ±isinφ )与x =r (cosφ ±isinφ )
2,3 1 1 1 4,5 2 2 2

          (k)                                                                                                                                                                                  

此时由系数a 求出r 与r 外还要求φ 与φ ,这可从下列关系式得到:
i 1 2 1 2
(0) a
1
x +x +...+x =- 1 2 n (0) a
0 } (0)
a
1 1 1 n-1
+ +…+ =-
x x x (0) 1 2 n a n 注:此时必须假设方程无接近于零的根。或

                                                    (0)           
                                                  a    
                                                    1                       

x +2r cosφ +2r cosφ +x +...+x =- 1 1 1 2 2 6 n (0)
a 0 } (26) (0)
2cosφ 2cosφ a
1 1 2 1 1 n-1
+ + + +…+ =- x r r x x (0) 1 1 2 6 n a n 3.为了避免产生过大的误差起见,在计算过程中我们保持一定位数的有效数字。 m 2m 2m
4.系数计算停止后,根据不同情况得到x ,x ,r , i i 然后用对数表求出│x │或r,如果出现复根, i 还需根据关系式(25)[或(26)]求cosφ,再求sinφ, 最后由方程(19)定出x 的正负号。 i 5.前述各种方法,在计算过程中若有小的错误,也不会影响所得结果,但罗巴切夫斯基法则不然,若有一步出错,结果也就错了。如果在计算系数时怀疑有错时,可根据下面关系式进行验算:

n (k) n i (k) n (k+1) ∑a *∑(-1) a =∑a i=0 i i=0 I i=0 i 例1.用罗巴切夫斯基法求方程 5 4 3 2
P(x)≡x -2.04878x -13.08943x +14.06504x +23.90244x-1.08943=0 的所有根。首先计算系数,在计算中我们取五倍以上有效数字,见表29.

表29 k m=2 a 0 a 1 a 2 a 3 a 4 a 5 0 1=2 1 -2.04878 -13.08943 14.06504 23.90244 -1.08943 2 1

  2

a =4.19750 1

-2a a =26.17886 0 2 2 a =171.33318 2

-2a a =57.633234 1 3

-2a a =47.80488 0 4 2 a =197.82535 3

-2a a =625.73864 2 4

-2a a =4.46400 1 5 2 a =571.32664 4

-2a a =30.64575 3 5 2 a =1.18686 5

1

2=2 1 2 3.0376410 2 2.7677010 3 8.2803010 2 6.0197210 1.18686 4

	          2

9.22726*10

      2

-5.5354010 4
7.66016
10

       3

-50.30514*10

       2

12.0394410 4 68.5633710

        4   

-32.32156*10

72.1050610 4
36.23703
10

        2          

-19.65512*10

2

4=2

1 2 3.6918610 4
2.75004
10 4
35.3139110 4
36.04048
10

1.40864 8

	          4

13.62983*10

      4

--5.5000810 8
7.56272
10

       8

-2.60748*10

       4

72.0809610 3
1247.07224
10

         3

-198.22552*10

       2

10.4010010 8 1298.9162010

        4

-99.4891710 3 8=2 1 2 8.1297510 8 4.9624510 11 1.0488510 11 1.29891*10 1.98427 16

	           8

66.09284*10

       8

-9.92490*10

          16      

64.62591*10

       15

-17.05378*10

       11

2.5978210 22
1.10009
10

       19

-12.88145*10

0 8
1.68717*1022

0 4 16=2 1 9 5.6167910 17 2.2920610 22 1.0872110 22 1.6871710 3.98733 32

	           18

31.54883*10

       17

-4.5841210 34 5.2535410

        31

-12.21326*10

0 44 1.18203*10

       39

-7.73419*10

0 44 2.84654*10

0

5

32=2 1 19 3.1089910 34 5.2413310 44 1.819510 44 2.8465410 1.55026*10 64

	           38

9.66582*10

       34

-10.4826610 68 27.4715410

0

0 88 1.39701*10

0

0 88 8.10279*10

0

5

32=2 1 38 9.6647710 69 2.7471510 88 1.3970110 88 8.1027910 2
2.403310 128 76 93.4077810

       69

-5.49430*10

          138

7.54683*10

0

0 176 1.95164*10

0

0 176 65.65521*10

0

  6

128=2 1 77 9.3407810 138 7.5468310 176 1.9516410 177 6.5655210 4 5.77585*10 注:表中所写的0,并非真为0,只说明在我们所取的有效数字范围内不起作用。

从表29中看出,方程只有实根,而且

 (7)     (6)   2                               

a = (a ) , (i=0,1,2,3,4,5) i i 7
所以计算即可停止。此时m=2 =128,从关系式 (7)
a
128 i x = , (i=0,1,2,3,4,5) (7)
a
i-1

求实根的绝对值│x │,(i=1,2,3,4,5) i 由表29得 128 77
x =9.34078*10 1 两边同时取对数得 128lg│x │=77+lg9.34078=77.97038, 1

lg│x │=0.6091449,│x │=4.0658, 1 1 同时查表29,得 128lg│x │=138+lg7.54683-77-lg9.34075=60.90738 2

lg│x │=0.475839,│x │=2.99115, 2 2

128lg│x │=176+lg1.95164-138-lg7.54683=37.41264 3

lg│x │=0.292286,│x │=1.96014, 3 3

128lg│x │=177+lg6.56552-176-lg1.95164=1.52687 4

lg│x │=0.011929,│x │=1.02785,
4 4

128lg│x │=4+lg5.77585-177-lg6.56552=-173.055656
5

lg│x │=-1.351997=2.648003,│x │=0.04446, 5 5 最后由观察与计算定出x 的正负号,因此得到方程的全部根如下: i

x =4.0658,x =-2.99115,x =1.96014,x =-1.02785,x =0.04446,
1 2 3 4 5
例2.用罗巴切夫斯基法求方程 3
P(x)≡x -3x+1=0 的一切根,按五位有效数字进行计算,并指出所求近似根的精确度。首先列出计算系数的表: 表30 k (k) a 0 (k) a 1 (k) a 2 (k) a 3 0 1 0 -3 1 2 0 1 1 6=0-2*(-3) 9=(-3)(-3)-201 1=11 2 12 2 1 18=66-29 69=99-261 1=11 2 36 3 1 186=1818-269 4725=6969-2181 1=11 2 372 4 1 25146=186186-24725 3
22325
10 =47254725-2186 1=11 2 50292 5 1 4
58767
10 10
49841*10

1=11 2 5
11758
10 6 13
3443610 25
24841
10 1=11 13
68872
10 7 1 31
1185810 54
61708
10 1=1*1 2

因此 128 35 128 23 128 -59
│x │ =1.185810 ,│x │ =5.203910 ,│x │ =1.620510 , 1 2 3 (7)
a
128 1 35
│x │ = =1.1858
10
1 (7)
a
0
(7) 54
a 6170810
128 2 23 │x │ = = =5.2039
10
2 (7) 31
a 11858*10
1

             (7)               
           a             1  
    128      3                               -59

│x │ = = =1.620510 3 (7) 54
a 61708
10
2
利用对数表求得 │x │ =1.8794,│x │ =1.5321 ,│x │=0.3472 , 1 2 3 然后由方程本身可以断定根为: x =-1.8794,x =1.5321 ,x =0.3472 , 1 2 3
最后,由于 P(-1.8794)=-0.000111<0 { P(-1.87935)=0.00031>0

P(1.5321)=-0.000045>0 { P(1.53205)=-0.00016<0

P(0.34730)=-0.000009<0 { P(0.347295)=0.000004>0 可见所求近似根具有五位有效数字。 例3.用罗巴切夫斯基法求方程 3 2
x +0.123x -0.25x-0.03075=0 的一切根,按五位有效数字进行计算,首先列出计算系数的表(表31):

表31

k
  (k)

a 0 (k) a 1 (k) a 2 (k) a 3 0 1 -1
1.230010 -1
-2.5000
10 -2
-3.0750 2 -1 -1
21.230010 =2.460010 1 1 5.151310
-1 2 -1
=(1.230010 ) -21*(-2.500010 ) -2
7.0064
10
-1 2 -1 -2
=(-2.500010 ) -2(1.230010 )(-3.075010 ) -4
9.4556
10
-4 2
=(-3.075010 ) 2 -1
1.0303=2
5.151310 2 1 1.252310
-1 2 -1
=(5.151310 ) -21*(7.006410 ) -2
3.9348
10
-1 2 -1 -4
=(7.006410 ) -2(5.151310 )(9.455610 ) -7
8.9408
10
-4 2
=(9.455610 ) 2 -1
1.0303=2
5.151310 3 1 -3
7.8130
10 -5
1.525910 -13
7.9939
10 2 -2
1.562610 4 1 -5
3.0525
10 -10
2.328210 -25
6.3901
10 2 -5
6.105010 5 1 -10
4.6614
10 -20 5.420510 -49
4.0835
10

此时 (5) 1 (4) 2 (5) (4) 2
a ≈ (a ) ,a ≈ (a ) ,(i=0,2,3)
1 2 1 i i
故│x │=│x │
1 2 按 (5) (5)
a a
64 2 64 3
│x │ = │x │ =
1 (5) 3 (5)
a a 0 2
而得 64 -20 32 -30
│x │ =5.420510 ,│x │ =7.533110 , 1 3 利用对数表而得│x │=0.5,│x │=0.123 1 3 最后由方程本身断定根为: x =0.5,x =-0.5,x =0.123
1 2 3 例4.用罗巴切夫斯基法求方程 3 2
P(x)≡x -3x +6x-5=0 的一切根 我们列出计算系数的表(表32): 表32

k
  (k)

a 0 (k) a 1 (k) a 2 (k) a 3 0 1 -3 6 -5 2 -6 12 1 1 2
-3=(-3) -261 2
6=6 -2*(-3)(-5) 2
25=(-5) 2 -6 12 2 1 2
-3=(-3) -2
16 3
0.186
10
2
(注:186=300+6 -2*(-3)25) 3
0.625
10 2 -6 3 3
0.37210 =20.18610 3 1 3
-0.363
10 2
(注:363=600-237=600-(-3) -21114) 5
0.3834610
3 2 5
=(1.86
10 ) -2*(-3)0.62510 6 3 2
0.3906310 =(0.62510 ) 2 3
-0.72610 5
0.76692
10 4 1 5
0.5507710
3 2 5
=(-0.363
10 ) -20.3834610 1 10
0.17540
10
5 2 3 6
=(0.3834610 ) -2(-3.6310 )0.3906210 12 6 2
0.15259
10 =(0.3906310 ) 2 5
0.11015
10 10
0.3508010 5 1 9
-0.47450
10
6 2 10
=(0.5507710 ) -20.1754010 1 19
0.30597
10
10 2 5 12 =(0.17540
10 ) -2*(0.5507710 )0.1525910 23 12 2
0.23284
10 =(0.1525910 ) 2 9
-0.94900
10 19
0.6119410 6 1 19
-0.5894310
9 2 19
=(0.47450
10 ) -20.3059710 1 37
0.93618
10
19 2 9
=(0.6119410 ) -2(0.4745010 )0.2328410 45 22 2
0.54214
10 =(0.23284*10 )

6    (5)   2             (k)                                                      

因为a =[a ] (i=0,2,3),且a 变化不规则,由此可知方程有一对共轭复根x ,令 i i 1,2
x =r(cosφ±isinφ)
1,2 由表32中的数据,我们得到 128 37
r =0.93618*10

    64    0.54214         8              

│x │ = *10 3 0.93618 应用对数表算得r=1.94464,│x │=1.32219 3 容易看出,方程有一实根近似值为:x =1.32219 3 我们再由 (0)
a
1
2rcosφ+x =- 3 (0)
a
0
得3.88928cosφ+1.32219=3, 故 1.67781 cosφ= =0.43139
3.88928 从而 2
sinφ= 1-cos φ =√0.81390=0.90216 最后得到共轭复根的近似值为x =0.83890±i1.75438 1,2 下面我们举出一例,说明如何选择上述各种方法,使计算量尽可能地少。 例5.求方程 3
P(x)=x -3x+1-0.2sinx=0 的一切实根,要求近似根具有四位小数,并估计误差。 1.确定一切实根所在的范围: 首先求出函数P(x)的一阶与二阶微商:

   2                  

P(x)=3x -3-0.2cosx P``(x)=6x+0.2sinx 然后应用§1中试验法造出下面的表: 表33 x -2 -1 0 1 2 P(x) - - + + - + + P(x) + + - - - + + P``(x) - 0 + 由表33可看出,在(-2,1)内有方程的根,但是在区间内P(x)只有一个极值,故只有一个根;在(0,1)内P(x)的曲线是单调下降的,故也只有一个根;在(1,2)内P(x)只有一个极值,故也只有一个根,此外无方程的实根。 2.选定初始近似根。 因为│0.2sinx│≤0.2,故可取方程 3
x -3x+1=0
的根,作为原方程的初始近似根。由本节例2知可取 (1) (2) (3)
x =0.3473,x =1.5321,x =-1.8794, 0 0 0
作初始近似根。 3.方法的选择 首先把原方程化为形式: 1 3 1 0.2
x= x + - sinx≡φ(x) 3 3 3 求φ(x)的一阶微商为 2 0.2
φ(x)=x - cosx 3 (1) 因为│φ(x )│<1很小,故求在(0,1)内的实根可用叠代法;
0
(2) (3)
而│φ(x)│在点x ,x 的值大于1,因此求在(1,2)与(-2,-1)内的实根叠代法不适用, 0 0 P(x) (2) (3) 但 在点x ,x 的值很小,故可用牛顿法。 P(x) 0 0 4.实际计算与误差估计。 我们不列出计算各函数值的表,只要按下面表34与表35上已化成的形式在计算机上直接算出函数值。用叠代法计算在(0,1)内的根,其计算表为34. 因此,x =0.3234为近似根。
1 1 -4
又因为P(0.3234)=0.00006>0与P(0.32345)=-0.00008<0,所以误差不超过 *10 2
用牛顿法计算在(1,2)与(-2,-1)内的根,其计算表为表35. 因此,x =1.5790,x =-1.9038为近似根。又因为 1 2 P(1.5790)=-0.00017<0 { P(1.57905)=-0.00006>0

 P(-1.9038)=0.00018>0

{ P(-1.90385)=-0.00021<0
1 -4
所以误差不超过 *10
2 表34 3
x =φ(x )=0.33333x +0.33333-0.06667sinx n+1 n n n 0 1 2 3 4 x n 0.3473 0.3246 0.3235 0.3234 0.3234 sinx n 0.34036 0.31893 0.31789 0.31789 表35 2 2
P(x)=x(x -3)+1-0.2sinx,P(x)=3(x -1)-0.2cosx n 0 1 2 0 1 2 x n 1.5321 1.5811 1.5790 -1.8704 -1.9037 -1.9038 0.2sinx n 0.19985 0.19999 0.19999 -0.19055 -0.18902 -0.18901 0.2cosx n 0.00774 -0.00206 -0.00164 -0.25130 -0.06536 -0.06538 P(x ) n -0.19981 0.00927 -0.00017 0.19045 0.000098 0.00018 P(x ) n 4.08021 4.5017 4.487156 7.84772 7.93757 7.93873 P(x ) n

P`(x ) n 0.04897 -0.00206 0.00004 -0.02427 -0.00012 -0.00002