4.5.2 用二分法求方程的近似解

人教 A 版 · 本节 4 页原书扫描(原文)+ 本站重写的讲解与习题详解考过 6 题 ↓

原书扫描页(人教 A 版原文)

原书 page-0151
page-0151
原书 page-0152
page-0152
原书 page-0153
page-0153
原书 page-0154
page-0154

本节的知识树

1 概念 · 最深 1 层。根是引本节作教材出处的实体,长链由 `prereqs` 构建期派生——源里只有最小一步。

考过本节的真题

共 6 道

讲解

本站对这一节的重写(不是原书转写):顺序可重组、推导可补全,目标是易读易学 + 与真题关联。原文以上方扫描图为准。

上一节(§4.5.1)解决了”方程的解在哪”——零点存在定理保证零点在某个区间里。这一节解决”解是多少”:把零点所在区间一分为二、再一分为二……直到区间小到满足精确度,区间的端点就是零点的近似值。这个”不断对半细分”的方法就是二分法,它是计算数学里数值求根的经典算法,也几乎原样出现在高考的解答题和算法题里。

学完这一节,你要能:按四个步骤完整走一遍二分法(验证异号 → 取中点 → 判号缩区间 → 判断精确度),说清精确度 ε\varepsilon 到底管什么。

一、二分法的一次完整演示:例 2(2^x + 3x = 7)

例 2 是本节的教学样板,跟着它把流程走一遍。原方程移项成 f(x)=2x+3x−7=0f(x) = 2^x + 3x - 7 = 0,令 x0x_0 为它的零点:

  1. 初始区间:由图/表得 f(1)f(2)<0f(1)f(2) < 0(f(1)=2+3−7=−2f(1) = 2 + 3 - 7 = -2,f(2)=4+6−7=3f(2) = 4 + 6 - 7 = 3),零点在 (1,2)(1, 2) 内;
  2. 取中点:x1=1+22=1.5x_1 = \frac{1 + 2}{2} = 1.5,算 f(1.5)≈0.33>0f(1.5) \approx 0.33 > 0。因为 f(1)f(1.5)<0f(1)f(1.5) < 0,零点收窄到 (1,1.5)(1, 1.5);
  3. 再取中点:x2=1+1.52=1.25x_2 = \frac{1 + 1.5}{2} = 1.25,f(1.25)≈−0.87<0f(1.25) \approx -0.87 < 0。因为 f(1.25)f(1.5)<0f(1.25)f(1.5) < 0,零点收窄到 (1.25,1.5)(1.25, 1.5);
  4. 继续:(1.375,1.5)→(1.375,1.4375)(1.375, 1.5) \to (1.375, 1.4375)。此时
∣1.375−1.4375∣=0.0625<0.1,|1.375 - 1.4375| = 0.0625 < 0.1,

区间长度已经小于精确度 0.1,停止。原方程的近似解可取 1.3751.375(区间内任意一点都可以,习惯取一个端点)。

每一步都做三件事:取中点、算函数值、比符号选新区间——然后重复。这是”重复相同的步骤”的典型算法,也是它可以写程序、画程序框图(图 4.5-5)的原因。

二、二分法的定义与四个步骤

定义:对于在区间 [a,b][a, b] 上图象连续不断且 f(a)f(b)<0f(a)f(b) < 0 的函数 y=f(x)y = f(x),通过不断地把零点所在区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫做二分法。

一般步骤(给定精确度 ε\varepsilon):

  1. 确定初始区间 [a,b][a, b],验证 f(a)f(b)<0f(a)f(b) < 0;
  2. 求中点 c=a+b2c = \frac{a + b}{2};
  3. 计算 f(c)f(c),确定新区间:若 f(c)=0f(c) = 0,则 cc 就是零点;若 f(a)f(c)<0f(a)f(c) < 0,令 b=cb = c(零点在 (a,c)(a, c));若 f(c)f(b)<0f(c)f(b) < 0,令 a=ca = c(零点在 (c,b)(c, b));
  4. 判断精确度:若 ∣a−b∣<ε|a - b| < \varepsilon,取 aa(或 bb)作近似值,结束;否则回到第 2 步。

精确度 ε\varepsilon 的语义要想清楚:ε\varepsilon 约束的是区间长度 ∣a−b∣|a - b|,不是 ∣f(c)∣|f(c)|。因为零点 x0x_0 在区间 [a,b][a, b] 内,区间端点 aa(或 bb)与 x0x_0 的距离 ≤ 区间长度 ∣a−b∣|a - b|——所以只要 ∣a−b∣<ε|a - b| < \varepsilon,区间内任意一点(包括端点)与零点的距离都小于 ε\varepsilon,都满足精确度要求。这也是课本”想一想,为什么”的答案:∣x0−a∣≤∣a−b∣<ε|x_0 - a| \le |a - b| < \varepsilon。

顺带把框图那一半读懂:判断框在哪,答案就差在哪

图 4.5-5 是现行人教A版五册书里唯一一张画出来并被命名的程序框图(另一处在 §5.5 造三角函数表, 只提了一句「就可以写出一个程序框图」)。它值得多看两眼——高考的算法题考的就是这件事: 把框图读成一段能逐轮跑的规则。

一张带循环的框图,能用的信息只有三行:

  1. 初值:循环开始前各个变量分别等于几;
  2. 循环体:每一轮把旧值换成新值的那几条赋值语句,以及它们的先后;
  3. 退出条件:判断框里那个不等式,以及它成立时往哪走。

三个容易读岔的地方:

  • 赋值不是等式。a=ca=c 读作「把 cc 的值存进 aa」,所以 i=i+1i=i+1 一点也不矛盾; 二分法框图里的 a=ca=c / b=cb=c 正是这个意思——旧端点被覆盖掉了。
  • 判断框在循环体之前还是之后。在后是「做完再判」,循环体至少跑一次; 在前是「先判再做」,条件一开始就成立就一轮都不跑。图 4.5-5 属于前者: 先取中点、判号缩区间,再问 ∣a−b∣<ε|a-b|<\varepsilon。
  • 循环里通常有两个变量在动:一个攒结果(二分法里是端点 aa、bb),一个数轮数。 问的是「跑了几轮」还是「某个变量此刻等于几」,答案常常差一——计数器在判断之前就已经加过了。

三行读出来之后框图就可以合上:剩下的是一条递推(初值 ++ 每轮怎么变), 轮数少就逐轮爬,轮数多就先求通项。二分法这一条的通项还特别干净—— 第 kk 轮后区间长度是 b−a2k\dfrac{b-a}{2^{k}},于是「要跑几轮」由 b−a2k<ε\dfrac{b-a}{2^{k}}<\varepsilon 直接解出来,不必真的一轮一轮数。

三、易错点

  1. 先验证、后二分:f(a)f(b)<0f(a)f(b) < 0 且图象连续是二分法起跑的前提,直接对”看起来有零点”的区间二分没有依据;
  2. 判号对象搞混:第 3 步比的是 f(a)f(a) 与 f(c)f(c)(或 f(c)f(c) 与 f(b)f(b))的符号,别拿 f(c)f(c) 与 0 比大小来决定区间——那是比较函数值大小,不是判零点所在侧;
  3. 停止条件是区间长度,不是 f(c)f(c) 接近 0:∣a−b∣<ε|a - b| < \varepsilon 才是停表条件;f(c)f(c) 很小但区间还长,或者 f(c)f(c) 不小但区间已短,都按定义以区间长度为准;
  4. 别忘 f(c)=0f(c) = 0 的情形:中点正好是零点时直接结束(第 3 步第 (1) 条),这是稀疏但合法的分支;
  5. 近似值取端点:停止后把 aa(或 bb)作为零点近似值,“区间内任一点”的说法不要写成”区间外某点”;
  6. 二分法不是求零点的唯一方法:它要求”连续 + 端点异号”,且每次只能保证一个零点在区间内(多零点区间照样收敛到其中一个)——课本末尾”阅读与思考”提到的牛顿法、弦截法收敛更快,但二分法最稳。

