用程序编写计算公式的高次方程数字计算机
用程序编写计算公式的高次方程数字计算机是一种可以计算高次方程的数字计算机,它由按键,液晶显示器,中央处理器组成。按键输入的程序保存在磁带上面,中央处理器在程序的作用下计算方程式。按照方程式的求根公式进行编程,按照数学计算公式进行编程。
中央处理器由程序语句判断执行电路,程序语句判断控制电路,端口,加法器,减法器,乘法器,除法器,n次方计算器,对数计算器,三角函数计算器构成。
键盘输入的程序按每行保存在磁带中,程序语句判断电路根据键盘输入的程序的关键字判断电路执行相应的操作,例如输入ADD,电路执行加法操作,程序语句判断控制电路根据键盘输入的程序的关键字控制电路的工作,例如输入NIUDUN DIEDAI,电路将上面计算电路执行多次,进行牛顿迭代计算。
它的相关资料下载网址为:
链接:https://pan.baidu.com/s/1rICunk-o_hacg9_5jFgjFw?pwd=r1e2
提取码:r1e2
微云文件分享:高次方程数字计算机下载地址:https://share.weiyun.com/AHg7uLez
高次方程数字计算机
https://www.aliyundrive.com/s/MMyDHWGzfk7
链接:https://pan.baidu.com/s/1xonNNlqKEzfZxs4kG-YGZA?pwd=a57b
提取码:a57b
https://115.com/s/sw6wc1233u5?password=y542#
访问码:y542
https://kdocs.cn/join/gmw20yx?f=101
https://kdocs.cn/join/ge5wqfb?f=101
第一部分高次方程数字计算机
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ,
为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值计算电路由十进制转二进制电路组成,当有数字键按下时,对应的数字按键输出端输出对应的数值。数值按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算符号按键按下时,或门输出高电平,或门后面接上计数器,计数器记录按键按下的次数,当有按键按下时,计数器将对应的次数输入到加法器,加法器给键值乘以10,100,1000,等倍数。当连续按2次按键时,需要用乘法器给键值乘以10,连续按下3次按键时,需要用乘法器给键值乘以100,依次类推。所有数值按键的输出端连接到一起,输出到计算符号电路,进行计算。计算符号编码电路产生对应计算符号的编码,输送给计算符号按键电路。用计算符号按键输入计算符号+-×÷,cos,sin,ln,log,等,
当RS触发器的输入端R,S都是1时,触发器保持输出端没有变化。利用这个特点,当按键输入高电平1时,电路输出高电平1给存储器,当按键断开输入低电平0时,RS触发器仍然给存储器输入1,当清零键按下时,RS触发器的S端输入0,触发器给存储器输入0,存储器清零。
当有按键按下时RS触发器Q输出1, Q 输出0,按下清零键以后,RS触发器Q端输出0, Q 端输出0
按键编码器产生二进制编码,每个编码对应一个按键。
当数字键1,按下时,这个与门输出0000001给后面计算电路,所有按键存储器后面两两之间接上或门,或门后面再接上或门,最后接上计数器,当按键按下时,计数器变为1,对应的存储器输出对应键值。当按键按下第二次时,计数器输出2,输出两位数字,当按键按下第三次时,计数器输出3,输出三位数字。
经过两个异或门和一个或门以后输出高电平111111111,这使后面的与门输出按键的数值到寄存器1,
当开始输入时,按清零键,计算机按键输入为0.此时,开始输入字符,将字符输入到寄存器1,
按键输入的程序存储在磁带A上面,超强磁性磁带的基材由50%醋酸酯DAC,50%醋酸酯TAC构成,超强磁性磁带的磁性粉末粘合剂有1%氯乙烯,1%醋酸乙烯共聚体,1%苯乙烯-丁二烯共聚体,1%硝化纤维素。1%纤维素,1%丁腈橡胶,1%丙烯酸酯橡胶,1%无定形聚酯,1%氨酯橡胶,1%聚氨基甲酸乙酯树脂,环氧树脂,密胺树脂,1%醋酸乙烯,1%丙烯酸酯丁基系的软质树脂,超强磁性磁带的磁性粉末分散剂由10ml乙醇,20g尿素,10ml双氧水,10g蔗糖,20g聚乙二醇4000,油酸钾皂试剂20g,黄色色素10g,司盘80试剂10ml,氧化铝10g,氨水50g,大豆油10g,α-烯基磺酸钠5g,十二烷基苯磺酸钠5g,烯丙基磺酸钠5g,二甲苯磺酸钠5g,椰子油脂肪酸渗二乙醇酰胺6501日化,1%卵磷脂组成,磁性粉末稳定剂有对氯乙烯系粘合剂,使用硬脂酸钡等金属无机盐。磁性粉末防带静电剂是在磁性层内渗入炭黑或石墨等固体导电粉末。超强磁性磁带的磁性粉由二氧化铬,三氧化二铁,铬化铁,氧化镍,氧化钴,氧化钇,镝,二氧化锰。把磁性粉末,粘合剂,增塑剂,稳定剂,分散剂,加入水中,使各个磁性粉末相互溶解到水里,再球磨机混合均匀,最后用刮片涂覆到基材上面。
注意:收音机磁带使用涂着四氧化三铁的硝酸纤维素条,铁芯(铁氧体/羟基铁芯),0.32-0.45mm变压器钢片,线圈(0.08mm漆包线1200-1500匝),放音头间隙0.02mm,工作间隙0.5mm,磷铜萡/黄铜箔,
磁带录音机电路如下:
按键电路如下:
计算机中央处理器CPU电路原理图
程序语句判断电路
程序关键字判断电路,程序关键字判断电路,查询到关键字,并执行该关键字所要求的功能。
程序计算符号判断电路,程序计算符号判断电路,查询到计算符号,并执行该计算符号所要求的功能。
数据判断电路,程序数据判断电路,查询到数据符号,并执行该数据符号所形成的数据。
字符判断电路,程序字符判断电路,查询到字符,并执行该字符的功能。
磁带程序判断执行电路原理图。
语句执行电路,按照语句判断的输出,执行这条语句,输出到CPU端口并执行。
关于数字电路加法器,计数器,分频器的电路可参见《中国集成电路大全》丛书,《中国集成电路大全编写委员会编,国防工业出版社1987年出版.
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值编码电路由二进制编码电路组成,当有按键按下时,对应的按键输出端输出对应的按键编码。每个按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算按键按下时,或门输出高电平,这个或门在和每个按键的输出端接上与门,这些与门在两两之间接上或门,最后一个或门接上按键寄存器。按键寄存器将输入的按键输出保存到磁带寄存器A中,计算机CPU通过算法语言关键字判断语句,计算符号判断电路,中断判断电路,定时器判断电路,数据判断电路,选择性的判断执行磁带存储器A中的按键输入程序。计算机CPU通过执行电路执行上面语句判断电路输出的内容。最后将执行结果通过IO端口输出,并用液晶显示器显示出来。
如果出现PROGRAM BEGIN说明程序开始,与门导通,如果出现空格说明前面是一个关键字,或字符或数据,与门导通。如果出现回车说明前面是一个程序段,需要执行这段程序,与门导通。
关键字比较电路,和每个关键字的代码相互比较,如果代码相同·,执行该关键字的功能。
字符比较电路,和每个字符的代码相互比较,如果代码相同·,执行该字符的功能。
数据比较电路,和每个数据的代码相互比较,如果代码相同·,产生该数据的二进制编码。
磁带程序判断执行电路原理图
出现NIUDUN DIEDAI 时,程序将重新执行上面的计算,出现DIEDAI CISHU M=4时,程序将从新执行上面的计算4次,
出现DIEDAI TIME T=0.1S 时,程序将执行上面的计算1次的时间是0.1S,也就是控制计算开启关闭的定时器的时间是0.1秒,
出现JISUAN2#时,下面程序执行中的数据都存储到JISUAN2#寄存器组,
出现XXJS SANCI FANGCHENG B时,计算机将电路切换到牛顿弦线法计算电路,
出现RUN XXJS时,计算机将键盘输入的数据输入到牛顿弦线法计算电路中,并执行该电路。
出现OUTPUT JISUAN2# 01#时,计算机将电路在计算中所有寄存器里面的数据输入到端口01。
出现INPUT 02# A=3,B=-4,C=-6,D=-12时,计算机将端口02#输入的数据保存到电路寄存器A,B,C,D当中。
磁带程序判断执行控制电路原理图
计算机原理图如下:
第二部分 二元方程组计算电路
下面的资料可参见《计算方法讲义》,中国科学院计算技术研究所编,科学出版社1958年出版。
例.求方程组
2
φ (x,y)=x+3lgx-y =0
1
2
φ (x,y)=2x -xy-5x+1=0
1
的根。
1.牛顿法的使用,容易求出
Ә φ 3M
1 =1+ ,其中M-0.43429
Ә x x
Ә φ
1 =-2y,
Әy
Ә φ
2 =4x-y-5,
Әx
Ә φ
2 =-x
Әy
我们取x =3.4,y =2.2作为初始近似,那么
0 0
φ (x ,y )=0.1545,
1 0 0
φ (x ,y )=-0.72,
2 0 0
Ә φ
( 1 ) =1.383,
Ә x
0
Ә φ
( 1 ) =-4.4,
Ә y
0
Ә φ
( 2 ) =6.4,
Ә x
0
Ә φ
( 2 ) =-3.4,
Ә y
0
将这些值代入校正公式(8)就得h ,k
1 1
△ △
h= 1 , k= 2 (8)
D D
其中,
Ә φ Ә φ
( 1 ) ( 1 )
Ә x Ә y
0 0 1.383 -4.4
D= = =23.4578
Ә φ Ә φ 6.4 -3.4
( 2 ) ( 2 )
Ә x Ә y
0 0
Ә φ
-φ (x ,y ) ( 1 )
1 0 0 Ә y
0 -0.1545 -4.4
△= = =3.6933
1 Ә φ 0.72 -3.4
-φ (x ,y ) ( 2 )
2 0 0 Ә y
0
Ә φ
( 1 ) -φ (x ,y )
Ә x 1 0 0
0 1.383 -0.1545
△= = =1.98456
2 Ә φ 6.4 0.72
( 2 ) -φ (x ,y )
Ә x 2 0 0
0
△ 3.6933
h = 1 = =0.157444
1 D 23.4578
△ 1.98456
k = 2 = =0.084601
1 D 23.4578
h =0.157,k =0.085,
1 1
从而我们有,
x =3.4+0.157=3.557,y =2.285,
1 1
同样又可得
φ (x ,y )=-0.011,
1 1 1
φ (x ,y )=0.3945,
2 1 1
Ә φ Ә φ
( 1 ) =1.367 ( 1 ) =-4.57
Ә x Ә y
1 1
Ә φ Ә φ
( 2 ) =6.943, ( 2 ) =-3.557,
Ә x Ә y
1 1
再将这些值代入矫正公式(8)求得,
h =-0.0685,k =-0.0229,
2 2
从而有,
x =3.4885,y =2.2621,
2 2
重复这种过程,我们有
h =-0.0018,k =-0.000561,
3 3
所以第三近似是
x =3.4872,y =2.2615,
3 3
这些值小数点后四位都是正确的。
程序:
PROGRAM BEGIN 程序开始
JISUAN1# FANGCHENGZU YUNSUAN 1#计算,计算方程组,用运算方式,即通过输入程序来实现电路之间的连接,不需直接接入某一种定制电路,用计算公式将自变量x和y通过加法器,减法器,乘法器,除法器等连接起来
DISPLAY ON 在计算机显示器上显示下面的公式
Φ(X,Y)=X+3LGX-Y^2=0 将方程式Φ的表达式表示出来
F(X,Y)=2X^2-XY-5X+1=0
ӘΦ/ӘX=1-0.43429/X
ӘΦ/Ә Y=-2Y
ӘF/Ә X=4X-Y-5
ӘF/ӘY=-X
D=(Ә Φ/ӘX)( ӘF/ӘY)-( ӘΦ/ӘY)( ӘF/ӘX)
△#=( ӘΦ/ Ә Y)F(3.4,2.2)-Φ(3.4,2.2)*( Ә F/ Ә Y)
△$=Φ(3.4,2.2)*( ӘF/ӘX)-( ӘΦ/ӘX)F(3.4,2.2)
H=△#/D,K=△$/D
X=3.4+H,Y=2.2+K
DISPLAY OFF 关闭在计算机显示器上显示公式
WRITE1# FANGCHENGZU Φ ON 将方程式Φ的表达式写入到Φ寄存器
Φ EQU X ADD ( 3 MUL LGX ) SUB (Y^2) Φ表示函数,EQU表示等号,X表示自变量,ADD表示加法,MUL表示乘法,LGX表示X的对数,SUB表示减法,Y^2表示Y的平方。
WRITE1# OFF 关闭1#写入
WRITE2# FANGCHENGZU F ON
F EQU 2 MUL (X^2) SUB ( X MUL Y ) SUB ( 5 MUL X ) ADD 1
F表示函数,EQU表示等号,2表示数字2,MUL表示乘法,X^2表示X的平方,SUB表示减法,5表示数字5,MUL表示乘法,ADD表示加法
WRITE2# OFF
WRITE3# FANGCHENGZU ӘΦ/ ӘX ON
ӘΦ/Ә X EQU 1 SUB ( 0.43429 DIV X )
WRITE3# OFF
WRITE4# FANGCHENGZU ӘΦ/ӘY ON
ӘΦ/ӘY EQU 0 SUB ( 2 MUL Y )
WRITE4# OFF
WRITE5# FANGCHENGZU ӘF/ӘX ON
ӘF/ӘX EQU ( 4 MUL X ) SUB Y SUB 5
WRITE5# OFF
WRITE6# FANGCHENGZU ӘF/Ә Y ON
ӘF/Ә Y EQU 0 SUB X
WRITE6# OFF
WRITE7# FANGCHENGZU D ON
D EQU (ӘΦ/ӘX) MUL (ӘF/ӘY) SUB (ӘΦ/ӘY) MUL (Ә F/ ӘX)
WRITE7# OFF
WRITE8# FANGCHENGZU D ON
△# EQU (ӘΦ/ӘY) MUL F(3.4,2.2) SUB Φ(3.4,2.2) MUL (ӘF/ӘY)
WRITE8# OFF
WRITE9# FANGCHENGZU D ON
△$ EQU Φ(3.4,2.2) MUL (ӘF/ӘX) SUB (ӘΦ/ӘX) MUL F(3.4,2.2)
WRITE9# OFF
WRITE10# FANGCHENGZU D ON
△$ EQU Φ(3.4,2.2) MUL (ӘF/ӘX) SUB (ӘΦ/ӘX) MUL F(3.4,2.2)
WRITE10# OFF
WRITE11# FANGCHENGZU D ON
H EQU △# DIV D
WRITE11# OFF
WRITE12# FANGCHENGZU D ON
K EQU △$ DIV D
WRITE12# OFF
X=3.4+H,Y=2.2+K
FANGCHENGZU NIUDUN DIEDAI RUN 执行方程组的牛顿迭代法计算电路
DIEDAI X,Y 对X,Y进行牛顿迭代法计算
DIEDAI TIME 0.1S 进行一次迭代的时间是0.1s
DIEDAI CISHU M=3, 迭代次数为3次,保存在M寄存器里面
DISPLAY ON 在计算机显示器上显示计算结果X,Y寄存器里面的数据
X,Y
DISPLAY OFF 关闭显示
RUN JISUAN1# 将计算结果保存到JISUAN1#寄存器
PROGRAM OVER 程序结束
用数字电路加法器,乘法器,除法器,各种数值按上面的程序连接电路,电路如下图所示
第三部分 牛顿弦线法计算电路
下面的资料可参见《微积分学教程》第一卷第一分册,P80,Г.М.菲赫哥尔次著,叶彦谦等译,人民教育出版社1956年出版。
考察例题,方程式。
3 2
3x -4x -6x-12=0
可以设
3 2
f(x)= 3x -4x -6x-12
可以将x=1,x=2,x=3,x=4分别代入函数f(x),计算函数值
f(2)=-16.f(3)=15,
所以可得
有一根在2与3之间,因为若用f(x)表示式子的左端,就有,
f(2)=-16<0,f(3)=15>0.,
兹规定要算出这根是准确度达到0.01.
在区间[2,3]内,两种导数,
2
f`(x)=9x -8x-6及f``(x)=18x-8
都保持着正号(情形Ⅰ);
一阶导数在这区间内的最小值是m=9*2*2-8*2-6=14,
就是说当x取最小值,即x=2时,
f`(x)=9*2*2-8*2-6=14,
就有:
f(2) *(3-2) 16
x =2- =2+ =2+0.5161...
1 f(3)-f(2) 31
四舍五入,令x =2+0.5161... ≈2.51
1
因为f(2.51)=-4.760647, 故依不等式(6),还没有达到要求的准确度。继续计算
(3-2.51)*f(2.51) 0.49*f(2.51) 0.49*(-4.760647) 2.33271703
x =2.51- = 2.51- = 2.51- = 2.51+
2 f(3)-f(2.51) f(3)-f(2.51) 15-(-4.760647) 19.760647
=2.51+0.1180...
或四舍五入,
x =2.51+ 0.1180...≈2.63
2
算出f(2.63)=-0.87326, 并使用不等式(6),仍旧看出还没有达到目的。最后,
(3-2.63)*f(2.63) 0.37*f(2.63) 0.37*(-0.87326) 0.3231062
x =2.63- = 2.63- = 2.63- = 2.63+
3 f(3)-f(2.63) f(3)-f(2.63) 15-(-0.87326) 15.87326
=2.63+0.203553..
用四舍五入法凑足小数第二位令
x =2.63+ 0.203553...≈2.83
3
因为我们是在《向根的一侧》凑足小数第二位,所以x 可能会跳到这根的右边去;
3
但现在并未发生这种情形,这可由符号上看到,因为 f(2.83)=6.9799>0, f(2.63)=-0.87326<0
就有:
f(2.63)*(2.83-2.63) 0.87326*0.2 0.1746
x =2.63- = 2.63+ = 2.63+ = 2.63+0.0222...
4 f(2.83)-f(2.63) 6.9799+0.87326 7.85316
四舍五入,令
x =2.63+ 0.0222... ≈2.65
4
因为f(2.65)=-0.161125, 故依不等式(6),还没有达到要求的准确度。继续计算
(2.83-2.65)*f(2.65) 0.18*f(2.65) 0.18*(-0.161125) 0.0290025
x =2.65- = 2.65- = 2.63- = 2.63+
5 f(2.83)-f(2.65) f(2.83)-f(2.65) 6.9799+0.161125 7.141025
=2.63+0.203553..
四舍五入,令
x =2.63+ 0.004061... ≈2.654
4
因为f(2.654)=-0.016864
在这一次,依不等式(6),
0.016864
|x -ξ|=ξ-x < <0.001204
4 4 14
这样,2.654<ξ<2.655,即ξ=2.654+0.001, 因为f(2.655)=0.19384125, f(2.654)<0, f(2.655)>0
所以真实根在区间[2.654,2.655]之间, 我们可以将3.63到3.64之间分成10等分
3 2
f(2.6541)≈3*2.6541 -4*2.6541 -6*2.6541-12
= 56.0884-28.17698-15.9246-12
=-0.01318
3 2
f(2.6542)≈3*2.6542 -4*2.6542 -6*2.6542-12
= 56.0947-28.17691-15.9252-12
=-0.00741
3 2
f(2.6543)≈3*2.6543 -4*2.6543 -6*2.6543-12
= 56.10108-28.1812-15.9258-12
=-0.00592
3 2
f(2.6546)≈3*2.6546 -4*2.6546 -6*2.6546-12
= 56.12011-28.1876-15.9276-12
=-0.00491
3 2
f(2.6549)≈3*2.6549 -4*2.6549 -6*2.6549-12
= 56.139146-28.19397-15.9294-12
=-0.00491
3 2
f(2.6544)≈3*2.6544 -4*2.6544 -6*2.6544-12
= 56.10743-28.18336-15.9264-12
=-0.00233
3 2
f(2.6545)≈3*2.6545 -4*2.6545 -6*2.6545-12
= 56.11377-28.185481-15.927-12
=0.001289
故依不等式(6),还没有达到要求的准确度。继续计算
(2.655-2.654)*f(2.654) 0.001*f(2.654) 0.001*(-0.016864) 0.00016864
x =2.654- = 2.654- =2.634- =2.634+
6 f(2.655)-f(2.654) f(2.655)-f(2.654) 0.19384125+0.016864 0.210705
=2.654+0.00080036...
四舍五入,令
x =2.654+ 0.00080036... ≈2.6548
6
因为f(2.6548)=0.01214, 故依不等式(6),还没有达到要求的准确度。继续计算.
(2.6548-2.654)*f(2.654) 0.0008*f(2.654) 0.0008*(-0.016864) 0.0000134912
x =2.654- = 2.654- =2.634- =2.634+
7 f(2.6548)-f(2.6540) f(2.655)-f(2.6548) 0.01214+0.016864 0.029004
=2.654+0.00046515...
四舍五入,令
x =2.654+ 0.00046515... =-0.00233<0
7
因为
3 2
f(2.6545)≈3*2.6545 -4*2.6545 -6*2.6545-12
= 56.11377-28.185481-15.927-12
=0.001289>0
所以 x =2.654+ 0.00046515... =-0.00233是方程的近似解
7
用数字电路表示上边的计算过程,
程序:
计算下面方程式的根,
3 2
3x -4x -6x-12=0
可以将x=1,x=2,x=3,x=4分别代入函数f(x),计算函数值f(2)=-16.f(3)=15,
用数字电路加法器,乘法器,除法器,各种数值表示上面的方程,
PROGRAM BEGIN 程序开始
JISUAN2#
DISPLAY ON
3 2
3X -4X -6X-12=0
DISPLAY OFF
XXJS SANCI FANGCHENG B 执行三次方程的牛顿弦线法计算法电路
INPUT IO02# A=3,B=-4,C=-6,D=-12 将方程式的系数用A,B,CD存储器存储起来,
3 2
三次方程AX +BX +CX+D=0是一个固定电路,只需要需要改A,B,C,D的值就可以形成不同三次方程的计算电路,可以将端口02#输入的A=3,B=-4,C=-6,D=-12分别代入电路中的寄存器,计算函数值
MAKEB X1=1,X2=2,X3=3,X4=4 可以将键盘输入的x1=1,x2=2,x3=3,x4=4分别代入电路中的寄存器,计算函数值, 可以将x=1,x=2,x=3,x=4分别代入函数f(x),计算函数值, 当输入数据X2=2时,计算得到负数,与门A导通,与门B导通,将数据2输入到电路中进行计算
RUN XXJS 执行牛顿弦线法计算法电路,接通三次方程的计算电路
OUTPUT JISUAN2# 1#IO 将计算结果输出到计算机端口01#
SAVE JISUAN2# ZU 将计算中的寄存器数据都保存到JISUAN寄存器组
DISPLAY ON 在计算机显示器上显示计算结果X,
X
DISPLAY OFF
PROGRAM END 程序结束
用数字电路表示上面的计算过程,计算下面方程式的根
3 2
3x -4x -6x-12=0
可以将x=1,x=2,x=3,x=4分别代入函数f(x),计算函数值,
f(2)=-16.f(3)=15,
用数字电路加法器,乘法器,除法器,各种数值表示上面的方程,
用牛顿迭代法计算对数方程的根,下面的资料可参见《计算方法讲义》,中国科学院计算技术研究所编,科学出版社1958年出版,
例.求方程2x-lgx=7的实根,把原方程改写成,x=(lgx+7)/2,
从曲线y =2x-7和y =lgx之交点得其粗糙的近似值3.8。
1 2、
取这个值作为初始近似。于是按迭代公式得
x =(lg3.8+7)/2=3.79
1
x =(lg3.79+7)/2=3.7893
2
x =(lg3.7893+7)/2=3.7892
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。
程序:
PROGRAM BEGIN
JISUAN x=(lgx+7)/2
DDJS DUISHU FANGCHENG A 执行对数方程的牛顿迭代法计算法电路
TAKE A=1,B=7,E=1/2 通过计算机键盘向寄存器输入数据A=1,B=7,E=1/2,,改变的对数方程电路的参数,使电路参数变为变为x=(lgx+7)/2
GET M=3.8 可以将M=3.8分别代入函数f(x),计算函数值
RUN DDJS 执行牛顿迭代法计算法电路
OUTPUT JISUAN 2#IO 将计算结果输出到端口2#
PROGRAM END
x =(lg3.8+7)/2=3.79
1
x =(lg3.79+7)/2=3.7893
2
x =(lg3.7893+7)/2=3.7892
3
用数字电路加法器,乘法器,除法器,各种数值表示上面的方程,
计算电路如下:
用牛顿迭代法计算三角函数方程的根
例.求方程x+tgx=1的实根
把原方程改写成x=1-tgx,
从曲线y=1-x和y=tgx之交点得其粗糙的近似值1。取这个值作为初始近似。于是按迭代公式得
x =1-tg1=1-0.01745506=0.9825
1
x =1-tg0.98=1-0.0171058=0.982894
2
x =1-tg0.9828=1-0.0171547=0.982894
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。
注意对于ax+btgx=c的方程,取其解的近似值为c/a
注意对于ax+bsinx=c的方程,取其解的近似值为c/a
注意对于ax+bcosx=c的方程,取其解的近似值为c/a
注意对于ax+bctgx=c的方程,取其解的近似值为c/a
用牛顿迭代法计算三角函数方程的根
例.求方程2x+tgx=5的实根,
把原方程改写成x=(5-tgx)/2
从曲线y=5-2x和y=tgx之交点得其粗糙的近似值2.5。
取这个值作为初始近似。于是按迭代公式得
x =(5-tg2.5)/2=(5-0.04366094)/2=2.456
1
x =(5-tg2.456)/2=(5-0.04289155)/2=2.4571
2
x =(5-tg2.4571)/2=(5-0.04291079)/2=2.4570
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。、
用牛顿迭代法计算三角函数方程的根
例.求方程sinx+tgx=1的实根
把原方程改写成x=arcsin(1-tgx)
从曲线y=1-sinx和y=tgx之交点得其粗糙的近似值1。
取这个值作为初始近似。于是按迭代公式得
x =arcsin(1-tg1)=arcsin(1-0.017455)=arcsin0.9825=1.3635
1
x =arcsin(1-tg1.3635)=arcsin(1-0.0238)=arcsin0.97619=1.3439
2
x =arcsin(1-tg1.3439)=arcsin(1-0.0234597)=arcsin0.97654=1.34
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。
用牛顿迭代法计算三角函数方程的根。
例.求方程3sinx+tgx=2的实根
把原方程改写成x=arcsin[(2-tgx)/3],
从曲线y=2-3sinx和y=tgx之交点得其粗糙的近似值2/3=0.6666。取这个值作为初始近似。于是按迭代公式得
x =arcsin[(2-tg0.666666)/3]=arcsin0.64339=0.6981
1
x =arcsin[(2-tg0.6981)/3]=arcsin0.654481=0.7155
2
x =arcsin[(2-tg0.7155)/3]=arcsin0.654178=0.7155
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。
注意对于asinx+btgx=c的方程,取其解的近似值为c/a。
注意对于asinx+bcosx=c的方程,取其解的近似值为c/a。
注意对于asinx+bctgx=c的方程,取其解的近似值为c/a。
程序:
PROGRAM BEGIN 程序开始
JISUAN1# 3sinx+tgx=2 计算方程式3sinx+tgx=2的根
FANGCHENG HUANJIAN x=arcsin[(2-tgx)/3] 将方程式化简为
DDJS SANJIAO FANGCHENG A 执行三角函数方程的牛顿迭代法计算法电路
MAKE A=2,B=-1,C=3 将方程式的系数用A,B,CD存储器存储起来,通过计算机键盘向寄存器输入数据A=2,B=-1,E=3,,改变三角函数方程电路的参数,使电路参数变为变为x=(lgx+7)/2
GET M=A/C=0.6666 可以将M=3.8分别代入函数f(x),计算函数值
RUN DDJS 与门导通接通方程式计算电路,
OUTPUT JISUAN1# 3#IO 将计算结果输出到计算机2#端口
PROGRAM OVER 程序结束
x =arcsin[(2-tg0.666666)/3]=arcsin0.64339=0.6981
1
x =arcsin[(2-tg0.6981)/3]=arcsin0.654481=0.7155
2
x =arcsin[(2-tg0.7155)/3]=arcsin0.654178=0.7155
3
用数字电路加法器,乘法器,除法器,各种数值表示上面的方程,电路结构图如下:
第四部分 牛顿切线法计算电路
下面的资料可参见《微积分学教程》第一卷第一分册,P80,Г.М.菲赫哥尔次著,叶彦谦等译,人民教育出版社1956年出版。
2)第二个例题是解方程式
x*log x=1
10
利用这机会,给读者说明,怎么可以用函数的图示法来预测方程式的根的位置。
满足于方程式
1
log x=
10 x
的x值,显然表示两曲线
1
y=log x及y=
10 x
的交点的横标。 即使由它们的草图(图35)也可立刻看出,所求的根位于2与3之间。
y y=1/x
y=log x
10
o 1 2 3 4 x
图85
这是容易计算来检验的,因为令
f(x)=x*log x-1
10
,就有 f(2)==2*0.30103-1=-0.39793...<0,f(3)=3*0.47712125471-1=0.43136...>0,
注:查《中学数学用表》可知
log 2=0.3010, log 3=0.4771
10 10
现在要计算这根使准确度达到0.0001, 显然,在2≤x≤3时,
f`(x)=(x*log x-1)`=(x*log x)`-(1)`=x`*logx+x*log` x
x*log e
=log x+
x
=log x+log e>0
f``(x)= (log x+log e)`=log` x+log` e
x*log e
= >0 (情形Ⅰ);
x
可以令m=0.7. 因为f(3)刚好与f``(x)同号,故依公式(8)
3*log 3-1
f(3) 10
x` =3- =3-
1 f`(3) log 3+log e
10 10
3*0.47712125471-1
=3-
0.47712125471+0.434294
0.43136...
=3- =3-0.473...
0.91141...
令x` =3-0.47=2.53
1
就有f(x` )=f(2.53)=0.019894...
1
于是
0.0199
x` -ξ≤ <0.03
1 0.7
再求
2.53*log 2.53-1
f(2.53) 10
x` =2.53- =2.53-
2 f`(2.53) log 2.53+log e
10 10
2.53*0.4031205211758-1
=2.53-
0.4031205211758+0.434294
0.019894...
=2.53- =2.53-0.02375...
0.83741...
注:log 2.53=0.4031205211758
10
取 x` =2.53-0.0237=2.5063
2
依不等式(6)估计误差: 用计算机器算得
log 2.5063=0.399033
10
f(2.5063)=2.5063*log 2.5063-1=2.5063*0.399033-1=0.000096...
0.000096...
x` -ξ≤ <0.0002
2 0.7
即2.5061<ξ<2.5063
在这种情形,就有已经达到所求准确度的根, ξ=2.5602±0.00001, [实际上2.5062是ξ的盈近似值,因为f(2.5062)>0]
用数字电路表示上面的计算过程。
计算下面方程式的根
x*log x=1
10
即使由它们的草图(图35)也可立刻看出,所求的根位于2与3之间。显然,在2≤x≤3时,
f`(x)=(x*log x-1)`=(x*log x)`-(1)`=x`*logx+x*log` x
x*log e
=log x+
x
=log x+log e>0
f``(x)= (log x+log e)`=log` x+log` e
x*log e
= >0 (情形Ⅰ);
x
可以将x=1,x=2,x=3,x=4分别代入函数f(x),计算函数值,
f(2)==2*0.30103-1=-0.39793...<0,
f(3)=3*0.47712125471-1=0.43136...>0,
f(x)=x*log x-1
10
程序:
PROGRAM BEGIN 程序开始
JISUAN3# DUISHU FANGCHENG x*log x-1=0 计算对数方程式的根
10
QXJS DUISHU FANGCHENG B 执行对数方程的牛顿切线计算法电路
MAKEA A=-1,B=x,E=0 可以将键盘输入的A=-1,B=x,E=0分别代入电路中的寄存器,计算函数值
MAKEB X1=1,X2=2,X3=3,X4=4 可以将键盘输入的x1=1,x2=2,x3=3,x4=4分别代入电路中的寄存器,计算函数值
RUN QXJS 与门导通,连接牛顿切线计算法电路
DISPALY ON 显示计算得到的根X
X
DISPALY OFF
OUTPUT JISUAN3# 5#IO 将计算中JISUAN电路中所有寄存器里面的数据输出到计算机5#端口
PROGRAM END 程序结束
用数字电路加法器,乘法器,除法器,各种数值表示上面的方程,
156.例题及习题
在这一段内我们将专门使用切线法。
1)计算方程式
3 2
x -2x -4x-7=0 的根,使准确度达到0.01,已知这根在区间(3,4)内[参阅154]。我们有
3 2
f(x)=x -2x -4x-7,f(3)=-10<0,f(4)=+9>0,
2
在3≤x≤4时f`(x)=3x -4x-4>0,f``(x)=6x-4>0, (情形Ⅰ);|f`(x)|的最小值是m=11.
现在由给定区间的右端b=4出发,因为在这端点处函数f(x)与f``(x)有相同的符号。依公式(8)
f(4) 9
x`=4- =4- =4-0.32...
f`(4) 28
四舍五入,令
x` =4-0.3=3.7.
1
因为
f(x` )=f(3.7)=1.473,
1
故依不等式(6),
1.473
x` -ξ< <0.14
1 11
即还不够达到所需的准确度。再求
f(3.7) 1.473
x` =3.7- =3.7- =3.7-0.066...
2 f`(3.7) 22.27
令
x` =3.7-0.066=3.634
2
在这一次f(x`)=f(3.634)=0.042...,于是根据(6),
0.042
x` -ξ< <0.004
11
因此3.630<ξ<3.634,而ξ=3.63 已达到所求的准确度。(同是得出这一结果,在154内用弦线法却需要做三次)。
还可以再把准确度提高一点,所以真实根在区间[3.63,3.64]之间, 我们可以将3.63到3.64之间分成10等分.
3 2
f(3.631)≈3.631 -2*3.631 -4*3.631-7=
= 47.871688591+ 26.368322+ 14.524
= -0.020633409
3 2
f(3.632)≈3.632 -2*3.632 -4*3.632-7=
= 47.911251968+ 26.382848+ 14.528
= 0.000403968
由于 |0.000403968|< |-0.020633409|
所以3.632更接近于真实根,它就是方程的近似根
程序:
PROGRAM BEGIN
3 2
JISUAN4# SANCI FANGCHENG x -2x -4x-7=0
QXJS SANCI FANGCHENG A 执行四次方程的牛顿切线计算法电路
MAKEA A=-7,B=-4,C=-2,D=1 将方程式的系数用A,B,CD存储器存储起来
可以将键盘输入的A=-7,B=-4,C=-2,D=1分别代入电路中的寄存器,计算函数值
MAKEB X1=1,X2=2,X3=3,X4=4 当输入数据X3=4时,计算得到正数,与门A导通,与门B导通,将数据4输入到电路中进行计算
RUN QXJS 与门导通,连接牛顿切线计算法电路
DISPALY ON 显示计算结果X
X
DISPALY OFF
OUTPUT JISUAN4# C 6#IO 将计算中JISUAN4#电路中所有寄存器里面的数据输出到计算机6#端口
PROGRAM END
计算方程根的电路,
3 2
f(x)=x -2x -4x-7
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
f(x)计算电路
第五部分 计算实习电路
下面内容可参看《计算实习》,初等部分,王德人等编,高等教育出版社1959年出版
3.秦九韶除法[秦九韶程序]
a a a …… a a
0 1 2 n-1 n
S x S x S x S x
0 0 1 0 n-2 0 n-1 0
S S S …… S S =P(x )
0 1 2 n-1 n 0
例设
4 3 2
P(x)=x -2x +3x +x-5
求x =1.32219时P(x )的值。计算表如下:
0 0
1 -2 3 1 -5
1.32219 ,-0.89619=-0.67781*1.32219 , 2.78164=2.10381*1.32219, 5.00005=3.78164*1.32219
1, -0.67781=-2+1.32219, 2.10381=3-0.89619, 3.78164=1+2.78164, 0.00005=-5+5.00005
因为, P(x )=S
0 0
因为, S =S x +a ,(k=1,2,...,n),S =a (5)
k k-1 0 k 0 0
S =S x +a
4 3 0 4
S =S x +a
3 2 0 3
S =S x +a
2 1 0 2
S =S x +a
1 0 0 1
S =a
0 0
所以, P(1.32219)=S =0.00005
4
程序:
PROGRAM BEGIN 程序开始
4 3 2
JISUAN1# DUOXIANGSHI P(x)=x -2x +3x +x-5 计算多项式P(X)的数值
QJSJS SICI DUOXIANGSHI A 用秦九韶法计算四次多项式的数值,电路切换到秦九韶法计算四次多项式值的固定电路
MAKEA A=1,B=-2,C=3,D=1,E=-5, 用键盘输入四次多项式的参数A=1,B=-2,C=3,D=1,E=-5
TAKEA X=1.32219 用键盘给电路中的X输入数值1.32219进行计算
RUN QJSJS 与门导通,四次多项式的秦九韶法计算电路接通,进行计算
DISPLAY ON 显示多项式P(X)的数值
P(X)
DISPLAY OFF 关闭显示
OUTPUT JISUAN1# 2#IO 将计算方程式JISUAN1#中所有寄存器的数值输出到端口2#
PROGRAM END 程序结束
计算公式如下:
P(1.32219)=S =0.00005
4
S =S x +a
4 3 0 4
S =S x +a
3 2 0 3
S =S x +a
2 1 0 2
S =S x +a
1 0 0 1
S =a
0 0
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
例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
△x =-
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 -5
而我们这里的η=0.0554,故有误差不超过0.1825η*10 <0.112*10
程序:
PROGRAM BEGIN 程序开始
JISUAN1# DUISHU FANGCHENG logx+x-2=0 计算对数方程的根。进入对数方程计算根的电路
NDJS DUISHU FANGCHENG C 与门导通,接入秦九韶法计算方程式根的电路
MAKEA A=1,B=1,C=-2, 键盘输入对数方程的系数A=1,B=1,C=-2
MAKEB F=1,G=loge,H=1, 键盘输入P(x)导数的系数F=1,G=loge,H=1
TAKEA X=1.7 用键盘给电路中的X输入数值1.7
RUN QJSJS 接通电路进行计算
DISPLAY ON 显示计算得到的根X
X
DISPLAY OFF
OUTPUT JISUAN1# 3#IO 将计算电路JISUAN1#中所有寄存器的数据输出到3#端口
PROGRAM END 程序结束
计算方程根的公式如下:
P(x )
n
x =x +△x =x -
n+1 n n 1 P`(x )
n
上式中, P(x)=logx+x-2,
1
P``(x)=- loge+1, (loge≈0.4329448)
x
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
例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
只要计算三步即n=3,就可以使误差不超过0.2784η*10 <0.17*10
现在我们按5位小数计算于表:
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, 由此可见,上面的收敛速度的估计准确。
程序:
PROGRAM BEGIN 程序开始
4 3 2
JISUAN1# SICI FANGCHENG P(x)=x +3x +0.8x -0.1x-2=0 计算1#,计算四次方程的根
QJSJS QJSSICI FANGCHENG B 用秦九韶法计算四次方程式的根
MAKEA A=1,B=3,C=0.8,D=-0.1,E=-2 用键盘输入方程式P(X)的系数A=1,B=3,C=0.8,D=-0.1,E=-2
MAKEB F=3,G=9,H=1.6,I=-0.1, 用键盘输入方程式P`(X)的系数F=3,G=9,H=1,I=-0.1
TAKEA X=1.7 用键盘输入X的初始值1.7
RUN QJSJS 接通电路进行计算
DISPLAY ON 液晶显示器显示JISUAN1#电路中所有寄存器的数据,和根X的数值
JISUAN1#,X
DISPLAY OFF 关闭显示
PROGRAM END 程序结束
计算方程根的公式如下:
P(x )
n
x =x +△x =x -
n+1 n n 1 P`(x )
n
上式中,
4 3 2
P(x)=x +3x +0.8x -0.1x-2=0
3 2
P(x)=3x +9x +1.6x-0.1=0
计算公式如下:
P(1.32219)=S =0.00005
4
S =S x +a
4 3 0 4
S =S x +a
3 2 0 3
S =S x +a
2 1 0 2
S =S x +a
1 0 0 1
S =a
0 0
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
用秦九韶除法计算多项式P(x)的值
例,求方程
4 3 2
P(x)≡x +x -3x +12x-12=0
的最小正实根,按四位小数进行计算。
首先,因P(0)<0,P(2)>0,故在(0,2)内必有方程的根。又因P(x)的微商
3 2
P`(x)=4x +3x +6(2-x)
在(0,2)内是正的,因此,方程在(0,2)内只有一个根,即在(0,2)内方程的根是最小正根。其次,取初始近似x =1,而把方程改写成下面形式:
0
4 3 2
x=-(x +x -3x -12)/12=φ(x)
但
3 2
φ`(x)=-(4x +3x -6x)/12
在x =1的值为φ`(1)=1/12很小,因此可以进行叠代。
0
计算表格如下:
根据秦九韶除法计算多项式
4 3 2
x=-(x +x -3x -12)/12=φ(x)
的值,如下表所示
表10
x
i a =1
0 a =1
1 a =-3
2 a =0
3 a =-12
4 φ(x )=-S /12
I 4
1 1=1*1 2=2*1 -1=-1*1 -1=-1*1 1.0833
1 2=1+1 -1=2*1-3 -1=-1*1-0 S =-13=-1*1-12
4
1.0833 1.0833 2.2568 -0.8051 -0.8722 1.0727
1 2.0833 -0.7432 -0.8051 -12.8722
1.0727 1.0727 2.2234 -0.8331 -0.8937 1.0745
1 2.0727 -0.7766 -0.8331 -12.8937
1.0745 1.0745 2.2291 -0.8283 -0.8900 1.0742
1 2.0745 -0.7709 -0.8283 -12.8000
1.0749 1.0742 2.2281 -0.8292 -0.8907 1.0742
1 2.0742 -0.7719 -0.8292 -12.8907
由此得到所求的最小正根的近似值为1.0742,
注:秦九韶除法计算多项式的公式如下
S =S x +a ,(k=1,2,...,n),S =a (5)
k k-1 0 k 0 0
表5
a a a …… a a
0 1 2 n-1 n
S x S x S x S x
0 0 1 0 n-2 0 n-1 0
S S S …… S S =P(x )
0 1 2 n-1 n 0
程序:
PROGRAM BEGIN 程序开始
4 3 2
JISUAN2# SICI FANGCHENG x=-(x +x -3x -12)/12=φ(x) 计算1#,计算四次方程的根
QJSJS DDSICI FANGCHENG A 选择秦九韶法,迭代计算四次方程的根的计算电路
MAKEA A=1,B=1,C=-3,D=0,E=-12,K=-12
用键盘给四次方程计算电路输入参数A=1,B=1,C=-3,D=0,E=-12,K=-12
TAKEA X=1 用键盘输入X的初始值1
RUN QJSJS 与门导通,接通四次方程计算电路,开始计算
DISPLAY ON 液晶显示屏显示计算得到的根X,计算中所有寄存器的数值
P(X),JISUAN4#
DISPLAY OFF
OUTPUT P(X) 2#IO 将计算得到的根X输出到计算机端口2#
PROGRAM END 程序结束
计算公式如下:
P(1)=S =1
4
S =S x +a
4 3 0 4
S =S x +a
3 2 0 3
S =S x +a
2 1 0 2
S =S x +a
1 0 0 1
S =a
0 0
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
计算电路如下
第六部分 罗巴切夫斯基法电路
例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.03764*10 2
2.76770*10 3
8.28030*10 2
6.01972*10
1.18686
4
2
9.22726*10
2
-5.53540*10 4
7.66016*10
3
-50.30514*10
2
12.03944*10 4
68.56337*10
4
-32.32156*10
72.10506*10 4
36.23703*10
2
-19.65512*10
2
4=2
1
2
3.69186*10
4
2.75004*10
4
35.31391*10
4
36.04048*10
1.40864
8
4
13.62983*10
4
--5.50008*10 8
7.56272*10
8
-2.60748*10
4
72.08096*10 3
1247.07224*10
3
-198.22552*10
2
10.40100*10 8
1298.91620*10
4
-99.48917*10
3
8=2
1 2
8.12975*10 8
4.96245*10 11
1.04885*10 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.59782*10 22
1.10009*10
19
-12.88145*10
0 8
1.68717*1022
0
4
16=2
1 9
5.61679*10 17
2.29206*10 22
1.08721*10 22
1.68717*10
3.98733
32
18
31.54883*10
17
-4.58412*10
34
5.25354*10
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.10899*10 34
5.24133*10 44
1.8195*10 44
2.84654*10
1.55026*10
64
38
9.66582*10
34
-10.48266*10 68
27.47154*10
0
0 88
1.39701*10
0
0 88
8.10279*10
0
5
32=2
1 38
9.66477*10 69
2.74715*10 88
1.39701*10 88
8.10279*10 2
2.4033*10
128 76
93.40778*10
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.34078*10 138
7.54683*10 176
1.95164*10 177
6.56552*10 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
程序:
PROGRAM BEGIN 程序开始
JISUAN1# WUCI FANGCHENG
5 4 3
P(x)≡x -2.04878x -13.08943x +14.06504x +23.90244x-1.08943=0
1#计算,计算五次方程式的根
LBQJS WUCI FANGCHENG D 选择罗巴切夫斯基法计算五次方程式的根的电路
MAKEA A=1,B=-2.04878,C=-13.08943,D=14.06504,E=23.90244,F=-1.08943,
用键盘输入计算电路的参数A=1,B=-2.04878,C=-13.08943,D=14.06504,E=23.90244,F=-1.08943
GET X1,X2,X3,X4,X5 将计算得到的根X1,X2,X3,X4,X5存储在存储器中
RUN LBQJS 与门导通,接入罗巴切夫斯基法计算电路,进行计算
DISPLAY ON 在液晶显示器上显示方程式的五个根X1,X2,X3,X4,X5
X1,X2,X3,X4,X5
DISPLAY OFF
OUTPUT JISUAN1# 3#IO 将计算1#中的寄存器中的所有数据输出到计算机3#端口
PROGRAM END 程序结束
计算上面方程根的罗巴切夫斯基方法见上面的表29。
用数字电路加法器,乘法器,除法器,各种数值表示表29的计算公式,
电路图如下所示
第八部分 林士鄂法计算电路
下面内容可参看《计算实习》,初等部分,王德人等编,高等教育出版社1959年出版
§8.林士鄂法(析因子法)
注:我国自动控制学家,航空教育专家林士鄂在留学美国麻省理工学院期间,以《飞机自动控制理论》论文获航空科学博士学位,该论文提出的“高阶方程劈因解法”,被誉为“林士鄂法”。即为此方法。
这个方法适用于求代数方程
n n-1
P(x)≡a x +a x +...+a x+a =0 (27)
0 1 n-1 n
的根,其中a ,a ,...,a 都是实数,而次数n>2。
0 1 n
这个方法的实质是由P(x)的近似二次三项式因子
2
x +p x+q
0 0
出发,寻求P(x)的近似二次三项式因子
2
x +p x+q
k k
而把求n次代数方程(27)的根归结为求二次方程的根。
注:为了简单起见,我们这里特别1只讲析出二次三项式因子的计算方法,一般可析出m,(m<n)次因子。
p 与q 按下面关系式计算:
k k
-p =a ,-q =-a
0 0 0 0
(0)
b =a
0 0
(k)
b
n-1
p =p +
k+1 k (k)
b
n-1
(k)
a
n
p = ,(k=0,1,2,...) (28)
k+1 (k)
b
n-2
其中,
(k)
b =a
0 0
(k) (k)
b =a -p b
1 1 k 0
(k) (k) (k)
b =a -p b -q b
2 2 k 1 k 0
(k) (k) (k)
b =a -p b -q b
3 3 k 2 k 1
……………..
(k) (k) (k)
b =a -p b -q b
n-1 n-2 k n-3 k n-4
(k) (k) (k)
b =a -p b -q b
n n-1 k n-2 k n-3
其计算可按下面表36进行。
表36
k a
0 a
1 a
2 …
a
n-2 a
n-1 a
n (k)
b
n-1
(k)
b
n-2
a
n
(k)
b
n-2
0 -p
0 (0)
-p b
0 0 (0)
-p b
0 1 (0)
-p b
0 n-3 (0)
-p b
0 n-2 (0)
b
n-1
(0)
b
n-2
a
n
(0)
b
n-2
-q
0 (0)
-p b
0 0 (0)
-p b
0 n-4 (0)
-p b
0 n-3
(0)
b
0 (0)
b
1
(0)
b
2
(0)
b
n-2 (0)
b
n-1
1 -p
1
-q
1
如果计算到第k +1步出现
0
p =p ,q =q
k k +1 k k +1
0 0 0 0
计算即可停止。方程
2
x +p x+q =0
k k
0 0
的根即为方程(27)的二个近似根。
(1) (2)
如果用试验法求的方程(27)的二个粗糙的近似根x 与x ,即可取
0 0
(1) (2) (1) (2)
p =-x -x ,q =x x
0 0 0 0 0 0
如果求的一个粗糙的近似复根x =u +iv ,则可取
0 0 0
2 2
p =-2u ,q =u +v
0 0 0 0 0
此外,如果知道方程(27)有二个绝对值为很小的近似根,且a ≠0
n-2
则可删去多项式P(x)中次数大于2的一切项而得初始近似二次三项式因子
a a
2 n-1 n
x + x+
a a
n-2 n-2
例.用林氏法求方程
6 5 4 3 2
P(x)≡x -6x +16x -28x +45x -34.6x+22.4=0
的两个根,按五位小数进行计算,已给p =-1,q =-1。
0 0
按表36计算p 与q 而得表37.
k k
表37
k 1 a =1
0 a =6
1 a =16
2 a =-28
3 a =45
4 a =-34.6
5 a =22.4
6 (k)
b
n-1
(k)
b
n-2 (k)
b
P =P + n-1
K+1 k (k)
b
n-2
a
q = n
k (k)
b
n-2
0 -p =1
0 1 -5 10 -13 22 0.01818 -0.98182 1.01818
-q =-1
0 -1 5 -10 13
1 5
10
-13 22 0.4
1 -p=0.98182
1 0.98182 -4.92695 9.87207 -12.78184 21.58088 0.01074 -0.97108 1.01909
-q=-1.01818
1 -1.01818 5.10941 -10.23767 13.25520
1 -5.01818 10.05487 -13.01852 21.98049 0.23608
2 0.97108 0.97108 -4.88348 9.80522 -12.69188 21.38137 0.00457 -0.96651 1.01734
-1.01909 -1.01909 5.12492 -10.28999 13.31936
1 -5.02892 10.09743 -13.06986 22.01813 0.10073
3 0.96651 0.96651 -4.86492 9.77890 -12.66160 21.30698 0.00156 -0.96495 1.01609
-1.01734 -1.01734 5.12077 -10.29318 13.32749
1 -5.03349 10.11774 -13.10033 22.04522 0.03442
4 0.96495 0.96495 -4.85857 9.77045 -12.65386 21.28475 0.00042 -0.96458 1.01551
-1.01609 -1.01609 5.11606 -10.28826 13.32449
1 -5.03505 10.12534 -13.11349 22.05788 0.00924
5 0.96453 0.96453 -4.85686 9.76840 -12.65273 21.28000 0.00006 -0.96447 10.1529
-1.01551 -1.01551 5.11537 -10.28471 13.32149
1 -5.03547 10.12763 -13.11803 22.06256 0.00149
6 0.96447 0.96447 -4.85662 9.76824 -12.65311 21.28001 -0.00001 -0.96448 1.01523
-1.01529 -1.04529 5.11252 -10.28295 13.31983
1 -5.03553 10.12809 -13.11924 22.06394 -0.00016
7 0.96448 0.96448 -4.85666 9.76836 -12.65343 21.28049 -0.00001 -0.96449 1.01522
-1.01523 -1.01523 5.11221 -10.28236 13.31924
1 -2.03552 10.12811 -13.11943 22.06421 -0.00027
8 0.96449 0.96449 -4.85670 9.76843 -12.65355 21.28072 -0.00001 -0.96450 1.01522
-1.01522 -1.01522 5.11215 -10.28223 13.31910
1 -5.03551 10.12808 -13.11942 22.06422 -0.00018
9 0.96450 0.96450 -4.85674 9.76849 -12.65363 21.28090 0 -0.96450 1.01522
-1.01522 -1.01522 5.11214 -10.28219 13.31905
1 -5.03550 10.12804 -13.11937 22.06418 -0.00005
由表37知p =-0.96450,q =1.01522,因此P(x)有近似二次因子
0 0
2
x -0.96450x+1.01522
解方程
2
x -0.96450x+1.01522=0
得
2
-b± b -4ac
x =
1,2 2a
2
0.96450± 0.96450 -4*1.01522
x =
1,2 2
x =0.48225±i√0.78265
1,2
这也就是原方程的两个根。[注]1.这方法的程序收敛很慢,有时甚至计算二、三十步,并且初始近似不容易取,有时初始近似甚至取得与真值很接近,程序也可能发散。注意:关于判断此程序收敛的问题,直到目前还未解决。
2.计算中若有一个数据出错,往往对结果影响很大。通常计算几部以后可以看出规律,如果发现某一数据突然变换很大,那么不是计算错误就是程序不收敛。
3.如果是四次方程就可同时求出四个近似根。
程序:
PROGRAM BEGIN 程序开始
6 5 4 3 2
JISUAN1# FANGCHENG P(x)≡x -6x +16x -28x +45x -34.6x+22.4=0
1#计算,计算六次方程式的虚根
LSEJS LIUCI FANGCHENG E 选择林士鄂法计算六次方程式电路
MAKEA A=1,B=-6,C=16,D=-28,E=45,F=-34.6,G=22.4,
键盘输出六次方程式电路的参数A=1,B=-6,C=16,D=-28,E=45,F=34,G=22.4
GET P,Q 把计算电路最后得到的P,Q两个参数存储到P寄存器,Q寄存器
RUN LSEJS 与门导通,接通林士鄂法六次方程式计算电路,进行计算
DEPLAY ON 液晶显示器显示计算得到的P,Q,方程式的虚根X1,X2等值
P,Q,X1,X2
DEPLAY OFF
OUTPUT JISUAN1# 5#IO 将计算中的所有寄存器的数据输出到计算机5#端口
PROGRAM END 程序结束,与门截止,电路关闭
计算上面方程根的罗巴切夫斯基方法见上面的表29。
用数字电路加法器,乘法器,除法器,各种数值表示上面表29的计算公式,
第八部分 计算一元三次方程式的卡丹公式计算电路
推导过程可参见А.Г.УРОШ库洛什著高等代数教程1953年版,
41.三次与四次方程,
说明,计算一元三次立方根的卡尔丹公式如下:
3 2
y +ay +by+c=0 (1)
设y=x+h,得
3 2
(x+h) +a(x+h) +b(x+h)+c=0
3 2 2 3
x +(3h+a)x +(3h +2ah+b)x+h +bh+c=0
上面方程可转化为,
3
x +px+q=0 (3)
其中, y=x-a/3, (2)
h=-a/3,
2 2
p=3h +b+2ah=b-a /3,
3 3
q=h +bh+c=-a /27-ab/3+c,
只要求得方程(3)的根,那么我们根据(2)就可以得到方程(1)的根, 根据基本定理方程(3)有三个复数根,设x0是其中一个, 我们引入辅组未知量u来讨论多项式,
2
f(u)=u -x0u-p/3,
它的系数为复数,故有两个复数根α和β。而且由韦达公式,得,
α+β=x0 (4)
αβ=-p/3 (5)
以根x0的表达式(4)代(3)中,我们得出:
3
(α+β) +p(α+β)+q=0,
或,
3 3
α +β +(3αβ+p)(α+β)+q=0,
但由(5)得3αβ+p,故有,
3 3
α +β =-q (6)
另一方面,由(5)推得,
3 3 3
α β =-p /27 (7)
3 3
等式(6)与(7)证明了,数α 和β 是系数为复数的二次方程,
3
2 p
z +qz- =0 (8)
27
的根,
解方程(8),我们得到:
2 3
q q p
z =- ± +
2 4 27
3
2 3
q q p
α= - ± +
2 4 27
3
2 3
q q p
β= - ± + (9)
2 4 27
注意:因α和β在等式(6)和(7)中,同时在x0的表达式(4)中,都是对称的,
3 3
故对方程的根(S)的根,以何者为α 何者为β 是没有什么分别的。这就是说α,β可以相互交换位置,得到的计算结果不变.
即,
3
2 3
q q p
β= - ± +
2 4 27
3
2 3
q q p
α= - ± + (9)
2 4 27
或,
3
2 3
q q p
α= - ± +
2 4 27
3
2 3
q q p
β= - ± + (9)
2 4 27
两者的计算结果是相同的, 我们得到次之卡尔丹公式,把方程(3)的根经其系数用平方根与立方根来表出:
3 3
2 3 2 3
q q p q q p
x0=α+β= + + + - + +
2 4 27 2 4 27
因立方根在复数域中有三个值,所以(9)式给予α三个值与β三个值。
注意:ε是1的立方根,即
3
ε =1,
因为1开立方在复数平面内有3个根。分别是
ε =1, ε =-1/2+i√3/2, ε =-1/2+i√3/2,
0 1 2
程序:
PROGRAM BEGIN 程序开始
3 2
JISUAN1# FANGCHENG y +ay +by+c=0
计算1#,计算一元三次方程式的根
KDJS SANCI FANGCHENG D 选择卡丹公式计算三次方程式电路
MAKEA A=a,B=b,C=c, 用键盘输入一元三次方程式的参数A=a,B=b,C=c,
GET X0,X1,X2, 将计算得到的三个根放在X0,X2,X3寄存器里面
DISPLAY ON 液晶显示器显示计算得到的根X0,X1,X2
X0,X1,X2
DISPLAY OFF
OUTPUT X0,X1,X2 4#IO 将计算得到的根X0,X1,X2输出到计算机4#端口
PROGRAM END 程序结束,与门截止,电路关闭
第九部分 根的判别计算电路
下面的资料可参见《计算方法讲义》,中国科学院计算技术研究所编,科学出版社1958年出版。
1.根的位置
在讲述求根的近似方法之前,先复习一下高中课程中讲过的关于根分布在怎样的界限内的知识,对我们今后讨论求方程式的根的近似方法是有用处的。先叙述两个求方程式正根上界的方法(证明参阅[1]或[2])。
1)设实系数方程式
n n-1
f(x)=a x +a x +...+a =0 (1)
0 1 n
的最高次项的系数a 是正的(否则,以-1相乘两端)k≥1是它的第一个负系数的下标,
0
以及B为所有负系数的绝对值的最大值,那么
k
B
R=1+ (2)
a
0
是方程式(1)的正根上界。
2)设(1)的最高次项的系数a >0,
0
n
如果x=a时方程本身及其各次导数f`(x),f``(x),...,f (x)都取正值,那么a为(1)的正根上界。
例.求方程
4 2
f(x)=x -5x +6x-8=0
的正根上界.
方法(1),此处k=2和B=8,由(2)得到它的正根上界大致为4.
k 2
B 8
R=1+ =1+ =3.8284
a 1
0
方法(2),它的各次导数为:
3
f`(x)=4x -10x+6
2
f``(x)=12x -10
f```(x)=24x
(Ⅳ)
f (x)=24
当x=2时,它们皆为正,因此方程正根的上界为2. 由例可见,方法(2)比方法(1)准确一些。现在来讲实根定位的斯多姆(Sturm)方法。
设f(x)=0是实系数的方程式。假定f(x)不含重因子,即f(x)和f`(x)彼此互质。使用辗转相除法于f(x)和f`(x)后,我们有函数列:
f(x)=g(x)f`(x)-f (x),
1
f`(x)=g (x)f (x)-f (x), } (3)
1 1 2
……
f (x)=g (x)f (x)-f (x),
m-2 m-1 m-1 m
式中f (x)表示方程f(x)和导数f`(x)的最高因式。
m
(3)具有下列性质,并称它为f(x)的斯多姆函数列。
a)任何两个相邻的函数没有公共根。
b)若α是f (x)的实根,则f (x)的相邻函数f (x)和f (x)在x=α处不同号。
k k k-1 k-1
c)若x增加时,经过函数列中某一函数(f(x)和f (x)除外)的实根,
m
则函数列(3)变号不受影响。
d)当x经过f(x)的实根时,则f(x)和f`(x)之间的变号减少一个。这样一来,我们有实根定位的斯多姆方法:
设a和b不是f(x)的根。f(x)在区间[a,b]内实根的个数等于x由a变到b时f(x)的斯多姆函数列减少的变号数。
事实上,若x增加时经过斯多姆函数列(f(x)和f (x)除外)某函数的实根,
m
由性质c)斯多姆函数列的变号数保持不变。若x经过f(x)的实根,由性质d)f(x)和f`(x)之间的变号数减少一个。从而整个斯多姆数列的变号数减少一个。因此,当x从a增至b时,变号数减少的数目等于区间[a,b]中所含f(x)的实根的个数。
例.试求方程式
5 4 3 2
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.97=0
的实根个数。作出f(x)的斯多姆函数列:
5 4 3 2
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.97
4 3 2
f`(x)=25x -57.28x +13.59x -30.78x-9.86
3 2
f (x)=4.750x +7.677x +11.414x-22.84
1
2
f (x)=-111.50x -324.17x+479.58
2
f (x)=-49.75x+49.30
3
f (x)=-48.95
4
求出函数列在x=+∞和x=-∞的变号数:
f(x) f`(x) f (x)
1 f (x)
2 f (x)
3 f (x)
4 变号数目
-∞ - + - - + - 4
}减少3
1
+∞ + + + - - -
求函数列在x=+∞和x=-∞的变号数的过程如下:
x=+∞时,f(x)计算过程如下所示
5 4 3 2 5 5
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.975=5(+∞) =5(+1) =+∞
4 3 2 4 4
f`(x)=25x -57.28x +13.59x -30.78x-9.86=25(+∞) =25(+1) =+∞
3 3 3 3
f (x)=4.750x +7.677x +11.414x-22.84=4.750(+∞) =4.750(+1) =+∞
1
2 2 2
f (x)=-111.50x -324.17x+479.58=-111.50(+∞) =-111.50(+1) =-∞
2
f (x)=-49.75x+49.30=-49.75(+∞)=-∞
3
f (x)=-48.95
4
x=-∞时,f(x)计算过程如下所示
5 4 3 2 5 5
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.975=5(-∞) =5(-1) =-∞
4 3 2 4 4
f`(x)=25x -57.28x +13.59x -30.78x-9.86=25(-∞) =25(-1) =+∞
3 2 3 3
f (x)=4.750x +7.677x +11.414x-22.84=4.750(-∞) =4.750(-1) =-∞
1
2 2 2
f (x)=-111.50x -324.17x+479.58=-111.50(-∞) =-111.50(-1) =-∞
2
f (x)=-49.75x+49.30=-49.75(-∞)=-49.75(-1)=+∞
3
f (x)=-48.95
4
由此可见,f(x)=0有三个实根在区间[-∞,+∞]内。
用方法2求实根,f(x)的各次导数为
4 3 2
f`(x)=25x -57.28x +13.59x -30.78x-9.86
3 2
f (x)=4.750x +7.677x +11.414x-22.84
1
2
f (x)=-111.50x -324.17x+479.58
2
f (x)=-49.75x+49.30
3
当x=3时,它们皆为正,因此方程正根的上界为3.
用求实根上界的第二方法,不难求出它的实根上界等于3,应用斯多姆方法得:
f(x) f`(x) f (x)
1 f (x)
2 f (x)
3 f (x)
4 变号数目
-1 - + - + + - 4
3 }减少1
2 }减少1
2
1 }减少1
0 + - - + + -
1 - - + + - -
2 - - + - - -
3 + + + - - -
由此推出,f(x)=0的三个实根位置是:-1≤x≤0,0≤x≤1,2≤x≤3, 知道实根位于哪个区间后,就能用古典的隔离法求出根的近似值。
设已知f(x)有一实根在某一区间上,我们平分该区间,得两个区间,其中必有一区间有f(x)的根。再分这个新区间,又得两个区间,其中必有一个有f(x)的根。再继续上面的作法,我们就得到一系列分点a ,a ,...,a (如图5.1),
1 2 n
这些点是逼近于方程式f(x)=0的根α的,这就是根的隔离法。
程序:
PROGRAM BEGIN 程序开始,与门导通,输入磁带程序编码
4 2
JISUAN GSX x -5x +6x-8=0 计算四次方程式的根的上限值
GSXJS SICI FANGCHENG A
与门导通接通计算四次方程式的根的上限值的第一种电路
SET K=2,B=3,a0=1 键盘输入计算电路的参数K=2,B=3,a0=1
RUN SET TO R 将键盘输入的参数代入计算电路进行计算
DISPLAY ON 液晶显示器显示根的上限值R
PROGRAM END 程序结束,与门截止,电路关闭
第一种方法, 用上面的程序计算四次方程实根的上限值
k
B
R=1+
a
0
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
程序:
PROGRAM BEGIN 程序开始,与门导通,输入磁带程序编码
4 2
JISUAN GSX x -5x +6x-8=0 计算四次方程式的根的上限值
GSXJS SICI FANGCHENG C
与门导通接通计算四次方程式的根的上限值的第二种电路
SETA A1=4,B1=-10,C1=6 键盘输入计算电路的参数A1=4,B1=-10,C1=6
SETB A2=12,B2=-10, 键盘输入计算电路的参数A2=12,B2=-10,
SETC A3=24 键盘输入计算电路的参数A3=24
GET M1=1,M1=2,M3=3,M4=4 键盘输入计算电路的根的数值M1=1,M1=2,M3=3,M4=4
GET M1=1,M1=2,M3=3,M4=4 将键盘输入的参数代入计算电路进行计算
DISPLAY ON 液晶显示器显示根的上限值M
M 程序结束,与门截止,电路关闭
DISPLAY OFF
PROGRAM END
计算得到的数据进行平方计算,如果是负数,平方后得到正数,开方后得到正数,加上原来的负数,输出0.
计算得到的数据进行平方计算,如果是正数,平方后得到正数,开方后得到正数,加上原来的正数,输出正数。
如果加法器输出0,或门输出1,与门输出1,状态寄存器A保存1,证明方程计算得到的是负数,反之,则是正数。
当按键输入2时,三个方程计算结果都是正。非门A,B,C输出1,与门A,与门B输出1,此时与门C将前面按键输入的2输出到数据寄存器M中,此时M=2。表示方程的正根上限为2。
程序:
PROGRAM BEGIN 程序开始,与门导通,输入磁带程序编码
5 4 3 2
JISUAN GSX f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.975
计算五次方程式的根的上限值
GSXJS WUCI FANGCHENG B
与门导通接通计算五次方程式的根的上限值的斯多姆法电路
MAKEA A=23.975,B=-9.86,C=-15.39,D=4.53,E=-14.32,F=5
键盘输入计算电路的参数 A=23.975,B=-9.86,C=-15.39,D=4.53,E=-14.32,F=5
MAKEB H=1,K=-1 键盘输入计算电路的参数 H=1,K=-1,H代表+∞,K代表-∞
RUN SET TO G 将键盘输入的参数代入计算电路进行计算
DISPLAY ON 液晶显示器显示根的上限值G
G
DISPLAY OFF
PROGRAM END 程序结束,与门截止,电路关闭
用上面的程序描述的斯多姆法计算五次次方程实根的个数。
用古典的隔离法计算方程实根
5 4 3 2
2x -3x +4x -5x -3x=0
解:用求实根上界的第二方法,不难求出它的实根上界等于3,应用斯多姆方法得:
用求实根上界的第二方法,不难求出它的实根上界等于3,应用斯多姆方法得:
f(x) f`(x) f (x)
1 f (x)
2 f (x)
3 f (x)
4 变号数目
-1 - + - + + - 4
3 }减少1
2 }减少1
2
1 }减少1
0 + - - + + -
1 - - + + - -
2 - - + - - -
3 + + + - - -
由此推出,f(x)=0的一个实根位置是:1≤x≤2,显然,在1≤x≤2时,
5 4 3 2
f(x)=2x -3x +4x -5x -3x
取x=1,得
5 4 3 2
f(x)=2(1) -3(1) +4(1) -5(1) -3(1) =2-3+4-5-3=-5<0
取x=2,得
5 4 3 2
f(x)=2(2) -3(2) +4(2) -5(2) -3(2) =64-48+32-20-6=22>0
所以,取x=1.5,得
5 4 3 2
f(x)=2(1.5) -3(1.5) +4(1.5) -5(1.5) -3(1.5) =15.1875-15.1875+13.5-11.25-4.5=-2.25<0
所以,取x=1.75,得
5 4 3 2
f(x)=2(1.75) -3(1.75) +4(1.75) -5(1.75) -3(1.75)
=32.8261-28.13671875+21.4275-15.3125-5.25=5.5543>0
所以,取x=1.6,得
5 4 3 2
f(x)=2(1.6) -3(1.6) +4(1.6) -5(1.6) -3(1.6)
=20.97152-19.6608+16.384-12.8-4.8=0.89472>0
所以,取x=1.55,得
5 4 3 2
f(x)=2(1.55) -3(1.55) +4(1.55) -5(1.55) -3(1.55)
=17.893219375-17.31601+14.8955-12.0125-4.65=-1.89791<0
所以,取x=1.57,得
5 4 3 2
f(x)=2(1.57) -3(1.57) +4(1.57) -5(1.57) -3(1.57)
=19.0777-18.22719+15.4795-12.3245-4.71=-0.69449<0
所以,取x=1.58,得
5 4 3 2
f(x)=2(1.58) -3(1.58) +4(1.58) -5(1.58) -3(1.58)
=19.69316-18.696+15.7772-12.482-0.474=4.766>0
所以,取x=1.575,得
5 4 3 2
f(x)=2(1.575) -3(1.575) +4(1.575) -5(1.575) -3(1.575)
=19.383-18.4605+15.6279375-12.403125-4.725=0.5776875>0
所以,取x=1.5725,得
5 4 3 2
f(x)=2(1.5725) -3(1.5725) +4(1.5725) -5(1.5725) -3(1.5725)
=19.230176-18.34357+15.55363-12.36378-4.7175=-0.64046<0
所以x=1.5725就是方程的实根。
程序:
PROGRAM BEGIN 程序开始,与门导通,输入磁带程序编码
5 4 3 2
JISUAN GDGL 2x -3x +4x -5x -3x=0
执行五次方程的古典隔离法计算法电路
GDGLJS WUCI FANGCHENG A
MAKEA A=2,B=-3,C=4,D=-5,E=-3,F=0 将方程式的系数用A,B,CD存储器存储起来
TAKEA X=1.5 可以将x=1.5代入函数f(x),计算函数值
TAKEB QJ=0.25 每次计算增加的区间长度为0.25
RUN GDGLJS 执行古典隔离法计算法电路
DISPLAY ON 液晶显示器显示计算得到的根X
X
DISPLAY OFF
SAVE JISUAN1# 将计算结果保存到JISUAN寄存器
PROGRAM END 程序结束,与门截止,电路关闭
计算方程根的电路
5 4 3 2
2x -3x +4x -5x -3x=0
用数字电路加法器,乘法器,除法器,各种数值表示上面的函数,
古典隔离法计算电路
第十部分 根式的计算
399.根式的计算
根式可最简单地借助与对数表来计算。可是,如果一些个别的根式需要很大的精确度,则更适合的是采用二项式级数[394(22)]。模拟计算机幂函数计算公式
m m(m-1) 2 m(m-1)...(m-n+1) n
(1+x) =1+mx+ x +…+ x +… (22)
1*2 1*2*...n
同时用常数a替换函数自变量x,自变量x替换m,得到指数计算公式
模拟计算机指数计算公式
x x(x-1) 2 x(x-1)...(x-n+1) n
(1+a) =1+ax+ a +…+ x +… (22a)
1*2 1*2*...n
k
假定需要计算 A ,并已知这根式的近似值a(大于或小于真值),但要求改善它,如果,比方说
A
=1+x
k
a
其中|x|是不大的一个真分数,那么可以用下面的方法把根式变形:
k
k A 1/k
A =a* =a*(1+x)
k
a
并可利用当m=1/k时的二项式级数。有时从等式
k
a
=1+x
A
出发是更合适的,如果|x`|又是一个不大的真分数,并且采用另一变形:
k a 1/k
A = =a*(1+x`)
k
k
a
A
此后取m=-1/k,应用二项式级数。
最为例子,从√2的近似值1.4出发,计算√2到很大的精确度。
√2的近似值1.4可以通过下面的方法得到
1/2 (1/2)*(1/2-1) m(m-1)...(m-n+1) n
(1+1) =1+1/2+ +…+ x +…≈1.5-0.08333≈1.4166
1*2 1*2*...n
为此目的,以上述两种范式中的一种把根式变形:
2 0.04 1 1/2
√2=1.4* =4* 1+ =.4*(1+ )
1.96 1.96 49
或
1.4 1.4 1 -1/2
2 = = =1.4*(1- )
1.96 0.04 50
1-
2 2
为使计算容易起见,自然宁愿采用第二种方法。
1 1 1 1 1 1 1 1 1 1
√2=1.4*(1+ * + + + + +...)
2 3 4 5
2 50 8 50 16 50 128 50 256 50
限于已经写出的这些项,它们都可以表示成有穷十进位小数:
5 1
1+...+ =1.0101525
3
16 50
35 1
=0.00000004375
4
128 50
63 1
=0.0000000007875
5
256 50
1.0101525445375*1.4=1.41421356235250
因为在1/50的幂次下的系数递减,所以校正数可以像通常那样加以估计:
231 1 1 1.4*231 2.1
△<1.4* *(1+ + +...)= <
6 2 5 11
1021*50 50 50 1024*50 *49 10
因此1.414213562352<√2<1.414213562373, √2=1.4142135623...;
小数后所有十个数字都是正确的, 利用变形
119 -1/2
√2=1.41(1- )
20000
容易得到非常多的数字,现在再举出一些类似的变形的例子, (借助于二项式级数的计算留给读者去作)
71 -1/2
√3=1.73*(1- )
30000
11 1 1/2
√11= (1- )
3 100
3 5 3 1/2
√2= (1- )
4 125
3 10 29 1/2
√3= (1- )
7 1000
计算N次方的电路
m m m(m-1) 2 m(m-1)...(m-n+1) n
y =(1+x) =1+mx+ x +…+ x +…
1*2 1*2*...n
用数字电路加法器,乘法器,除法器表示上面的等式就会得到计算变量y的根式的数字电路
第十一部分 高次方程的数值解
下面的资料可参见《计算方法讲义》,中国科学院计算技术研究所编,科学出版社1958年出版
第五章 高次代数方程的数值解
力学、物理和其它科学技术中的各种问题常常归结到求方程式的根,而且这些方程式往往都是高次的。我们知道,不存在一个方法能求出高于四次方程的根的准确解。另一方面,在实际应用中只能获得具有预先给定的准确度的近似值就足够了。本章之目的在于讲述适用于实际计算的求方程式的根的各种近似方法。
1.根的位置
在讲述求根的近似方法之前,先复习一下高中课程中讲过的关于根分布在怎样的界限内的知识,对我们今后讨论求方程式的根的近似方法是有用处的。先叙述两个求方程式正根上界的方法(证明参阅[1]或[2])。
1)设实系数方程式
n n-1
f(x)=a x +a x +...+a =0 (1)
0 1 n
的最高次项的系数a 是正的(否则,以-1相乘两端)k≥1是它的第一个负系数的下标,
0
以及B为所有负系数的绝对值的最大值,那么
k
B
R=1+ (2)
a
0
是方程式(1)的正根上界。
2)设(1)的最高次项的系数a >0,
0
n
如果x=a时方程本身及其各次导数f`(x),f``(x),...,f (x)都取正值,那么a为(1)的正根上界。
例.求方程
4 2
f(x)=x -5x +6x-8=0
的正根上界.
方法(1),此处k=2和B=8,由(2)得到它的正根上界大致为4.
k 2
B 8
R=1+ =1+ =3.8284
a 1
0
方法(2),它的各次导数为:
3
f`(x)=4x -10x+6
2
f``(x)=12x -10
f```(x)=24x
(Ⅳ)
f (x)=24
当x=2时,它们皆为正,因此方程正根的上界为2. 由例可见,方法(2)比方法(1)准确一些。现在来讲实根定位的斯多姆(Sturm)方法。
设f(x)=0是实系数的方程式。假定f(x)不含重因子,即f(x)和f`(x)彼此互质。使用辗转相除法于f(x)和f`(x)后,我们有函数列:
f(x)=g(x)f`(x)-f (x),
1
f`(x)=g (x)f (x)-f (x), } (3)
1 1 2
……
f (x)=g (x)f (x)-f (x),
m-2 m-1 m-1 m
式中f (x)表示方程f(x)和导数f`(x)的最高因式。
m
(3)具有下列性质,并称它为f(x)的斯多姆函数列。
a)任何两个相邻的函数没有公共根。
b)若α是f (x)的实根,则f (x)的相邻函数f (x)和f (x)在x=α处不同号。
k k k-1 k-1
c)若x增加时,经过函数列中某一函数(f(x)和f (x)除外)的实根,
m
则函数列(3)变号不受影响。
d)当x经过f(x)的实根时,则f(x)和f`(x)之间的变号减少一个。这样一来,我们有实根定位的斯多姆方法:
设a和b不是f(x)的根。f(x)在区间[a,b]内实根的个数等于x由a变到b时f(x)的斯多姆函数列减少的变号数。
事实上,若x增加时经过斯多姆函数列(f(x)和f (x)除外)某函数的实根,
m
由性质c)斯多姆函数列的变号数保持不变。若x经过f(x)的实根,由性质d)f(x)和f`(x)之间的变号数减少一个。从而整个斯多姆数列的变号数减少一个。因此,当x从a增至b时,变号数减少的数目等于区间[a,b]中所含f(x)的实根的个数。
例.试求方程式
5 4 3 2
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.97=0
的实根个数。作出f(x)的斯多姆函数列:
5 4 3 2
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.97
4 3 2
f`(x)=25x -57.28x +13.59x -30.78x-9.86
3 2
f (x)=4.750x +7.677x +11.414x-22.84
1
2
f (x)=-111.50x -324.17x+479.58
2
f (x)=-49.75x+49.30
3
f (x)=-48.95
4
求出函数列在x=+∞和x=-∞的变号数:
f(x) f`(x) f (x)
1 f (x)
2 f (x)
3 f (x)
4 变号数目
-∞ - + - - + - 4
}减少3
1
+∞ + + + - - -
求函数列在x=+∞和x=-∞的变号数的过程如下:
x=+∞时,f(x)计算过程如下所示
5 4 3 2 5 5
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.975=5(+∞) =5(+1) =+∞
4 3 2 4 4
f`(x)=25x -57.28x +13.59x -30.78x-9.86=25(+∞) =25(+1) =+∞
3 3 3 3
f (x)=4.750x +7.677x +11.414x-22.84=4.750(+∞) =4.750(+1) =+∞
1
2 2 2
f (x)=-111.50x -324.17x+479.58=-111.50(+∞) =-111.50(+1) =-∞
2
f (x)=-49.75x+49.30=-49.75(+∞)=-∞
3
f (x)=-48.95
4
x=-∞时,f(x)计算过程如下所示
5 4 3 2 5 5
f(x)=5x -14.32x +4.53x -15.39x -9.86x+23.975=5(-∞) =5(-1) =-∞
4 3 2 4 4
f`(x)=25x -57.28x +13.59x -30.78x-9.86=25(-∞) =25(-1) =+∞
3 2 3 3
f (x)=4.750x +7.677x +11.414x-22.84=4.750(-∞) =4.750(-1) =-∞
1
2 2 2
f (x)=-111.50x -324.17x+479.58=-111.50(-∞) =-111.50(-1) =-∞
2
f (x)=-49.75x+49.30=-49.75(-∞)=-49.75(-1)=+∞
3
f (x)=-48.95
4
由此可见,f(x)=0有三个实根在区间[-∞,+∞]内。
用方法2求实根,f(x)的各次导数为
4 3 2
f`(x)=25x -57.28x +13.59x -30.78x-9.86
3 2
f (x)=4.750x +7.677x +11.414x-22.84
1
2
f (x)=-111.50x -324.17x+479.58
2
f (x)=-49.75x+49.30
3
当x=3时,它们皆为正,因此方程正根的上界为3.
用求实根上界的第二方法,不难求出它的实根上界等于3,应用斯多姆方法得:
f(x) f`(x) f (x)
1 f (x)
2 f (x)
3 f (x)
4 变号数目
-1 - + - + + - 4
3 }减少1
2 }减少1
2
1 }减少1
0 + - - + + -
1 - - + + - -
2 - - + - - -
3 + + + - - -
由此推出,f(x)=0的三个实根位置是:-1≤x≤0,0≤x≤1,2≤x≤3, 知道实根位于哪个区间后,就能用古典的隔离法求出根的近似值。
设已知f(x)有一实根在某一区间上,我们平分该区间,得两个区间,其中必有一区间有f(x)的根。再分这个新区间,又得两个区间,其中必有一个有f(x)的根。再继续上面的作法,我们就得到一系列分点a ,a ,...,a (如图5.1),
1 2 n
这些点是逼近于方程式f(x)=0的根α的,这就是根的隔离法。
2.迭代法
1.普通的迭代法
将已知方程f(x)=0改写为
x=φ(x) (4)
应用前节所讲的方法,能求出根的粗糙近似值x ,
0
我们把x 代入(4)式的右端,就得到较好的近似值
0
x =φ(x )
1 0
以后一些近似值是
x =φ(x ) (i=1,2,...)
i+1 i
先来看一看它的几何意义。从(4)的写法,看出求方程f(x)=0的根归结为找直线y=x和曲线y=φ(x)的交点B的横坐标α。
设初始近似x 是曲线y=φ(x)上点A 的横坐标,
0 0
计算出φ(x )就确定了A 的横坐标。
0 0
同时水平直线y=φ(x )和直线y=x相交于点A` ,其横坐标等于x =φ(x ),
0 0 1 0
计算出φ(x )后就得到垂线x=x 和曲线y=φ(x)的交点A [x ,φ(x )],
1 1 1 1 1
如此继续下去,得点列A ,A ,A ...(如图5.2).
0 1 2
也就是说迭代过程未必收敛(图5.2a和5.2b表示收敛;图5.2c和5.2d表示发散)。于是我们要证明,如果在根的附近│φ`(x)│<1,则迭代过程是收敛的。
事实上,从(4)减去迭代公式,我们有
x-x =φ(x)-φ(x )
I i-1
由中值定理
φ(x)-φ(x )=(x-x )φ(ξ ) (x ≤ξ ≤x),
i-1 i-1 i-1
于是
x-x =(x-x )φ`(ξ )
i i-1 i-1
由此等式置i=n,并记M=max│φ`(ξ )│,就得
i
n
│x-x │=│(x-x )φ`(ξ )φ`(ξ )...φ`(ξ )│≤│x-x │M
n 0 0 1 n-1 0
由假定M<1,所以当n→∞时,│x-x │→0,这就证明了我们的断言。
n
例.求方程2x-lgx=7的实根
把原方程改写成x=(lgx+7)/2,
从曲线y =2x-7和y =lgx之交点得其粗糙的近似值3.8。
1 2
取这个值作为初始近似。于是按迭代公式得
x =(lg3.8+7)/2=3.79
1
x =(lg3.79+7)/2=3.7893
2
x =(lg3.7893+7)/2=3.7892
3
第二和第三近似完全一致。这可以作为方程的具有五位准确度的近似根。
2.线性插入法
该方法是用曲线的弦与横坐标的交点x 来逼近曲线与横坐标轴的交点a,
i
即方程式的根(图5.3)
弦A A的方程为
0
y-f(a) x-a
=
f(x )-f(a) x -a
0 0
令y=0,就得x 的值
1
(a-x )f(x ) (x -a)f(a)
0 0 0
x =x - =a-
1 0 f(a)-f(x ) f(a)-f(x )
0 0
以后各点x 的值为
i
(a-x )
i-1
x =x - (5)
I i-1 f(a)-f(x )
i-1
就是求近似根的线性插入公式。
3.牛顿公式
若将上述的弦用切线来代替(如图5.4),于是从(5)容易推出有名的牛顿公式
(a-x )
i-1
x =x - (6)
I i-1 f`(x )
i-1
另一方面,设f(x)=0的根在[a,b]内,取x 为根的近似值,h是这样的值,使
0
f(x +h)=0
0
2
按泰勒级数展开该函数,并把h 项以上略去,得
f(x )+hf`(x )=0
0 0
或
f(x )
0
h=-
f`(x )
0
改正过的根值为
f(x )
0
x =x +h=x -
1 0 0 f`(x )
0
重复这种过程我们就有
f(x )
i-1
x = x -
i i-1 f`(x )
i-1
我们又得到牛顿公式。这种迭代公式可以看作是普通迭代的特殊情形。此处,
f(x )
φ(x)=x-
f`(x )
因此,如果在根的近旁f`(x)≠0,及
f(x)f``(x)
│φ`(x)│= <1
2
[f`(x)]
则牛顿公式收敛。
如果曲线y=f(x)在x=x 和x=α附近有凹点或弯曲,迭代过程可能不收敛于x=α(图5.5).
0
如果f`(x)和f``(x)在区间[x ,α]不变号,f(x )和f`(x )同号,
0 0 0
这是y=f(x)凹向x轴,并且迭代过程收敛于α,
而且每次近似都在区间[x ,α]内(图5-4)。
0
如果f(x )和f``(x )反号,迭代过程未必收敛(图5.5),
0 0
若第一近似x 在α的另一端,而f`(x)和f``(x)在区间[x ,α]内不变号,
1 1
迭代过程仍可收敛(图5.6)。必须指出,若x=a是f(x)=0的重根,则牛顿公式不能使用,因为这时在α的近旁f`(x)接近于零。在实际计算中,无论是手算或是编制程序为了计算牛顿公式中的f(x)和f`(x)采用洪钠方案是很方便的。
设x 是某一近似,a ,a ,a ,...,a 是f(x)的系数,那么洪钠方案的计算格式如下:
i 0 1 2 n
a a a …. a a a
0 1 2 n-1 n i
a x b x …. b x b x
0 i 1 i n-2 i n-1 i
a a +a x =b b …. b b =f(x )
0 1 0 i 1 2 n-1 n i
a x c x …. c x
0 i 1 i n-2 i
a b +a x =c c …. c =f(x )
0 1 0 i 1 2 n-1 i
在什么时候迭代过程可以终止了呢?在实际计算中,当两相邻的迭代之差的绝对值小于预先给定的准确度时,我们就认为最后这次迭代出的近似值就是所要求的值。
3 2
例.求f(x)=x -6.144x +11.432x-6.228=0的一个实根。
容易求出(用第一节的方法)在[3,4]中有一实根。
我们取x =3作为初始近似,第一近似计算如下:
0
1 -6.144 11.432 -6.288 3
3 -9.432 6
1 -3.144 2.000 -0.288=f(x ) 3
0
1 -0.432
-0.144 1.568=f`(x )
0
于是,
f(x )
0 0.288
x = x - =3+ =3.184
1 0 f`(x ) 1.568
0
第二近似计算如下:
1 -6.144 11.432 -6.288 3.184
3.184 -9.432 6.390
1 -2.960 2.007 0.102=f(x )
0
3.184 0.713
0.224 2.720=f`(x)
于是
f(x )
1 0.102
x = x - =3.184+ =3.147
2 1 f`(x ) 2.710
1
继续上述的计算过程,我们能计算出第三近似和第四近似都是3.144...。因此,3.144可以作为f(x)=0的具有四位有效数位的近似根。
§3.方程组的情形
我们研究二个变数的二个方程的情形。
φ (x,y)=0,
1 } (7)
φ (x,y)=0,
2
1.牛顿方法,设x ,y 是方程(7)的一对近似根,而h,k是它们的这样的矫正值,使
0 0
φ (x + h,y +k)=0,
1 0 0
}
φ (x + h,y +k)=0,
2 0 0
按二元函数的泰勒公式展开该式,并将其平方项忽略掉后,我们有
Әφ Әφ
1 1
φ (x ,y )+h ( ) +k( ) =0
1 0 0 Әx 0 Әy 0
Әφ Әφ
2 2
φ (x ,y )+h ( ) +k( ) =0
2 0 0 Әx 0 Әy 0
对h,k解这组方程,我们得到
△ △
1 2
h= ,k= (8)
D D
其中,
Әφ Әφ
1 1
( ) ( )
Әx 0 Әy 0
D=
Әφ Әφ
2 2
( ) ( )
Әx 0 Әy 0
Әφ
1
-φ (x ,y ) ( )
1 0 0 Әy 0
△ =
1 Әφ
2
-φ (x ,y ) ( )
2 0 0 Әy 0
Әφ
1
( ) -φ (x ,y )
Әx 0 1 0 0
△ =
2 Әφ
2
( ) -φ (x ,y )
Әx 0 2 0 0
矫正过的近似值是
△ △
1 2
x =x + , ,y =y +
1 0 D 1 0 D
重复这过程,就可以得到所要求的近似值。从矫正公式(8)中看到:若D=0,则牛顿公式不能用。我们就采用迭代公式。
2.迭代法,我们把原方程(7)改写成
x=F (x,y)
1
y=F (x,y)
2
如果x ,y 是方程(7)的一对根的近似值,
0 0
我们要求的各次近似用下列迭代公式来得到:
x =F (x ,y )
I 1 I-1 I-1
} (9)
y =F (x ,y )
I 2 I I-1
易证,如果在根的近旁不等式
ӘF ӘF
1 2
+ <1和
Әx Әx
ӘF ӘF
1 2
+ <1
Әy Әy
成立,则公式(9)收敛(参阅[4])
例.求方程组
2
φ (x,y)=x+3lgx-y =0
1
2
φ (x,y)=2x -xy-5x+1=0
2
的根,
1.牛顿法的使用,容易求出
Әφ
1 3M
=1+ ,其中M-0.43429
Әx x
Әφ
1
=-2y,
Әy
Әφ
2
=4x-y-5,
Әx
Әφ
2
=-x
Әy
我们取x =3.4,y =2.2作为初始近似,那么
0 0
φ (x ,y )=0.1545,
1 0 0
φ (x ,y )=-0.72,
2 0 0
Әφ Әφ
1 1
( ) =1.383,( ) =-4.4,
Әx 0 Әy 0
Әφ Әφ
2 2
( ) =6.4, ( ) =-3.4,
Әx 0 Әy 0
将这些值代入校正公式(8)就得h ,k
1 1
△ △
1 2
h= ,k=
D D
其中,
Әφ Әφ
1 1
( ) ( )
Әx 0 Әy 0 1.383 -4.4
D= = =23.4578
Әφ Әφ 6.4 -3.4
2 2
( ) ( )
Әx 0 Әy 0
Әφ
1
-φ (x ,y ) ( )
1 0 0 Әy 0 -0.1545 -4.4
△ = = =3.6933
1 Әφ 0.72 -3.4
2
-φ (x ,y ) ( )
2 0 0 Әy 0
Әφ
1
( ) -φ (x ,y )
Әx 0 1 0 0 1.383 -0.1545
△ = =
2 Әφ 6.4 0.72
2
( ) -φ (x ,y ) =1.98456
Әx 0 2 0 0
△
1 3.6933
h = = =0.157444
1 D 23.4578
△
2 1.98456
k = = =0.084601
1 D 23.4578
h =0.157,k =0.085,
1 1
从而我们有
x =3.4+0.157=3.557,y =2.285,
1 1
同样又可得
φ (x ,y )=-0.011,
1 1 1
φ (x ,y )=-0.3945,
2 1 1
Әφ Әφ
1 1
( ) =1.367,( ) =-4.57,
Әx 1 Әy 1
Әφ Әφ
2 2
( ) =6.943,( ) =-3.557,
Әx 1 Әy 1
再将这些值代入矫正公式(8)求得
h =-0.0685,k =-0.0229,
2 2
从而有
x =3.4885,y =2.2621,
2 2
重复这种过程,我们有
h =-0.0018,k =-0.000561,
3 3
所以第三近似是
x =3.4872,y =2.2615,
3 3
这些值小数点后四位都是正确的。
2.迭代公式的使用,我们将原方程改写成
x(y+5)-1
x=
2
y= x+3lgx
仍以x =3.4,y =2.2作为初始近似,
0 0
我们就可以逐次地算出下列各次近似:
3.4(2.2+5)-1
x = =3.426
1 2
y = 3.426+3lg3.426 =2.243
1
3.426(2.243+5)-1
x = =3.426
2 2
y = 3.451+3lg3.451 =2.2505
2
x =3.466,y =2.255,
3 3
x =3.475,y =2.258,
4 4
x =3.480,y =2.259,
5 5
x =3.483,y =2.260,
6 6
由此可见,迭代过程的收敛速度很慢。六次迭代以后只得到三位有效数字。而牛顿公式三次迭代后就得到了五位有效数字。
第十三部分 计算实习
下面内容可参看《计算实习》,初等部分,王德人等编,高等教育出版社1959年出版
§3.秦九韶除法[秦九韶程序]
现在一般称之为综合除法。该方法是由我国南宋时的数学家秦九韶发现的二项式定理推导出来。求代数方程式的根时计算最大的是计算函数值。综合除法就是求多项式在某一点值的有效方法。
设多项式
n n-1
P(x)=a x +a x +...+a +a (3)
0 1 n-1 n
其中a (k=0,1,2,...,n)为实数。设x 是实数,求P(x )。
k 0 0
用(x-x )除多项式(3)之后,则多项式P(x)可表示为下面形式:
0
n-1 n-2
P(x)=(S x +S x +...+S x+S )(x-x )+S (4)
0 1 n-2 n-1 0 0
显然P(x )=S ,由此可见,欲求值P(x ),只要求值S 即可。
0 0 0 n
为了计算S ,只要比较等式(4)两端x同次幂的系数,便得下面递推关系:
n
S =S x +a ,(k=1,2,...,n),S =a (5)
k k-1 0 k 0 0
求S 时,只要做n次乘法和n次加法。计算时用下面程序表:
n
表5
a a a …. a a
0 1 2 n-1 n
S x S x …. S x S x
0 0 1 0 n-2 0 n-1 0
S S S …. S S =P(x )
0 1 2 n-1 n 0
例设
4 3 2
P(x)=x -2x +3x +x-5
求x =1.32219时P(x )的值。计算表如下:
0 0
1 -2 3 1 -5
1.32219,-0.89619=-0.67781*1.32219, 2.78164=2.10381*1.32219,5.00005=3.78164*1.32219
1, -0.67781=-2+1.32219, 2.10381=3-0.89619, 3.78164=1+2.78164, 0.00005=-5+5.00005
因为,
P(x )=S
0 n
S =S x +a ,(k=1,2,...,n),S =a
k k-1 0 k 0 0
S =S x +a
4 3 0 4
S =S x +a
3 2 0 3
S =S x +a
2 1 0 2
S =S x +a
1 0 0 1
S =a
0 0
所以, P(1.32219)=S =0.00005。
4
在求多项式的根时往往要同时求几个点的值,此时我们可以采用下面表进行计算:
表6
x a a a …. a a
k 0 1 2 n-1 n
(0) (0) (0) (0)
S x S x S x S x
0 0 1 0 n-2 0 n-1 0
x
0 (0) (0) (0) (0) (0)
S S x S x S x S x
0 1 0 2 0 n-1 0 n 0
(1) (1) (1) (1)
S x S x S x S x
0 0 1 0 n-2 0 n-1 0
x
1 (1) (1) (1) (1) (1)
S S x S x S x S x
0 1 0 2 0 n-1 0 n 0
(2) (2) (2) (2)
S x S x S x S x
0 0 1 0 n-2 0 n-1 0
x
2 (2) (2) (2) (2) (2)
S S x S x S x S x
0 1 0 2 0 n-1 0 n 0
….. …………………
….. ……………..
表中第一行的a ,a ,a ,...,a ,a 是公共的。
0 1 2 n-1 n
如求P(x ),只要把x 的那一行遮掉即与求P(x )完全一样。
1 0
若x 为复数:
0
x =u +iv
0 0 0
其共轭复数为
x =u +iv
0 0 0
则
2
(x-x )(x- x )=x +px+q
0 0
2 2
其中p=-2u ,q=u +v 。
0 0 0
而多项式(3)可写为
n-2 n-2 2
P(x)=(b x +b x +...+b x+b )(x +px+q)+b (x+p)+b
0 1 n-3 n-2 n-1 n
显然,
P(x )=b (x +p)+b =b -u b +iv b
0 n-1 0 n n 0 n-1 0 n-1
与前面同样,用比较系数的办法可推得
b =a -pb -qb ,(k=0,1,2,...,n) (6)
k k k-1 k-2
其中令b =b =0。计算时用表7是比较方便的。
1 2
例,计算多项式
表7
a a a …… a a
0 1 2 n-1 n 多项式实部 多项式虚部
u
0 -p=2u
0 -pb -pb …… -pb -pb
0 1 n-2 n-1
v
0 2 2
-q=-(u +v )
0 0 -qb ……. –qb -qb
0 n-3 n-2
b b b …… b b
0 1 2 n-1 n b -u b
n 0 n-1 v b
0 n-1
4 3 2
P(x)=x -2x +3x +x-5
在x =0.89135+i1.21835的值。计算表如下:
0
表8
1 -2 3 …… 1 -5
多项式实部 多项式虚部
0.89135 1.78270
=2*0.89135 1.7827 -0.38738 0.59496 3.72613
-0.38738=1.78270*(-0.2173)
1.21835 -2.27888
2 2
=-(0.89135 +1.21835 ) -2.27888 0.49520 -0.76055
-2.27888=-2.27888*1
1 -0.2173 0.33374 2.09016 -2.03442
-0.2173=-2+1.78270*1, 0.33374=3+1.78270*(-0.2173)+(-2.27888)*1 -0.17136 2.54655
4 3 2
P(x)=x -2x +3x +x-5
因此, P(x )=-0.17136+i*2.54655
0
如果熟记了b 的·递推关系(6),那么在计算机上要直接算出数b ,
k k
而不必记录中间数据,此时采用下表较为合适:
表9
k u
k v
k p
k q
k a a …… a a
0 1 n-1 n (k) (k)
b -u b
n k n-1 (k)
v b
k n-1
0 b b …… b b
0 1 n-1 n (0) (0)
b -u b
n 0 n-1 (0)
v b
0 n-1
1 … …. ….. ….. …….. ….. …..
4.叠代法
叠代法既可用来求方程(1)的实根,又可用来求方程(1)的复根。为了应用此方法,须先把形如(1)的方程改写成下面形式:x=φ(x) (7)
这种变换的方法是很多的,例如,在方程(1)的两端同时加上一个x:
x=x+P(x)
设x 是方程(7)初始近似根,则可逐次求得一串数
0
x =φ(x ),x =φ(x ),...,x =φ(x ),,... (8)
1 0 2 1 n+1 n
如果序列{x }有极限,即
n
lim x =x*
n→∞ n
并且φ(x)连续,则x*就是方程(7)根。
在所要求的精确度内x 可取为方程(7)的近似根。
n
注意叠代程序(8)未必收敛于方程的根。但如果函数φ(x)在其根的某一适当的邻域内满足条件max│φ`(x)│≤q<1,
并且q不迫近于1,则迭代程序(8)收敛于方程的根。计算时必须根据φ(x)的特点列出计算程序表,例如,可参看例题。
首先选定初始近似x ,使φ`(x)在邻域内适合max│φ`(x)│≤q<1。
0
通常φ`(x)是连续的,只要│φ`(x )│很小,当│x-x │<δ时即可使│φ`(x)│≤q<1。
0 0
x 选定之后,就可按程序列表计算只要逐次叠代到出现x =x 时,
0 n+1 n
计算即可停止,则x 就为方程的近似根。
n
例,求方程
4 3 2
P(x)≡x +x -3x +12x-12=0
的最小正实根,按四位小数进行计算。首先,因P(0)<0,P(2)>0,故在(0,2)内必有方程的根。又因P(x)的微商
3 2
P`(x)=4x +3x +6(2-x)
在(0,2)内是正的,因此,方程在(0,2)内只有一个根,即在(0,2)内方程的根是最小正根。其次,取初始近似x =1,而把方程改写成下面形式:
0
4 3 2
x=-(x +x -3x -12)/12=φ(x)
但,
3 2
φ`(x)=-(4x +3x -6x)/12
在x =1的值为φ`(1)=1/12很小,因此可以进行叠代。计算表格如下:
0
根据秦九韶除法计算多项式
4 3 2
x=-(x +x -3x -12)/12=φ(x)
的值,如下表所示
表10
x
i a =1 a =1 a =-3 a =0 a =-12
0 1 2 3 4 φ(x )=-S /12
i 4
1 1=1*1 2=2*1 -1=-1*1 -1=-1*1 1.0833
1 2=1+1 -1=2*1-3 -1=-1*1-0 S =-13=-1*1-12
4
1.0833 1.0833 2.2568 -0.8051 -0.8722 1.0727
1 2.0833 -0.7432 -0.8051 -12.8722
1.0727 1.0727 2.2234 -0.8331 -0.8937 1.0745
1 2.0727 -0.7766 -0.8331 -12.8937
1.0745 1.0745 2.2291 -0.8283 -0.8900 1.0742
1 2.0745 -0.7709 -0.8283 -12.8000
1.0749 1.0742 2.2281 -0.8292 -0.8907 1.0742
1 2.0742 -0.7719 -0.8292 -12.8907
由此得到所求的最小正根的近似值为1.0742,
注:秦九韶除法计算多项式的公式如下
S =S x +a ,(k=1,2,...,n),S =a (5)
k k-1 0 k 0 0
表5
a a a …. a a
0 1 2 n-1 n
S x S x …. S x S x
0 0 1 0 n-2 0 n-1 0
S S S …. S S =P(x )
0 1 2 n-1 n 0
5.牛顿法
牛顿法对于解代数方程与超越方程而言是最有效的方法,它的基本特点是程序简单而收敛较快。
设给定方程(1)与初始近似根x 。
0
假定在x 的适当邻域内函数P(x)可微,我们用线性方程
0
P`(x )+P`(x )(x-x )=0 (9)
0 0 0
代替方程(1),显然方程(9)左端的表达式是函数y=P(x)的曲线在点x 处的切线方程,
0
它与x轴的交点为
P(x )
0
x =x -
1 0 P`(x )
0
我们取x 作为方程(1)的第一次近似根;
1
再由x 出发,按上法可求出方程(1)的第二次近似根x ,
1 2
P(x )
1
x =x -
2 1 P`(x )
1
等等,一般有
P(x )
n
x =x - ,(n=0,1,2,...) (10)
n+1 n P`(x )
n
此处必须假定P`(x )≠0,(n=0,1,2,...)。程序(10)称为基本牛顿程序。
n
如果在公式(10)中以P`(x )代入分母P`(x ),则得所谓的变形牛顿程序
0 n
P(x` )
n
x` =x` - ,(n=0,1,2,...;x` =x ) (11)
n+1 n P`(x ) 0 0
0
因为按公式(11)计算每一步时不必再计算P`(x)在x (n=1,2,3,...)的值,
n
所以比按公式(10)计算较为简便,但是收敛比基本程序(10)来的慢。下面我们给出关于牛顿程序收敛的充分判别法,而不加以证明。
注:详细证明见ИПМысовских著的近似计算讲义第一章
设给定方程P(x)=0与初始近似根x 满足下面诸条件:
0
函数P(x)二阶连续可微,并且有条件:
1.P`(x )≠0与
0
1
≤B
│P`(x )│
0
2.下列不等式成立:
P`(x )
0
≤η
P`(x )
0
3.在x 的邻域
0
│x-x │≤2η (12)
0
内二阶微商P``(x)的绝对值有界:│P``(x)│≤K
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.2633*10 -4
0.1825*10 -11
0.9524*10
0.10
1.056 -1
0.5573*10 -3
0.1725*10 -8
0.1664*10
0.15
1.089 -1
0.8893*10 -3
0.6979*10 -7
0.4365*10
0.20
1.127
0.1270 -2
0.2017*10 -6
0.5248*10
0.25
1.172
0.4716 -2
0.5491*10 -5
0.4248*10 -11
0.3190*10
0.30
1.225
0.2251 -1
0.1086*10 -4
0.2784*10 -2
0.1838*10
0.35
1.292
0.2922 -1
0.2299*10 -3
0.1664*10 -7
0.1211*10
0.40
1.382
0.3820 -1
0.4863*10 -2
0.1044*10 -6
0.4591*10
0.45
1.519
0.5195
0.1104 -2
0.7495*10 -4
0.3955*10 -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.112*10
例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.17*10
现在我们按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.03764*10 2
2.76770*10 3
8.28030*10 2
6.01972*10
1.18686
4
2
9.22726*10
2
-5.53540*10 4
7.66016*10
3
-50.30514*10
2
12.03944*10 4
68.56337*10
4
-32.32156*10
72.10506*10 4
36.23703*10
2
-19.65512*10
2
4=2
1
2
3.69186*10
4
2.75004*10
4
35.31391*10
4
36.04048*10
1.40864
8
4
13.62983*10
4
--5.50008*10 8
7.56272*10
8
-2.60748*10
4
72.08096*10 3
1247.07224*10
3
-198.22552*10
2
10.40100*10 8
1298.91620*10
4
-99.48917*10
3
8=2
1 2
8.12975*10 8
4.96245*10 11
1.04885*10 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.59782*10 22
1.10009*10
19
-12.88145*10
0 8
1.68717*1022
0
4
16=2
1 9
5.61679*10 17
2.29206*10 22
1.08721*10 22
1.68717*10
3.98733
32
18
31.54883*10
17
-4.58412*10
34
5.25354*10
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.10899*10 34
5.24133*10 44
1.8195*10 44
2.84654*10
1.55026*10
64
38
9.66582*10
34
-10.48266*10 68
27.47154*10
0
0 88
1.39701*10
0
0 88
8.10279*10
0
5
32=2
1 38
9.66477*10 69
2.74715*10 88
1.39701*10 88
8.10279*10 2
2.4033*10
128 76
93.40778*10
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.34078*10 138
7.54683*10 176
1.95164*10 177
6.56552*10 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)-2*0*1 1=1*1
2 12
2 1 18=6*6-2*9 69=9*9-2*6*1 1=1*1
2 36
3
1 186=18*18-2*69 4725=69*69-2*18*1 1=1*1
2 372
4 1 25146=186*186-2*4725 3
22325*10 =4725*4725-2*186 1=1*1
2 50292
5 1
4
58767*10
10
49841*10
1=1*1
2 5
11758*10
6 13
34436*10 25
24841*10
1=1*1
13
68872*10
7 1 31
11858*10 54
61708*10
1=1*1
2
因此
128 35 128 23 128 -59
│x │ =1.1858*10 ,│x │ =5.2039*10 ,│x │ =1.6205*10 ,
1 2 3
(7)
a
128 1 35
│x │ = =1.1858*10
1 (7)
a
0
(7) 54
a 61708*10
128 2 23
│x │ = = =5.2039*10
2 (7) 31
a 11858*10
1
(7)
a 1
128 3 -59
│x │ = = =1.6205*10
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.2300*10 -1
-2.5000*10 -2
-3.0750
2 -1 -1
2*1.2300*10 =2.4600*10
1 1 5.1513*10
-1 2 -1
=(1.2300*10 ) -2*1*(-2.5000*10 ) -2
7.0064*10
-1 2 -1 -2
=(-2.5000*10 ) -2*(1.2300*10 )*(-3.0750*10 ) -4
9.4556*10
-4 2
=(-3.0750*10 )
2 -1
1.0303=2*5.1513*10
2 1 1.2523*10
-1 2 -1
=(5.1513*10 ) -2*1*(7.0064*10 ) -2
3.9348*10
-1 2 -1 -4
=(7.0064*10 ) -2*(5.1513*10 )*(9.4556*10 ) -7
8.9408*10
-4 2
=(9.4556*10 )
2 -1
1.0303=2*5.1513*10
3
1 -3
7.8130*10 -5
1.5259*10 -13
7.9939*10
2 -2
1.5626*10
4 1 -5
3.0525*10 -10
2.3282*10 -25
6.3901*10
2 -5
6.1050*10
5 1 -10
4.6614*10 -20
5.4205*10 -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.4205*10 ,│x │ =7.5331*10 ,
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) -2*6*1 2
6=6 -2*(-3)*(-5) 2
25=(-5)
2 -6 12
2 1 2
-3=(-3) -2*1*6 3
0.186*10
2
(注:186=300+6 -2*(-3)*25) 3
0.625*10
2 -6 3 3
0.372*10 =2*0.186*10
3
1 3
-0.363*10
2
(注:363=600-237=600-(-3) -2*1*114) 5
0.38346*10
3 2 5
=(1.86*10 ) -2*(-3)*0.625*10 6 3 2
0.39063*10 =(0.625*10 )
2 3
-0.726*10 5
0.76692*10
4 1 5
0.55077*10
3 2 5
=(-0.363*10 ) -2*0.38346*10 *1 10
0.17540*10
5 2 3 6
=(0.38346*10 ) -2*(-3.63*10 )*0.39062*10 12 6 2
0.15259*10 =(0.39063*10 )
2 5
0.11015*10 10
0.35080*10
5 1 9
-0.47450*10
6 2 10
=(0.55077*10 ) -2*0.17540*10 *1 19
0.30597*10
10 2 5 12
=(0.17540*10 ) -2*(0.55077*10 )*0.15259*10 23 12 2
0.23284*10 =(0.15259*10 )
2 9
-0.94900*10 19
0.6119410
6 1 19
-0.58943*10
9 2 19
=(0.47450*10 ) -2*0.30597*10 *1 37
0.93618*10
19 2 9
=(0.61194*10 ) -2*(0.47450*10 )*0.23284*10 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
标签:10,方程,...,高次方程,电路,计算,编写,计算公式,实根 From: https://blog.51cto.com/u_15546906/5760202