首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >容差标准布伦特法

容差标准布伦特法
EN

Stack Overflow用户
提问于 2020-04-16 02:18:12
回答 2查看 243关注 0票数 3

Brent方法的停止标准是

代码语言:javascript
运行
复制
if abs(m) <= tol or fb == 0.0 then    // root found (interval is small enough) 
    found := true;

但是,如果abs(m)达到上述容差以下,但f(b)的值不在接近零的位置,该怎么办?这种情况会被认为是收敛失败还是成功收敛?我可以看到abs(m) < tolerance,也就是|b-a| < tolerance,但是函数的值不等于零,也不等于任何接近零的值。布伦特方法的全部要点不就是寻找函数的根,使得f(b) == 0.0或低于一定的容差吗?

当函数的值不接近于零,即低于给定的容差时,是否始终存在|b-a| < tolerance收敛的情况?

EN

回答 2

Stack Overflow用户

发布于 2020-04-16 02:52:49

如果r是根,那么您希望将r (而不是f(r))近似到给定的容差范围内,这正是这里所发生的情况。当然,也有可能f的图形在这一点上几乎是垂直的,所以如果b是您的近似值,那么f(b)就不会接近0。如果发生这种情况,您需要一个较小的容差。对于大多数应用程序来说,知道小数点后6位的根就足够了,但是如果您的应用程序涉及到一个函数,该函数的值可能会随着小数点后7位的变化而发生巨大变化,那么您肯定会遇到问题。这就是为什么在数值分析过程中,方法中误差的表达式涉及导数的界限。你需要一些平滑的假设才能得到合理的结果。

票数 6
EN

Stack Overflow用户

发布于 2020-04-16 04:00:12

Brent方法是一种括号方法,这意味着它在迭代过程中保持一个括号间隔,即两个函数值符号相反的点。由此可以得出结论:在长度为m区间中有一个符号变化,因此,根据中值定理,存在一个距离不大于m的接近b的“精确”根。

不完全是“精确”,因为你正在计算一个数值函数。如果放大从明显为正到明显为负(或v.v)的分段上的间隔,则数值评估的实际图可能看起来相当模糊,就像扩展的威尔金森多项式,

来自example and plot using expanded W.-pol.

在另一个极端,数值函数在放大下可能看起来不模糊,但然后它将是分段常数,并且可能没有值为零的点,

(1e-14部分中的水平缩放)来自example and plot using factorized W.-pol.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61235831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档