四、这一节考过的真题(怎么用它们)

页面下方”考过本节的真题”那一段是构建期从知识图谱派生出来的完整清单。二分法在高考里的考法很固定:给一个函数和初始区间,模拟几步二分,问第几步区间变成什么、或取哪个近似值(选填题);或者给算法程序框图/伪代码,判断输出(算法题)。做题要点就两条:每步把区间写对(符号判定的方向),以及记住”停表看 ∣a−b∣|a - b|“。二分法的思想(区间逐步逼近)也常作为函数零点综合题的背景。

清单里有一道题跟二分法无关、却整道题都在考上面那段「框图怎么读」:

  • 2014 年浙江卷第 11 题(填空,经由「程序框图」这个实体):给一张框图,输入 5050 问输出。 初值 S=0S=0、i=1i=1;循环体 S=2S+iS=2S+i,然后 i=i+1i=i+1;判断框在循环体之后,S⩾nS\geqslant n 时输出 ii。 逐轮跑:SS 依次是 1,4,11,26,571,4,11,26,57,轮末的 ii 依次是 2,3,4,5,62,3,4,5,6;第五轮 57⩾5057\geqslant 50 退出,输出 66。 循环体只跑了五轮,答案却是 66——这就是上面第三条说的那个「差一」。 想再走一步的话,把循环读成递推 Sk=2Sk−1+kS_k=2S_{k-1}+k,配一个一次式化成等比可得 Sk=2 k+1−k−2S_k=2^{\,k+1}-k-2(做法见 §4.3),换任何输入都能一步回答。

五、怎么读这一节

  1. 跟着例 2 手推一遍完整的 5 步二分((1,2)→(1,1.5)→(1.25,1.5)→(1.375,1.5)→(1.375,1.4375)(1,2) \to (1,1.5) \to (1.25,1.5) \to (1.375,1.5) \to (1.375,1.4375)),每步确认三个动作:取中点、算 f(c)f(c)、判号选区间;
  2. 背下四个步骤的表述,特别抠字眼:第 3 步的三种情形、第 4 步的 ∣a−b∣<ε|a - b| < \varepsilon;
  3. 回答课本”想一想”:为什么 ∣a−b∣<ε|a - b| < \varepsilon 时区间内任意一点都是满足精确度的近似值(用 ∣x0−a∣≤∣a−b∣|x_0 - a| \le |a - b| 一句话);
  4. 看懂图 4.5-5 的程序框图:循环体就是第 2、3 步,判断框就是第 4 步——框图与文字步骤一一对应;
  5. 做练习第 1、2 题各完整走一遍二分(要亲手列区间表,别只写答案)。

下一节 4.5.3 函数模型的应用:二分法给”解不出公式的方程”提供了数值解,模型应用的最后一块拼图——用函数模型描述现实问题、解释现象、预测未来——就此展开。

习题详解(本站解答,无官方答案可核)

人教 A 版学生用书不含答案,教师用书与全解不在本站语料里——因此本节习题的解答无官方答案可核,它们是本站写的。每一道都过了独立 verifier 的 refute 优先复核(默认它有问题,找不出问题才放行),但那不等于官方标准答案:拿它对思路,别拿它对分。

本节页面覆盖第 151–154 页,课本习题共 4 道:第 151 页顶部「练习」2 道(属 §4.5.1 函数的零点与方程的解,打印在本节第一页上,按 ADR-0023 归本节名下)、第 153 页「练习」2 道,逐题全做。第 154 页「阅读与思考(中外历史上的方程求解)」是课外阅读材料,不属于习题,不在本详解范围。每道题先逐字引课本的题面(引用块),再写解答。

练习 第 1 题(§4.5.1)

  1. 图 (1)(2)(3) 分别为函数 y=f(x)y = f(x) 在三个不同范围的图象. 能否仅根据其中一个图象, 得出函数 y=f(x)y = f(x) 在某个区间只有一个零点的判断? 为什么?

不能。

题面附图(课本第 151 页)的三张图是同一个函数在不同观察范围(坐标刻度)下的图象:

  • 图 (1):观察范围最大,曲线看似只与 xx 轴交于 1 个点;
  • 图 (2):范围缩小后,可见曲线与 xx 轴有多个交点,但都挤在原点附近很小一段里;
  • 图 (3):范围最小,能清楚看到 3 个交点。

仅凭图 (1)(或图 (2))会误判零点个数——“看不出交点”不等于”没有交点”,局部图象无法覆盖全部零点。只有观察范围覆盖了整个定义域、且刻度足以分辨交点时,才能从图象数出零点个数;而”只有一个零点”的严格判断必须借助函数性质(如单调性),图象只能提供猜测。

自检:这正是 §4.5.1 例 1 之后”?”问题的图示版——”f(2)f(3)<0f(2)f(3) < 0 只保证至少一个零点”,图象在不同范围下”看起来”的零点个数可以不同。三张图揭示的规律:观察范围决定你看见什么,函数性质才决定事实是什么。

练习 第 2 题(§4.5.1)

  1. 利用计算工具画出函数的图象,并指出下列函数零点所在的大致区间: (1) f(x)=−x3−3x+5;f(x) = -x^{3} - 3x + 5; (2) f(x)=2xln⁡(x−2)−3;f(x) = 2x \ln(x - 2) - 3; (3) f(x)=ex−1+4x−4;f(x)=\mathrm{e}^{x-1}+4x-4; (4) f(x)=3(x+2)(x−3)(x+4)+x.f(x)=3(x+2)(x-3)(x+4)+x.

每个函数找两个端点值异号的整数点即可(以下 f(a)f(b)<0f(a)f(b) < 0 均由计算工具算得):

(1) f(1)=−1−3+5=1>0f(1) = -1 - 3 + 5 = 1 > 0,f(2)=−8−6+5=−9<0f(2) = -8 - 6 + 5 = -9 < 0——零点大致区间 (1,2)(1, 2)。

(2) 定义域为 x>2x > 2(ln⁡(x−2)\ln(x-2) 要求 x−2>0x - 2 > 0)。f(3)=6ln⁡1−3=−3<0f(3) = 6\ln 1 - 3 = -3 < 0,f(4)=8ln⁡2−3≈2.55>0f(4) = 8\ln 2 - 3 \approx 2.55 > 0——零点大致区间 (3,4)(3, 4)。(更细地 f(3.5)≈−0.16<0f(3.5) \approx -0.16 < 0,零点在 (3.5,4)(3.5, 4) 内。)

(3) f(0)=e−1−4≈−3.63<0f(0) = \mathrm{e}^{-1} - 4 \approx -3.63 < 0,f(1)=e0+4−4=1>0f(1) = \mathrm{e}^{0} + 4 - 4 = 1 > 0——零点大致区间 (0,1)(0, 1)。

(4) 逐个试整数点:f(−4)=3×(−2)×(−7)×0−4=−4<0f(-4) = 3 \times (-2) \times (-7) \times 0 - 4 = -4 < 0,f(−3)=3×(−1)×(−6)×1−3=18−3=15>0f(-3) = 3 \times (-1) \times (-6) \times 1 - 3 = 18 - 3 = 15 > 0——零点在 (−4,−3)(-4, -3);f(−3)>0f(-3) > 0,f(−2)=3×0×(−5)×2−2=−2<0f(-2) = 3 \times 0 \times (-5) \times 2 - 2 = -2 < 0——零点在 (−3,−2)(-3, -2);f(2)=3×4×(−1)×6+2=−70<0f(2) = 3 \times 4 \times (-1) \times 6 + 2 = -70 < 0,f(3)=0+3=3>0f(3) = 0 + 3 = 3 > 0——零点在 (2,3)(2, 3)。所以零点大致区间是 (−4,−3)(-4, -3)、(−3,−2)(-3, -2)、(2,3)(2, 3) 三个。

