二分法详解:原理、算法与实例
二分法详解:原理、算法与实例
二分法是一种基本的数值解法,用于求解多项式方程的根。其核心思想是将包含根的区间不断二分,直到找到满足精度要求的近似解。本文将详细介绍二分法的基本原理、算法步骤,并通过一个具体示例帮助读者理解其应用。
什么是二分法?
二分法是求多项式方程根的基本数值解法之一。二分法将方程根所在的区间括起来,在每次迭代中将其分成两半,直到找到根。因此,二分法又称为括号法。
但由于其工作机制与二分查找算法类似,二分法又称为二分查找法、减半法或二分法,其主要基础是中值定理。
寻找方程的根
在这个例子中,我们只考虑具有一个独立变量的方程。它可以是线性的,也可以是非线性的。线性方程用于表示直线的图形,而非线性方程用于表示曲线。
方程的根是指满足方程的独立变量的值。例如:方程的根 f(x)= 4-x2= 0 为 2,因为 f(2) = 4-22= 0。
我们将 f(x) 视为一个实连续函数。根据中间值定理,如果 f(a)f(b) < 0,则方程 f(x)=0 至少有一个根位于 a 和 b 之间。函数 f(x) 有一个根“c”,位于 a 和 b 之间。
二分法的图形表示
下图表示二分法的工作机制。从图中我们可以看到方程的根用红色标记。
首先:
我们首先做了两个初步猜测,1和b1,其中 f(a1)f(b1) < 0. 根据介值定理,根应该位于[a1,b1].
我们可以找到1和b1,这是b2。因此,初始间隔现在减少到[a1,b2] 因为 f(a1)f(b2)<0。
以同样的方式,减少间隔直到找到近似解。
二分法算法
应用二分法算法求方程 f(x)=0 的根的步骤如下
步骤1)选择初始猜测 a、b 和容差率 e
步骤2)如果 f(a)f(b) >=0,则根不在此区间内。因此,不会有解。
步骤3)找到中点,c = (a+b)/2
(i)如果中点函数值 f(c) = 0,则 c 为根。转到步骤 5。
(ii)如果 f(a)f(c) < 0,则根位于 a 和 c 之间。则设 a = a,b = c。
(iii)否则设 a = c,b = b。
步骤4)如果绝对误差高于容忍率或(ba)>e,则转到步骤3。
步骤5)将 c 显示为近似根。
我们来看一个二分法算法的例子。
我们必须利用二分法公式找到下列连续函数的根。
二分法示例
步骤1)假设,
a = -10,
b = 10,且
e = 1% 或 0.01
步骤2)现在,我们将检查 f(a)f(b) 是否 >= 0。
f(a)= f(-10)=(-10)3-(-10)2 + 2 = -1098
f(b)= f(10)=(10)3-(10)2 + 2 = 902
f(a)f(b) = f(-10)f(10) = (-1098)(902) < 0
因此,上述函数的根位于区间 [-10, 10] 内。
步骤3)然后首先计算中点 c。
现在需要检查以下情况:
(i)f(c)= 0:
f(c) = f(0) = (0)3 – (0)2 + 2 = 2 ≠ 0
(二)若 f(a)f(c) < 0:
f(c)f(a) = 2*(-1098) < 0
条件已满足。对于下一次迭代,值将是,
一个=一个= -10
b = c = 0
步骤4)由于 (ba) = (0-(-10)) = 10>0.05,因此将重复该过程。表中显示了下一次迭代。
迭代 a b c 巴 f(c)
1 -10 0 0 10 2
2 -5 0 -5 5 -148
3 -2.5 0 -2.5 2.5 -19.875
4 -1.25 0 -1.25 1.25 -1.52562
5 -1.25 -0.625 -0.625 0.625 1.36523
6 -1.25 -0.9375 -0.9375 0.3125 0.297119
7 -1.09375 -0.9375 -1.09375 0.15625 -0.50473
8 -1.01562 -0.9375 -1.01562 0.078125 -0.0791054
9 -1.01562 -0.976562 -0.976562 0.0390625 0.115003
10 -1.01562 -0.996094 -0.996094 0.0195312 0.0194703
11 -1.00586 -0.996094 -1.00586 0.00976562 -0.0294344
步骤5)在第 11 次迭代中,步骤 4 的条件将为假。因此,该等式的根为 -1.00586。
二分法的优缺点
优点 | 缺点 |
---|---|
易于实现的简单求根方法。 | 收敛速度很慢,因为它只是基于间隔减半。 |
因为它包围了根,所以它总是收敛的。 | 如果其中一个初始猜测接近根,那么到达根将需要更多次迭代。 |
可以通过增加或减少迭代次数来控制错误率。 |