首页 > 编程语言 >题目 1021: [编程入门]迭代法求平方根

题目 1021: [编程入门]迭代法求平方根

时间:2023-04-06 18:26:35浏览次数:35  
标签:1021 迭代 牛顿 迭代法 x1 平方根 本题

题目描述

用迭代法求 平方根

公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数

 

一、何为迭代法
  1. 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。利用迭代算法解决问题,需要做好以下三个方面的工作:

  2. a.确定迭代变量(本题可设 x[x+1]为x、x1为x[n])

  3. b.建立迭代关系式(本题为 X[n+1]=(X[n]+a/X[n])/2)

  4. c.对迭代过程加以控制(本题为 while(fabs(x-x1)>1E-5))

二、何为牛顿迭代法
  1. 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
  2. 公式即为 X[n+1]=(X[n]+a/X[n])/2

 

#include"stdio.h"
#include"math.h"
int main()
{
    int a;
    double x=1.0,x1=10;
    scanf("%d",&a);
    while(fabs(x-x1)>1e-5)       //判断结束条件
    {
        x1=x;
        x=(x1+a/x1)/2;
    }
    printf("%0.3lf",x);
    return 0;
}

 

标签:1021,迭代,牛顿,迭代法,x1,平方根,本题
From: https://www.cnblogs.com/su-1007/p/17293700.html

相关文章

  • 两两交换节点位置:递归法、迭代法和数组转换法
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • Leet Code 69. x 的平方根
    classSolution{public:intmySqrt(intx){longa=x;while(a*a>x){a=(a+x/a)/2;}returna;}};......
  • 二叉树的统一迭代法
    classTreeNode{public:intval;TreeNode*left;TreeNode*right;TreeNode():val(NULL),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),right(nullptr){}};classSolution{public:vector<int>inorderTrav......
  • [pat乙]1021. 个位数统计
    1021.个位数统计(15)给定一个k位整数N=dk-110k-1+…+d1101+d0(0<=di<=9,i=0,…,k-1,dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N=1......
  • PAT Basic 1021. 个位数统计
    PATBasic1021.个位数统计1.题目描述:给定一个 \(k\) 位整数 \(N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0 (0≤d_i≤9, i=0,⋯,k−1, d_{k−1}>0)\),请编写程序统计每......
  • leetcode-1021-easy
    RemoveOutermostParenthesesAvalidparenthesesstringiseitherempty"","("+A+")",orA+B,whereAandBarevalidparenthesesstrings,and+represe......
  • 69. x 的平方根
    https://leetcode.cn/problems/sqrtx/ 给你一个非负整数x,计算并返回 x 的算术平方根。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去。注意:不允许......
  • 迭代法方程求根
    求根的算法,除了迭代法,还有牛顿迭代法,用切线(一阶泰勒)近似,弦截法设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0。(2......
  • pat乙级 1021个位数统计
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#definek1000intmain(){inti=0;charnum[k];for(i=0;i<k......
  • 【LeetCode二叉树#07】左叶子节点之和(基于栈的迭代法前中后序遍历复习)
    左叶子节点之和力扣题目链接(opensnewwindow)计算给定二叉树的所有左叶子之和。示例:思路注意审题,这里是要求左叶子节点之和不是二叉树中的左侧节点之和,因此使用......