• 牛顿迭代法的简介

牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

  • 牛顿迭代公式的推导

rrf(x)=0f(x)=0 的根,选取 x0x_0作为 xx的初始近似值,过点(x0,f(x0))(x_0,f(x_0)) 做曲线 f(x)f(x)的切线 LLL:y=f(x0)+f(x0)(xx0)L:y = f(x_0)+f^{'}(x_0)(x-x_0) ,则 LLxx 轴交点的横坐标x1=x0f(x0)f(x0)x_1 = x_0-\frac{f(x_0)}{f^{'}(x_0)}x1x1称 为f(x)=0f(x)=0 的一次近似值。过点(x1,f(x1))(x_1,f(x_1)) 做曲线y=f(x)y=f(x) 的切线,并求该切线与x轴交点的横坐标x2=x1f(x1)f(x1)x_2 = x_1-\frac{f(x_1)}{f^{'}(x_1)} ,称 为rr的二次近似值。重复以上过程,得 rr 的近似值序列,其中,xn+1=xnf(xn)f(xn)x_{n+1} = x_n-\frac{f(x_n)}{f^{'}(x_n)} 称为 rrn+1{n+1} 次近似值,上式称为牛顿迭代公式。

  • 应用牛顿迭代法求解x\sqrt{x}

    f(x)=x2cf(x)=x^2-c,取一个接近的值x0x_0作为初始值,则第一次近似值为x1=x0x02c2x0x_1=x_0-\frac{x_0^2-c}{2x_0},第二次近似值为x2=x1x12c2x1x_2=x_1-\frac{x_1^2-c}{2x_1},…,第n+1{n+1}次近似值为xn+1=xnxn2c2xnx_{n+1}=x_n-\frac{x_n^2-c}{2x_n},化简得出迭代公式:xn+1=12(xn+cxn)x_{n+1}=\frac{1}{2}(x_n+\frac{c}{x_n}).

  • javascript代码实现

 //求绝对值
        function abs(x) {
            return x > 0 ? x : -x;
        }
        //牛顿迭代法求解算术平方根算法
        function sqrt(x) {
        	if(x == 1)
        		return 1;
            var x0 = 1;       
            var x1;
            var x2 = x0;
            var y = x;
            //如果误差大于10^-6,就继续进行迭代
            while (abs(x2 - y) >= 1e-6) {
            //迭代核心公式
                x1 = (x0 + x/x0)/2;
                x2 = x0;
                y = x1;
                x0 = x1;
            }
            return x1;   
        }
        //输出100以内的所有整数的算术平方根
        for(var i = 1 ; i < 100 ; i++) {
            console.log(i + '的算术平方根的值为'+sqrt(i));
        }
  • 测试结果

利用牛顿迭代法实现对一个整数开平方根(javascript实现)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
猜你喜欢
  • 2021-11-13
  • 2022-12-23
  • 2021-04-08
  • 2022-12-23
  • 2022-01-12
  • 2021-08-27
相关资源
相似解决方案