自检:找零点大致区间就是”找一对端点异号的整数”——不用算得多精,符号对就行(这正是二分法第一步的准备工作)。(4) 有三个零点(三次多项式加线性项,图象三穿 xx 轴),各区间要分开找;验证三个区间内的零点约为 −3.90-3.90、−2.07-2.07、2.972.97,都在各自区间内。注意 (2) 的定义域把 x≤2x \le 2 排除,f(2)f(2) 不存在,不能拿 2 当端点。

练习 第 3 题

  1. 借助信息技术,用二分法求函数 f(x)=x3+1.1x2+0.9x−1.4f(x) = x^3 + 1.1x^2 + 0.9x - 1.4 在区间(0,1)内零点的近似值(精确度为0.1).

先验证初始区间:f(0)=−1.4<0f(0) = -1.4 < 0,f(1)=1+1.1+0.9−1.4=1.6>0f(1) = 1 + 1.1 + 0.9 - 1.4 = 1.6 > 0,f(0)f(1)<0f(0)f(1) < 0,可以进行二分。逐次取中点:

区间中点 ccf(c)f(c) 的符号零点所在新区间
(0,1)(0, 1)0.5f(0.5)=−0.55<0f(0.5) = -0.55 < 0(0.5,1)(0.5, 1)
(0.5,1)(0.5, 1)0.75f(0.75)=0.32>0f(0.75) = 0.32 > 0(0.5,0.75)(0.5, 0.75)
(0.5,0.75)(0.5, 0.75)0.625f(0.625)≈−0.16<0f(0.625) \approx -0.16 < 0(0.625,0.75)(0.625, 0.75)
(0.625,0.75)(0.625, 0.75)0.6875f(0.6875)≈0.064>0f(0.6875) \approx 0.064 > 0(0.625,0.6875)(0.625, 0.6875)

此时 ∣0.6875−0.625∣=0.0625<0.1|0.6875 - 0.625| = 0.0625 < 0.1,达到精确度,停止。零点近似值可取 0.625(区间内任意一点都可以,如 0.7 亦可)。

自检:每一步都验证”中点函数值符号 + 端点异号选新区间”。真实零点约 0.670.67:f(0.67)≈−0.0024<0f(0.67) \approx -0.0024 < 0 而 f(0.6875)>0f(0.6875) > 0,零点在 0.670.67 右侧;它与近似值 0.625 的距离 <0.0625<0.1< 0.0625 < 0.1,满足精确度要求。注意停止条件是区间长度 ∣a−b∣<ε|a - b| < \varepsilon,不是 ∣f(c)∣|f(c)| 的大小。

练习 第 4 题

  1. 借助信息技术,用二分法求方程 x=3−lg⁡xx = 3 - \lg x 在区间(2,3)内的近似解(精确度为0.1).

移项设 f(x)=x+lg⁡x−3f(x) = x + \lg x - 3。先验证:f(2)=2+lg⁡2−3≈−0.699<0f(2) = 2 + \lg 2 - 3 \approx -0.699 < 0,f(3)=3+lg⁡3−3=lg⁡3≈0.477>0f(3) = 3 + \lg 3 - 3 = \lg 3 \approx 0.477 > 0,f(2)f(3)<0f(2)f(3) < 0,可以进行二分。逐次取中点:

区间中点 ccf(c)f(c) 的近似值零点所在新区间
(2,3)(2, 3)2.5f(2.5)≈−0.102<0f(2.5) \approx -0.102 < 0(2.5,3)(2.5, 3)
(2.5,3)(2.5, 3)2.75f(2.75)≈0.189>0f(2.75) \approx 0.189 > 0(2.5,2.75)(2.5, 2.75)
(2.5,2.75)(2.5, 2.75)2.625f(2.625)≈0.044>0f(2.625) \approx 0.044 > 0(2.5,2.625)(2.5, 2.625)
(2.5,2.625)(2.5, 2.625)2.5625f(2.5625)≈−0.029<0f(2.5625) \approx -0.029 < 0(2.5625,2.625)(2.5625, 2.625)

