二分法是一种在数学中用于查找函数零点的数值方法。具体来说,对于在区间 \([a, b]\) 上连续且满足 \(f(a) \cdot f(b) < 0\) 的函数 \(y = f(x)\),二分法通过不断将包含零点的区间一分为二,逐步缩小零点的可能位置,从而得到零点的近似值。
1. 确定初始区间 \([a, b]\),使得函数在区间两端取值异号,即 \(f(a) \cdot f(b) < 0\)。
2. 计算区间中点 \(c = \frac{a + b}{2}\)。
3. 评估函数在 \([a, c]\) 和 \([c, b]\) 上的符号。
4. 如果 \(f(a) \cdot f(c) < 0\),则零点位于 \([a, c]\),否则位于 \([c, b]\)。
5. 重复步骤2至4,直到找到满足精度要求的零点近似值。
二分法是一种效率较高的方法,因为它每次迭代都将搜索区间减半,所以它的时间复杂度为 \(\log_2(n)\),其中 \(n\) 是迭代次数。
需要注意的是,二分法要求函数在区间上连续,并且区间两端点的函数值异号,这是二分法能够应用的前提条件。此外,二分法通常应用于有序数组中,因为链表等数据结构的查询速度较慢,可能会降低二分法的效率