我正在寻找根查找算法,使用很少的函数评估(目标是最小的)。寻根问题具有以下特征:
f(x) = 0, R -> R
f(.)
)的评估是非常昂贵的*[a,b]
)可用于开始(相对较好的近似值,而不是胡乱猜测)f(.)
是连续的f(.)
是可微的(解析导数不可用)[a,b]
)内f(.)
(函数中不存在极端情况)|f(x)| < 1e-2
就足够了。你知道吗*我们可以安全地假设,与f(.)
的单个计算相比,该算法所做的任何计算都可以忽略不计。因此,节省甚至一个单一的功能评估是一个重大的收获。你知道吗
考虑到这些,用最少的函数求值找到根的最有效算法是什么?
基于Matlab的^{
也欢迎参考书籍和评论文章。你知道吗
好吧,如果你想试试布伦特的方法,你可以试试下面我翻译的原始算法。这只是我把原来的C代码翻译成MATLAB。我已经验证了所有原始C代码的测试用例在我的翻译中产生相同的结果。你知道吗
在下面的代码中,
This
是函数句柄,a
和b
是搜索边界。你知道吗相关问题 更多 >
编程相关推荐