二分法数值求解方程
二分法(英语:Bip method),是一种常用的数值求解方程根近似值的方法,主要用于解一元函数的根(也就是方程的解)。它的原理非常简单,利用若干次迭代逼近根的位置,直至误差满足给定条件。
具体的求解步骤如下:
先将方程化为
的形式,通常是方程左边减右边(或者方程右边减左边)。确定方程的区间 ,使得 和 异号(即一个正一个负,该步骤最好通过画图得出 的值)。这是因为在连续函数的定义域中,如果 和 异号,根据零值定理,必定存在解。
将区间
平均分成两半,找到中点 。即 。
计算函数在
点的值 。
判断
与 的关系。如果 为 ,则 就是方程的解;如果 与 或 异号,说明解在 之间或 之间,此时将区间 更新为 或 ,然后返回步骤2;否则,解不在[a, b]之间,结束迭代。
重复步骤 2 至 4,直到达到预设的精度要求(如解的误差小于某个很小的值),或者达到最大迭代次数。
二分法的思想是在包含解的区间内不断缩小区间范围,直到找到一个足够小的含着解的区间,从而得到具有足够精度的解。这种方法的应用不仅限于求解代数方程,还可以用于求解微分方程的数值解。
二分法的优点在于简单直观,易于实现,并且能够在有界区间内找到解。缺点是对于某些特定的函数,可能迭代次数很多,收敛速度较慢。此外,二分法只能找到一个根(如果存在多个根),且对于非线性方程来说,初始区间的选取很关键,不同的初始区间可能得到不同的解,因此最好是先画图确定要找的解的大致范围。
需要注意的是,二分法只适用于单调的函数,对于非单调函数,需要使用其他的数值求解方法(如牛顿法、弦线法等)。
Mathematica
- 使用二分法数值解方程
的近似根。首先令 ,画出 的图形:
1 | f[x_] = x^2 - x; |
可以看出方程有两个根,大致在
1 | a = 0.1; b = 1.5; error = Abs[a - b]; |
判断程序结束还有另一种方法,这种方法看起来更简洁:
1 | a = 0.1; b = 1.5; c = (a + b)/2; |
下面图像显示了前两次迭代的解:
当然该例非常简单,接下来会讲不动点迭代法,然后利用该方法求解泊松方程。