此时 ∣2.625−2.5625∣=0.0625<0.1|2.625 - 2.5625| = 0.0625 < 0.1,达到精确度,停止。原方程的近似解可取 2.5625(或 2.625,区间内任意一点都可以)。

自检:f(x)=x+lg⁡x−3f(x) = x + \lg x - 3 在 (2,3)(2, 3) 上连续且单调递增(xx 增、lg⁡x\lg x 增),零点唯一,二分不会”漏解”。真实解约 2.5872.587(2.587+lg⁡2.587≈2.587+0.413=32.587 + \lg 2.587 \approx 2.587 + 0.413 = 3),与近似值 2.5625 的距离 <0.0625<0.1< 0.0625 < 0.1,满足精确度。表格比文字叙述清晰,考试时写成”区间表”(每步:区间、中点、f(c)f(c) 符号、新区间)最稳。

原书转写(OCR,供核对)

共 4 页· 默认折起

机器转写,如有出入以上方扫描图为准。它是原文可搜索、可复制公式、读屏器读得出的形态, 也是教材原文引文的逐字比对靶。

由表4.5-1和图4.5-2可知, f(2)<0f(2) < 0 , f(3)>0f(3) > 0 ,则f(2)f(3)<0.f(2)f(3) < 0. 由函数零点存在定理可知,函数 f(x)=f(x) = ln⁡x+2x−6\ln x + 2x - 6 在区间(2,3)内至少有一个零点.

容易证明,函数 f(x)=ln⁡x+2x−6f(x) = \ln x + 2x - 6,x∈(0,+∞)x \in (0, +\infty) 是增函数,所以它只有一个零点,即相应方程 ln⁡x+2x−6=0\ln x + 2x - 6 = 0 只有一个实数解.

?

为什么由图4.5-2和 f(2)f(3)<0f(2)f(3) < 0 还不能说明函数 f(x)f(x) 只有一个零点?你能证明函数 y=f(x)y = f(x) 是增函数吗?

练习

  1. 图 (1)(2)(3) 分别为函数 y=f(x)y = f(x) 在三个不同范围的图象. 能否仅根据其中一个图象, 得出函数 y=f(x)y = f(x) 在某个区间只有一个零点的判断? 为什么?

(1)

(2)(第1题)

(3)

  1. 利用计算工具画出函数的图象,并指出下列函数零点所在的大致区间: (1) f(x)=−x3−3x+5;f(x) = -x^{3} - 3x + 5; (2) f(x)=2xln⁡(x−2)−3;f(x) = 2x \ln(x - 2) - 3; (3) f(x)=ex−1+4x−4;f(x)=\mathrm{e}^{x-1}+4x-4; (4) f(x)=3(x+2)(x−3)(x+4)+x.f(x)=3(x+2)(x-3)(x+4)+x.

4.5.2 用二分法求方程的近似解

我们已经知道,函数 f(x)=ln⁡x+2x−6f(x) = \ln x + 2x - 6 在区间(2,3)内存在一个零点.进一步的问题是,如何求出这个零点呢?

一个直观的想法是:如果能将零点所在的范围尽量缩小,那么在一定精确度的要求下,就可以得到符合要求的零点的近似值。为了方便,可以通过取区间中点的方法,逐步缩小零点所在的范围。

取区间(2,3)的中点2.5,用计算工具算得 f(2.5)≈−0.084f(2.5) \approx -0.084。因为 f(2.5)f(3)<0f(2.5)f(3) < 0,所以零点在区间(2.5,3)内。

大多数方程都不能像一元二次方程那样用公式求出精确解。在实际问题中,往往只需求出满足一定精确度的近似解。

● ●

一般地,称 x=a+b2x=\frac{a+b}{2} 为区间 (a,b)(a, b) 的中点.

再取区间(2.5, 3)的中点2.75,用计算工具算得 f(2.75)≈0.512f(2.75) \approx 0.512 。因为 f(2.5)f(2.75)<0f(2.5)f(2.75) < 0 ,所以零点在区间(2.5, 2.75)内。

