用牛顿迭代法求平方根

作者: tingshuo123 | 来源:发表于2017-07-25 13:10 被阅读45次

    欲求 a 的平方根, 首先要随便猜测一个值, 在这里我们其值 X₁ = a / 2 作为其平方根, 然后根据下面的迭代公式算出X₂, 再将 X₂ 带入公式左边计算出 X₃ …… 直到连续两次算出的 Xn 和 Xn-1 的差的绝对值小于某个值 ε,即认为找到了足够精确的平方根,其 ε 的值取得越小, 计算出的平方根就乐精确。

    迭代公式:

    公式.jpg

    具体实现:

    #include <iostream>
    #include <cstdio>
    using namespace std;
    double EPS = 0.01;  // 用以控制计算精度
    
    int main(void)
    {
        double a;
        cin >> a;
        
        if (a >= 0 ) {
            double x = a/2;
            double last_x;
            do {        // 确保能够进行至少一次迭代 
                last_x = x;
                x = (x + a/x)/2;
            } while (x - last_x > EPS || last_x - x > EPS); // 精度未达到要求就继续迭代
            cout << x;
        } else {
            cout << "It can't be nagitive.";
        }
        
        return 0;
    } 
    

    相关文章

      网友评论

        本文标题:用牛顿迭代法求平方根

        本文链接:https://www.haomeiwen.com/subject/ddywkxtx.html