牛顿迭代公式计算平方根立方根 您所在的位置:网站首页 立方根算法 牛顿迭代公式计算平方根立方根

牛顿迭代公式计算平方根立方根

2024-03-14 02:07| 来源: 网络整理| 查看: 265

牛顿迭代公式计算平方根立方根

如何用计算机来求一个数的平方根与立方根呢。可以采用牛顿迭代公式。相类似的还有GCD最大公约数算法,也即欧几里德算法,利用余数辗转相除。

牛顿迭代公式思路

用一个曲线的切线的根去表示一个曲线的根(根指一元方程的解,多元方程的解叫一组解,不叫根)。然后再从曲线上前一根处做切线,再求新切线的根,直到误差达到自己预期的精度范围内。

牛顿迭代公式

曲线为 y=f(x) ,在 x0 处的切线方程为 y=f(x0)+f′(x0)×(x−x0) 。要求f(x)=0的根,我们用在 x0 处f(x)的切线与x轴的交点做为曲线根的拟合。即用 f(x0)+f′(x0)×(x−x0)=0 的根做为曲线的根。

x=x0−f(x0)f′(x0) 此即为牛顿迭代公式。

平方根迭代公式

假设输入为N。我们要求 N−−√=x 。可得 x2−N=0 。此即为f(x)。即 f(x)=x2−N 。其中N为输入的要求其平方根的数。 f′(x)=2x 。代入牛顿迭代公式。可得: x=x0−x20−N2x0=x02+N2x0 。此方程即可视为一个状态转移方程了。

xn=0.5×xn−1+0.5×Nxn−1 代码如下:

double Leetcode::sqrt(double d, double loss) { double x=1.0; do{ x=0.5*x+0.5*d/x; }while(fabs(x*x-d)>loss); return x; } 立方根迭代公式

要求 N−−√3=x ,即 x3−N=0 ,即 f(x)=x3−N 。可知 f′(x)=3x2 。 代入牛顿迭代公式。

xn=xn−1−f(xn−1)f′(xn−1)=xn−1−x3n−1−N3x2n−1=2xn−13+N3x2n−1 代码如下:

double Leetcode::cubeRoot(double d, double loss) { double x=1.0; do{ x=2*x/3+d/(3*x*x); }while(fabs(x*x*x-d)>loss); return x; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有