21xrx.com
2024-12-22 23:17:53 Sunday
登录
文章检索 我的文章 写文章
C++实现二分法求函数零点
2023-07-04 13:59:58 深夜i     --     --
C++ 二分法 函数 零点

二分法是一种常见的求解函数零点的方法,也是计算机科学中常用的算法之一。在C++中,可以通过以下步骤实现二分法求函数零点。

首先,我们需要定义一个函数,输入为x,输出为函数值f(x)。在本例中,我们以求解函数f(x)=x^2-2的零点为例,定义以下函数:


double f(double x) {

  return x * x - 2;

}

其次,我们需要确定二分法的范围。在本例中,我们以区间[1,2]为例,即在[1,2]范围内寻找函数f(x)=x^2-2的零点。

接下来,就可以进行二分法的迭代了。我们可以定义一个函数,利用循环实现二分法的迭代过程。具体而言,我们每次将区间一分为二,根据中间点的函数值判断零点的位置,然后缩小区间范围进行下一次迭代。


double bisection(double a, double b, double eps) {

  double c = (a + b) / 2;

  while (std::abs(f(c)) > eps) {

    if (f(a) * f(c) < 0)

      b = c;

     else

      a = c;

    

    c = (a + b) / 2;

  }

  return c;

}

在上述代码中,我们利用eps控制迭代精度,当函数值的绝对值小于eps时,迭代结束并返回零点的近似值。

最后,我们可以在主函数中调用上述定义的函数,并输出结果。


int main() {

  double a = 1, b = 2, eps = 1e-6;

  double answer = bisection(a, b, eps);

  std::cout << "The zero of f(x)=x^2-2 is approximately " << answer << std::endl;

  return 0;

}

综上所述,通过定义函数、确定区间范围、实现二分法迭代以及在主函数中输出结果,便可以较为简单地利用C++实现二分法求函数零点。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复