由于 (2,3)≢(2.5,3)≢(2.5,2.75)(2,3)\not\equiv(2.5,3)\not\equiv(2.5,2.75) ,所以零点所在的范围变小了。如果重复上述步骤,那么零点所在的范围会越来越小(如表4.5-2和图4.5-3)。这样,我们就可以通过有限次重复相同的步骤,将零点所在范围缩小到满足一定精确度的区间,区间内的任意一点都可以作为函数零点的近似值。为了方便,我们把区间的一个端点作为零点的近似值。

例如,当精确度为0.01时,因为 ∣2.5390625−2.53125∣=0.0078125<0.01|2.5390625 - 2.53125| = 0.0078125 < 0.01 ,所以区间(2.53125,2.5390625)内任意一点都可以作为零点的近似值,也可以将 x=2.53125x = 2.53125 作为函数 f(x)=ln⁡x+2x−6f(x) = \ln x + 2x - 6 零点的近似值,也即方程 ln⁡x+2x−6=0\ln x + 2x - 6 = 0 的近似解.

对于在区间 [a,b][a, b] 上图象连续不断且 f(a)f(b)<0f(a)f(b) < 0 的函数 y=f(x)y = f(x),通过不断地把它的零点所在区间一分为二,使所得区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫做二分法(bisection method).

给定精确度 ε\varepsilon ,用二分法求函数 y=f(x)y = f(x) 零点 x0x_0 的近似值的一般步骤如下:

  1. 确定零点 x0x_0 的初始区间 [a,b][a, b],验证 f(a)f(b)<0f(a)f(b) < 0.

  2. 求区间 (a,b)(a, b) 的中点 c.

  3. 计算 f(c)f(c),并进一步确定零点所在的区间:

(1) 若 f(c)=0f(c)=0 (此时 x0=cx_{0}=c ),则 c 就是函数的零点;

(2) 若 f(a)f(c)<0f(a)f(c)<0 (此时 x0∈(a,c)x_{0}\in(a,c) ),则令 b=c;

(3) 若 f(c)f(b)<0f(c)f(b)<0 (此时 x0∈(c,b)x_{0}\in(c,b) ),则令 a=c.

为了刻画与准确值的接近程度,这里给出了精确度 ε\varepsilon ,由 ∣a−b∣<ε|a-b|<\varepsilon 可知,区间 [a,b][a, b] 中任意一个值都是零点 x0x_{0} 满足精确度 ε\varepsilon 的近似值(想一想,为什么).

  1. 判断是否达到精确度 ε\varepsilon :若 ∣a−b∣<ε\left|a-b\right|<\varepsilon ,则得到零点近似值 a (或 b );否则重复步骤 2~4.

由函数零点与相应方程解的关系,我们可用二分法来求方程的近似解.

例 2 借助信息技术,用二分法求方程 2x+3x=72^{x} + 3x = 7 的近似解(精确度为 0.1).

解:原方程即 2x+3x−7=02^{x} + 3x - 7 = 0 ,令 f(x)=2x+3x−7f(x) = 2^{x} + 3x - 7 ,用信息技术画出函数 y=f(x)y = f(x) 的图象(图4.5-4),并列出它的对应值表(表4.5-3).

观察图 4.5-4 或表 4.5-3,可知 f(1)f(2)<0f(1)f(2)<0 ,说明该函数在区间 (1,2)(1,2) 内存在零点 x0x_{0} .

图4.5-4

取区间(1,2)的中点 x1=1.5x_{1} = 1.5 ,用信息技术算得f(1.5)≈0.33.f(1.5)\approx 0.33. 因为 f(1)f(1.5)<0f(1)f(1.5) < 0 ,所以 x0∈x_0\in (1,1.5).

再取区间(1,1.5)的中点 x2=1.25x_{2} = 1.25 ,用信息技术算得 f(1.25)≈−0.87f(1.25) \approx -0.87 。因为 f(1.25)f(1.5)<0f(1.25)f(1.5) < 0 所以 x0∈(1.25,1.5)x_0 \in (1.25, 1.5) 。

