如果函数 f(x) 在闭区间 [a,b] 上连续,且 f(a) 与 f(b) 异号(即 f(a)⋅f(b)<0),那么在开区间 (a,b) 内至少存在一点 ξ,使得 f(ξ)=0。
二分法证明
不妨设 f(a)<0<f(b)。取中点 m=(a+b)/2;若 f(m)=0,结论已得。否则保留两端异号的半区间。若算法没有有限步停下,得到闭区间套 [an,bn],满足
f(an)<0<f(bn),bn−an=(b−a)/2n,
其中 [a0,b0]=[a,b]。由实数的完备性,有唯一公共点 ξ,且 an,bn→ξ。连续性给 f(an),f(bn)→f(ξ),两侧符号分别推出 f(ξ)≤0 和 f(ξ)≥0,故 f(ξ)=0。端点函数值非零,故 ξ∈(a,b)。
介值定理通过对 f−C 使用本定理得到;本证明只使用实数完备性和连续性,没有反过来调用介值定理。
从存在性到近似计算
对 f(x)=x3−x−1,有 f(1)=−1、f(2)=5。连续二分后保留的区间为
[1,1.5],[1.25,1.5],[1.25,1.375],[1.3125,1.375].
四次二分后的中点为 1.34375,至少有一个根与它相距不超过 0.03125。一般地,二分 n 次后取中点 mn,误差至多 (b−a)/2n+1;可以在计算前按目标误差决定次数。
本例根唯一还需另证:若 1≤x<y≤2,则
f(y)−f(x)=(y−x)(y2+xy+x2−1)>0,
所以严格递增。零点定理本身只保证至少一个根,不保证唯一。异号也是充分而非必要条件,例如 x2 在 [−1,1] 两端同号但有零点;若去掉连续性,跳跃函数在 0 左取 −1、右侧及 0 取 1,两端异号却没有零点。