由二次方程的求根公式谈中学数学中算法的稳定性
- 格式:doc
- 大小:83.00 KB
- 文档页数:5
由二次方程的求根公式谈中学数学中算法的稳定性
众所周知,对于一个数字系数的一元二次方程ax2+bx+c=0(a≠0),欲求其解,可通过著名的求根公式
得到.当已知系数a、b、c是一些具有多位有效数字的近似数时,求二次方程根的其它技巧方法(比如因式分解方法)已不适用,只有借助于计算工具(计算机、计算器)或手算,按此求根公式求得近似根了.这在理论上是成熟的方法,应该说它是完美无缺的方法,但在实际应用中却完全不是那么回事.在实际应用中,我们当然希望计算所得的结果,保留尽量多的有效数字.出于这一考虑我们需要对此求根公式做一些技术处理,这主要是指当|ac|即对于b2甚小时,(1)式中的某一个右端分子将出现两个非常相近的数相减情况,得到一
个很小的数,大大地损失掉已知数据中的宝贵的有效数字.其结果是使解答质量大打折扣,甚至严重失真,得不到我们所需要的信息.看如下例子:
例1 我们以近似数x1=8.143947×107,x2=1.871211×11-7(x1、x2都具有7
位有效数字)作为两根,构造一元二次方程:
(x-8.143947×107)(x-1.871211×11-7)=0,
整理得(计算中仍保留7位有效数字)
x2-8.143947×107·x+15.239043=0.(2)
下面我们利用求根公式重新计算这个构造出的方程的两根,计算中也保留7位有效数字,看看会发生什么情况,并做一些分析研究工作.
由求根公式(1),得
即得x1=8.143947×107,x2=0.
这里x1的值相当不错,但x2的值已严重失真,可以说是面目全非了.实际上它已不满足原方程了.注意,我们构造二次方程(2)时,x2保留有7位有效数字,但由构造出的方程复原x2时,有效数字丧失殆尽!出现这种情况的原因,不难发现,是由于用求根公式(1)求x2时,分子出现了两个非常相近的数,8.143947×107与
为了避免上述不利情形的出现,我们需要将求根公式(1)作一改动,成为
按公式(3)计算x2可以有效地避免两个十分相近的数作减法,有效数字得以保存.公式(3)是将公式(1)的右端分子有理化所致.当然,在初等数学中,求根公式(3)不及公式(1)正规,或曰漂亮,因为在中学数学中,当一个题的答案分母
中含有根式时,人们习惯于将分母有理化,使根式集中于分子.这里的求根公式(3)有些违背习惯.但正是这个(3)式,在应用上有其不容置疑的优点.比如,用它计算例1中的解x2,有
=1.871211×10-7,
它仍然保留了7位有效数字.
如此,求根公式(3)具有非常明显的优点.注意,我们解方程(2)的数值解时,是用公式(1)的第一式计算x1,用公式(3)的第二式计算x2.正如不宜用公式(1)两式统一计算根一样,也不宜用公式(2)两式统一计算根.你瞧,用公式(3)第一式计算x1有
x1之值不唯不精确,而且更糟糕,分母为0,计算成为不可能!
总结我们的分析,对例1,一次项系数b为负值,求其两根的计算公式(求根公式)为
对于一次项系数b为正值情况,求根公式应该取为
实用中,选取公式(4)或(5)的原则是:尽量避免出现两个相近数相减,以保存尽可能多的有效数字位.
善于观察的读者,一定会发现公式(4)、(5)与(1)、(3)相比无甚高明之处,它们只不过是在公式(1)、(3)的基础上用了一下韦达定理,即在x1求出的基础上按关系x2=1/x1计算x2而已.但正是这样一处变化,却解决了此类数值计算的“稳定性”问题,使之成为一个好算法.
为了解决某个数值问题,需要选择一个算法.算法就是解题的公式、方法、程序系统.算法当然首先要有正确的理论基础与可行性,但除此之外还必须具有
稳定性,即计算结果误差对于初始数据的微小变动(比如产生不可避免的误差)具有稳定性,后者的微小变动不至于使前者产生极大误差而失真.上面求例1根的算法,用公式(1)的就不是稳定的算法,而按公式(4)或(5)的算法就是稳定的,是足可放心的算法.
有关算法稳定性的概念及应用,在中学数学中也多有涉及,这一内容虽不宜向中学生过早介绍,但作为一名数学教师,也是有必要了解一些的.
例2 已知某直线l的方程y=ax+b,请在直角坐标系中绘出该直线.
当然,两点之间可以确定一条直线,任意取两横坐标值x1、x2,由方程可计算出相应的纵坐标y1、y2,得直线上两点只P1(x1,y1)、P2(x2,y2).在直角坐标
系中“点”出这两点,连结之,就得到所求作的直线l.但这应使P1、P2距离不至于过小,因为太小时,由于“点”的位置误差可给直线带来相当大的误差.图1中,由两点P1、P2确定的直线是l,但由于P2有误差到P2′点,确定的直线变到l1,有相当大的误差.图1中由P1、P3也可确定直线l,P1P3较大,P3虽有误差(与P2的相同)偏到P3′,但P1、P3′确定的直线l2,误差就相对小得多.
设l1、l2分别为方程组之第1、2两方程代表的直线.图解法的解题思路是在直角坐标系下,绘出l1、l2的图形,找到它们的交点,图2中是点(x0,y0.), 此即为原方程组的解.但如果确定直线l1的两点取得太近,则作图误差就较大,l1偏离到l1′,同样绘出的直线l2也偏离到l2′位置,则题目最终得到的解是l1′、l2′的交点P0′(x0′、y0′)(在纸外,未画出).它与精确值偏离相当的远,可能对于实际问题而言,已经完全失去了使用价值,得不到我们所需要的信息.为了提高解答的精确度,当初在作出直线l1(及l2)时选择其上的两点应该足够地“远”.。