同理可得, x0∈(1.375,1.5),x0∈(1.375,1.4375).x_0\in (1.375,1.5),x_0\in (1.375,1.4375).

由于

∣1.375−1.4375∣=0.0625<0.1,| 1. 3 7 5 - 1. 4 3 7 5 | = 0. 0 6 2 5 < 0. 1,

所以,原方程的近似解可取为1.375.

由例 2 可见,用二分法求方程的近似解,计算量较大,而且是重复相同的步骤。因此,可以通过设计一定的计算程序,借助信息技术完成计算。图 4.5-5 就是表示二分法求方程近似解过程的程序框图。有兴趣的同学,可以在此基础上用有关算法语言编写程序,利用信息技术求方程的近似解。

图4.5-5

练习

  1. 借助信息技术,用二分法求函数 f(x)=x3+1.1x2+0.9x−1.4f(x) = x^3 + 1.1x^2 + 0.9x - 1.4 在区间(0,1)内零点的近似值(精确度为0.1).

  2. 借助信息技术,用二分法求方程 x=3−lg⁡xx = 3 - \lg x 在区间(2,3)内的近似解(精确度为0.1).

? 阅读与思考

中外历史上的方程求解

在人类用智慧架设的无数座从已知通向未知的金桥中,方程的求解是其中璀璨的一座。虽然今天我们可以从教科书中了解各式各样方程的解法,但这一切却经历了相当漫长的岁月。

我国古代数学家已比较系统地解决了某些类型方程求解的问题。约公元50~100年编成的《九章算术》,已经记载有开平方、开立方的开方方法,这些开方问题与求解两项方程,如求解 x2=ax^{2}=a , x3=bx^{3}=b 正根的方法是一致的;7世纪,隋唐数学家王孝通找出了求三次方程正根的数值解法;11世纪,北宋数学家贾宪在《黄帝九章算法细草》中提出的“开方作法本源图”,以“立成释锁法”来解三次或三次以上的高次方程。同时,他还提出了一种更简便的“增乘开方法”;13世纪,南宋数学家秦九韶在《数书九章》中提出了“正负开方术”,提供了一种用算筹布列解任意数字方程的有效算法,此法可以求出任意次代数方程的正根。

国外数学家对方程求解也有很多研究。9世纪,阿拉伯数学家花拉子米(Al-Khowarizmi,约780—850)给出了一次方程和二次方程的一般解法;1541年,意大利数学家塔尔塔利亚(N. Tartaglia,约1499—1557)给出了三次方程的一般解法;1545年,意大利数学家卡尔达诺(G. Cardano,1501—1576)的名著《大术》一书中,把塔尔塔利亚的解法加以发展,并记载了费拉里(L. Ferrari,1522—1565)的四次方程的一般解法。

数学史上,人们曾希望得到一般的五次及以上代数方程的根式解,但经过长期的努力仍无结果。1778年,法国数学大师拉格朗日(J.-L. Lagrange,1736—1813)提出了五次方程不存在根式解的猜想。1824年,挪威年轻数学家阿贝尔(N. H. Abel,1802—1829)成功地证明了五次及以上一般方程没有根式解。1828年,法国天才数学家伽罗瓦(E. Galois,1811—1832)巧妙而简洁地证明了存在不能用开方运算求解的具体方程,同时还给出了一个代数方程能用根式求解的充要条件,他完全解决了高次方程的求解问题,并创立了对代数学发展影响深远的“伽罗瓦理论”。

虽然指数方程、对数方程等超越方程和五次及以上的高次代数方程不能用代数运算求解,但其数值解法却随着现代计算技术的发展得到了广泛的运用,如本章介绍的二分法,就是一种常见的利用计算技术的数值解法。除了二分法,牛顿法、拟牛顿法、弦截法等也都是典型的数值解法。关于这些方法,感兴趣的同学还可以查阅相关资料作进一步的了解。