贡献者: 待更新
这里介绍一种多区间二分法,可以求出连续函数在某区间内几乎全部的根。方法就是把这个区间等分为若干个相等的小区间,然后分别判断这些小区间两端函数值的符号,对所有两端异号的区间使用二分法即可。显然,小区间的个数越多,越有可能找到所有的根。例程如下。
函数的前两个输入变量分别是需要求根的函数句柄和求根区间(二元行矢量或列矢量),第三个变量 x
,以及对应的函数值 y
,然后画图。第 6-7 行寻找所有两端异号或有一端为 0 的区间的序号,然后在第 10 行的循环中对这些区间逐个使用二分法。为了提高运算效率,这里并没有使用 “二分法” 中的例程,而是使用了 Matlab 自带的 fzero
函数。
bisectionN
的画图功能是为了让用户判断是否有可能出现漏根,以下举两个例子说明。
运行结果如图 1 ,由于画出的曲线较为光滑,可判断漏根的可能性很小。再看另一个例子
我们已经知道函数
友情链接: 超理论坛 | ©小时科技 保留一切权利