牛顿法开平方

需求

计算一个整数的平方根。

分析

牛顿迭代法

牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。

代码

#include <cstdio>
#include <iostream>
using namespace std;
#define LIMIT 0.001
int main()
{
    int n;
    cin >> n;
    double x = n / 2, c = x + 1 + LIMIT;
    while(x - c > LIMIT || c - x > LIMIT) {
        c = x;
        x = (x + n / x) / 2;
    }
    cout << x << endl;
    return 0;
}

输出测试

这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章