求解高次方程.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

求解高次方程

方程是使用最为广泛的数学模型之一。尽管现在计算机越来越多地用于和日常生活相关的非数值计算,求方程的数值解仍然是极为重要的技术手段。其实解方程也与我们的生活息息相关,只是我们不一定知道,如天氣预报就离不开大规模方程求解。本文仅限于讨论利用计算机解一类相对简单方程的方法。

在初等数学中,大家都已熟悉一元多项式p(x)。如果式中x的最高次数是n(n是正整数),则称其为一元n次多项式。相应地,p(x)=0称为一元n次方程,下文中我们称之为“多项式方程”,该方程的解(根)也被称为相应多项式的根(或零点)。初中时大家就熟知一次和二次方程的解法。有简单的公式可以直接计算,解这样的方程也就只当作“验证性”作业而已。

●多项式求值

既然是“尝试”,就得拿“候选”的解代入方程看看是否满足要求,基本方法就是针对给定的x0值,考察多项式的值p(x0)。因此,我们首先给一个多项式求值的算法。

多项式本身似乎就提供了求值的“算法”。对于多项式a0xn+a1xn-1+…+an-1x+an,只需求出每项的值再求和即可。不过这个做法的效率明显不高,在逐项求幂值时会导致重复计算,而且不管是手工计算还是计算机计算,乘法的代价明显高于加法。

例如,给定多项式p(x)=x4-3x3+16x2+10x-24,取x=2,则p(2)=24-3×23+16×22+10×2-24=52,总共需要执行9次乘法、4次加法。如果我们对原多项式进行简单的代数变形,得到p(x)=x(x(x(x-3)+16)+10)-24,则p(2)=2(2(2(2-3)+16)+10)-24=52,只需3次乘法和4次加法。

一般而言,对于多项式p(x)=a0xn+a1xn-1+…+an-1x+an,可改写为公式p(x)=(x(x(…(x(a0x+a1)+…an-1)+an。这样,欲求该多项式在x=x0的值,将x=x0代入后者即可。这一方法称为Horn法则。这就是多项式求值算法的基础。下面我们看怎么实施。

首先定义表示多项式的数据结构。只需给出系数序列就可以表示多项式。为了避免歧义,0系数不可省略,多项式的次数即为序列长度减1。例如,上述例子为[1,-3,16,10,-24],多项式3x7-11x6+5x3-4x-23对应的列表为[3,-11,0,0,5,0,-4,-23]。算法过程如上页图1所示。

每次循环执行乘法与加法各1次,因此算法的代价为O(n),n是多项式的最高次数。注意,Horn法则本身并不要求所有系数为实数。为算法实现方便,本文只考虑实系数方程的解,也就是说讨论的多项式系数一定是实数。

●基于二分搜索思想的近似算法

二分搜索是一种效率非常高的搜索算法。可能读者没想过它能帮助我们解方程。我们首先回顾一点数学知识:

(1)任何一个奇数次实系数多项式至少有一个实根,这就是说,如果p(x)是奇数次实系数多项式,那么方程p(x)=0至少有一个实数根(解)。

(2)多项式一定是连续函数,函数图像是平面上的一根连续曲线。任取两个不相等的实数a,b,如果p(a),p(b)异号(不妨假设p(a)0,p(b)0),那么曲线在区间[a,b]上与x轴一定有交点,交点x_坐标值即p(x)=0的一个实数根(如图2)。

现在来讨论一个算法,对于输入的奇数次实系数方程p(x)=0,找出一个实数解(也可能实数解不唯一,算法只需找到一个即可)。其基本思想如下:随机选择一个整数a,计算p(a),再选择一个整数b,满足p(b)与p(a)异号(可能需要尝试多次)(注意:如果p(a)=0或p(b)=0,a或b就是一个解)。不妨假设p(a)0,p(b)0,则(a,b)中一定包含一个解,计算p((a+b)/2),计算结果是0,则解搜索成功;否则根据结果的正负性,可以将下一个搜索区域缩小为(a,(a+b)/2)或((a+b)/2,b)。用户指定一个允许误差值t,持续上述搜索过程,直到搜索区间长度小于t。这个方法只能给出方程的近似解,但可以使得误差小于任意指定的正值。

1.确定起始搜索区间

用随机的方法选择起始搜索区间的端点可能需要尝试多次,因为选定了一个端点a(这可以是任意的),很难确定再试多少次选到的b能满足p(a)和p(b)异号。

读者一定熟知偶次实系数方程未必有实数解,如x2+1=0。为什么奇数次就一定有实数解呢?为了将本文讨论限于中学代数课程范围内,我们利用函数图像简略解释,并在此基础上给一个确定起始搜索区间的算法。

学习初等代数时大家熟悉了p(x)=x3的函数图像,对任意正奇数n,幂函数xn图像的基本形态是一样的,只是曲线“陡峭”程度不同。一般的奇次多项式图像可能会复杂很多,但有一点基本特征是保持的,如果最高项系数为正,则基本形态如p(x)=x3,图像的左下方和右上方无限单调延伸;而若最高项系数为负,则基本形态如

文档评论(0)

ZC强 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档