21xrx.com
2024-12-27 21:23:50 Friday
登录
文章检索 我的文章 写文章
C++中如何求三次方根?
2023-07-10 20:29:44 深夜i     --     --
C++ 求三次方根 算法

在C++中,要求一个数的三次方根,可以使用pow()函数,但这个函数只能求出数的幂次,不能求出根号,因此需要使用其他方法来求三次方根。

先来看一下数学上求解三次方根的方法:设一个数x的三次方根为y,则y^3=x,因此可以得到y=cbrt(x),其中cbrt()是一个C++ STL库中的函数,用于求出一个数的三次方根。

另一个方法是使用牛顿迭代法,这个方法可以求解任何函数的根,包括三次方根。具体步骤如下:

1. 选择一个初始值y,并根据公式求出f(y)=y^3-x的值。

2. 根据f(y)的值以及f(y)的导数f'(y)=3y^2,可以得到一个新的估计值y',即y'=y-(f(y)/f'(y))。

3. 计算出y'的f(y')的值,如果f(y')的值非常小,就认为求解成功,返回y';否则,用y'替换y,重复步骤2和3,直到f(y')足够小。

使用牛顿迭代法求解三次方根的代码如下:


double cbrt(double x)

{

  double y = x;

  double eps = 0.00001; // 设置误差范围

  while (fabs(y * y * y - x) > eps) {

    y = y - (y * y * y - x) / (3 * y * y);

  }

  return y;

}

在主函数中调用cbrt()函数即可求出任意数的三次方根。

  
  

评论区

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