题解 | #求平方根#(牛顿迭代法,泰勒公式推导)

求平方根

http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c

牛顿迭代法:

  • 求f(x) = 0 中解 x
  • 对f(x)泰勒展开,当x与接近时,可以用 近似 x。
  • 当x与接近时,
    移项即
    对于任意, 令
    不断对迭代,会逐渐靠近x 即为解。

    代入公式即
class Solution {
public: 
   int sqrt(int x) { 
        double x1 = 1,x2 = 0;

        while(abs(x2 - x1) > 1e-8 ){ // 当上一个迭代结果与当前迭代结果相差不大时,则迭代精度达到要求返回x1。
            x2 = x1;
            x1 = x1 - (x1 - x/x1)/2;
        }
        return (int)x1;
    }
};
全部评论
你的公式有问题
1 回复 分享
发布于 2021-07-15 09:16

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
念旧select:做完把项目放到自己硬盘里给他看,看完拷走
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务