求平方根的迭代公式 |
您所在的位置:网站首页 › 平方根的计算公式 › 求平方根的迭代公式 |
平方根迭代公式
假设√a = x 则平方根迭代公式为: xn+1 = 1/2 (xn + a/xn) 推导过程
上面的方程是根据泰勒级数展开后,去除高阶项后得到。 这样让切线方程等于0的点的x设为xn+1,方程变为了f(xn) + f’(xn)(xn+1 - xn)(粗体是导数) = 0 解得xn+1 = xn - f(xn)/f’(xn)(粗体是导数)。 进入今天的主题,已知√a = x,所以x2 - a = 0,曲线如下图, 我们将x2 - a = 0带入到上面的迭代公式,得到了xn+1 = 1/2 (xn + a/xn)。 需要注意的是我们的根号后得到的x为正值,而二次函数显然有两个值,一正一负,这就需要我们选择的初始xn点应该为正值。 实现代码代码就是简单的实现了一下,还有漏洞,希望读者自己查缺补漏吧。 #include #include using namespace std; double f(double x, double a) { x = (x + a/x)/2; if (abs(a-x*x) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |