公差标准布伦特方法

问题描述 投票:0回答:1

布伦特方法的停止标准是

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,但是函数的值不等于0或任何接近的值。布伦特方法的全部目的不是寻找函数的根使得f(b) == 0.0或低于某个公差吗?

即使函数的值不接近零,即低于给定的公差,是否总是会出现|b-a| < tolerance收敛的情况?

algorithm math root numerical-methods modelica
1个回答
0
投票

如果r是根,那么您想将r(而不是f(r))近似在给定的公差范围内,这正是此处发生的情况。此时f的图形可能几乎是垂直的,并且如果b为您的近似值,则f(b)可能不会接近0。如果发生这种情况,则需要较小的公差。对于大多数应用程序来说,知道小数点后六位的根是足够的,但是如果您的应用程序涉及一个函数,其值会随着小数点后第七位的变化而急剧变化,那么您当然会遇到问题。

© www.soinside.com 2019 - 2024. All rights reserved.