二分法的数学思想

  二分法的思想很简单,但写好二分查找算法并不是一件容易的事情。编程初学者基本都能熟悉二分法的使用流程,并且编写相应代码,但是不一定很清楚这么做的理由。这篇文章是从网上搜集资料,加以汇集的总结,希望有助于加强初学者二分查找的理解。
  我们中学的时候就见过这种题:

100 以内的数通过猜 7 次就能够才出来,因为 27<100<28,为什么二分法通过这样来计算?

  其实这个问题是本质是高次方程的解法的问题。下面谈一下这段有趣的发展历程:
  在古希腊时代就已经有人提出了三次方程如何解的问题(题外话:中国唐代数学家王孝通的《缉古算经》是世界数学史上关于三次方程数值解法及应用的最古老、最珍贵的文献。)。但是直到15世纪末16世纪初才有了实际进展。(费罗给出了三次方程的的通解并将结果记录于卡尔达诺的《大术》之中。16世纪欧洲文艺复兴时期,意大利数学家塔尔塔利亚、费罗、卡尔达诺等人对三次方程继续研究并给出了三次方程的通解。在三次方程成功地解出之后,卡尔达诺的学生意大利数学家费拉里受到启发,很快解出了四次方程的通解,也发表在卡尔达诺《大术》中。时间转眼到了16世纪末,弗朗索瓦·韦达优化、总结归纳了前人的技术,并提出了著名的韦达定理(根与系数的关系那个: x1+x2=-b/a,x1*x2=c/a)。
  此时,大家都认为方程的根都可用原方程的系数经过加减乘除和开方运算得出,并把这件事简称为可用根号求解,于是,大家断言,对于n(n≥5)次方程来说,也一定存在这种求根公式。
  但是,研究并不顺利。直到1801年,有着“数学王子”之称的世界三大数学家的高斯意识到这个问题也许是不能解决的。到了19世纪上半叶,法国数学家伽罗瓦仔细研究了前人的理论,开始研究多项式方程的可解性理论,他并不急于寻求解高次方程的方法,而是将重心放在判定已知的方程是否有根式解.如果有,也不去追究该方程的根究竟是怎样的,只需证明有根式解存在即可。后来,他提出了“群论”的概念,并证明了高次方程(n>4)是没有通解的。至此,困扰数学界几百年的历史问题终于随着一个新的概念和学科的诞生得到了彻底解决,这个学科就是群论。但是,悲哀的是这个学科的创始人的命运可谓是天妒英才,他的数学成就在其活着时并没有得到任何人的承认,而是在其死后11年,才能到了大家的认可。并且他两次由于政治原因被捕,在狱中几乎快要自杀。后来死于一次为争夺妹子的决斗,死的时候年仅21岁。(关于他的死有段凄美、勇往直前且神秘、浪漫的爱情故事。)
  再回到题目上,二分法的数学思想是什么呢?
  前面讲到了高次方程解法的发展历程,但是,前述的解法解出来的是方程的精确解。但在实际工程中,往往不需要精确解,而是只需精准到工程所需要的程度即可。(如果你才思敏捷这会儿可能已经开始恍然大悟了,二分法的数学思想已经慢慢开始出来了啊,注意了)。因此,高次方程的模糊解也开始受到了大家的关注。其实也就是数值解,对应的课程就是大名鼎鼎的《数值分析》(诶,正在上某个老师的这门课,一言难尽)。
  其中,最有名的莫过于有着百科全书式“全才”之称的牛顿的切线法和割线法。但是,使用切线法和割线法其受制于方程本身和初始点选择,容易得不到想要的根。这对于工程师们而言是不理想的。于是,二分法出现了。
  二分法只需大致判断出解的范围[a,b]即可,然后,判断f(a)*f((a+b)/2)>0 or <0,接着以(a+b)/2代替a或是以(a+b)/2代替b。循环直至区间[a,b]的长度小于工程允许的误差ε。二分法的简便性,使得其受到了工程师们的广泛喜欢。后来,就得到了广泛的应用。
  如果上一自然段你没有没有理解的话,下面再用一道题的例子来介绍二分法:
在这里插入图片描述
解:先画出函数的图像 如下: 在这里插入图片描述
如图函数的一个根x1在(-1,0)区间内【题目求正解,因此舍去】,另一个根x2在(2,3)内。
借助图像可以发现9:f(2)<0,f(3)>0。这表明f(x)在(2,3)上有唯一零点,y=x2-2x-1在(2,3)上有唯一解
由f(2.5)>0,f(2)<0,得x2∈(2,2.5)
由f(2.25)<0,f(2.5)>0,得x2∈(2.25,2.5)
由f(2.375)<0,f(2.5)>0,得x2∈(2.375,2.5)
… …
所以2.375≈2.4是方程的近似解。4

未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值