用牛顿迭代法求平方根

欲求 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;
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为不是科班出身,所以即使编程一段时间也时常感觉自身基础知识非常不扎实,于是在最近开始补习算法和计算机理论的基础知...
    Originalee阅读 8,511评论 2 4
  • 牛顿迭代法的作用是使用迭代法来求解函数方程的根,简单的说就是不断地求取切线的过程.对于形如f(x)=0的方程,首先...
    Joe_HUST阅读 2,668评论 0 1
  • 因为吹水的能力不佳,所以要先打个草稿,今天的吹水过程大概是:1、牛顿迭代法的演绎过程2、牛顿迭代法求n次方根3、牛...
    pointertan阅读 2,756评论 0 1
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,926评论 1 10
  • 文|梨花飞墨白 今夕何夕,静水流深 清风湿润,炊烟轻扬 蔓草青青,露珠莹莹 有美一兮,韶华倾负 有缘相遇,我心悦然...
    梨花飞墨白阅读 1,495评论 50 19