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.182510 -11
0.9524*10
0.10
1.056 -1
0.557310 -3
0.172510 -8
0.1664*10
0.15
1.089 -1
0.889310 -3
0.697910 -7
0.4365*10
0.20
1.127
0.1270 -2
0.201710 -6
0.524810
0.25
1.172
0.4716 -2
0.549110 -5
0.424810 -11
0.3190*10
0.30
1.225
0.2251 -1
0.108610 -4
0.278410 -2
0.1838*10
0.35
1.292
0.2922 -1
0.229910 -3
0.166410 -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.6601610
3
-50.30514*10
2
12.0394410 4 68.5633710
4
-32.32156*10
72.1050610 4
36.2370310
2
-19.65512*10
2
4=2
1
2
3.6918610
4
2.7500410
4
35.3139110
4
36.0404810
1.40864 8
4
13.62983*10
4
--5.5000810 8
7.5627210
8
-2.60748*10
4
72.0809610 3
1247.0722410
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.1000910
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
2232510 =47254725-2186 1=11
2 50292
5 1
4
5876710
10
49841*10
1=11
2 5
1175810
6 13
3443610 25
2484110
1=11
13
6887210
7 1 31
1185810 54
6170810
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.185810
1 (7)
a
0
(7) 54
a 6170810
128 2 23
│x │ = = =5.203910
2 (7) 31
a 11858*10
1
(7)
a 1
128 3 -59
│x │ = = =1.620510
3 (7) 54
a 6170810
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.500010 -2
-3.0750
2 -1 -1
21.230010 =2.460010
1 1 5.151310
-1 2 -1
=(1.230010 ) -21*(-2.500010 ) -2
7.006410
-1 2 -1 -2
=(-2.500010 ) -2(1.230010 )(-3.075010 ) -4
9.455610
-4 2
=(-3.075010 )
2 -1
1.0303=25.151310
2 1 1.252310
-1 2 -1
=(5.151310 ) -21*(7.006410 ) -2
3.934810
-1 2 -1 -4
=(7.006410 ) -2(5.151310 )(9.455610 ) -7
8.940810
-4 2
=(9.455610 )
2 -1
1.0303=25.151310
3
1 -3
7.813010 -5
1.525910 -13
7.993910
2 -2
1.562610
4 1 -5
3.052510 -10
2.328210 -25
6.390110
2 -5
6.105010
5 1 -10
4.661410 -20
5.420510 -49
4.083510
此时
(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) -216 3
0.18610
2
(注:186=300+6 -2*(-3)25) 3
0.62510
2 -6 3 3
0.37210 =20.18610
3
1 3
-0.36310
2
(注:363=600-237=600-(-3) -21114) 5
0.3834610
3 2 5
=(1.8610 ) -2*(-3)0.62510 6 3 2
0.3906310 =(0.62510 )
2 3
-0.72610 5
0.7669210
4 1 5
0.5507710
3 2 5
=(-0.36310 ) -20.3834610 1 10
0.1754010
5 2 3 6
=(0.3834610 ) -2(-3.6310 )0.3906210 12 6 2
0.1525910 =(0.3906310 )
2 5
0.1101510 10
0.3508010
5 1 9
-0.4745010
6 2 10
=(0.5507710 ) -20.1754010 1 19
0.3059710
10 2 5 12
=(0.1754010 ) -2*(0.5507710 )0.1525910 23 12 2
0.2328410 =(0.1525910 )
2 9
-0.9490010 19
0.6119410
6 1 19
-0.5894310
9 2 19
=(0.4745010 ) -20.3059710 1 37
0.9361810
19 2 9
=(0.6119410 ) -2(0.4745010 )0.2328410 45 22 2
0.5421410 =(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