求一个数的平方根。

要求:不使用系统函数,求出一个数的平方根(要求误差值在0.0001)。按照如下的算法。

如果一个数为x 假设它的平方根为y, 如果 y*y的结果和x相差大于0.0001,就继续假设下一个值。应该如何猜下一个值呢?

用x除y的商结果z, 再求(y+z)的平均值作为新的平方根的猜测值。
示例如下,假设要求3的平方根,假设为1.5

X

猜测平方根y

结果z

下一个猜测值

3

1.5

3/1.5=2

(1.5+2)=1.75

3

1.75

3/1.75=1.7143

这时1.7143*1.7143=2.9388和3的差距还有

3-2.9388=0.0612所以继续这个猜测过程,直到差距在0.0001这个可接受的范围为止。

这个算法被称为牛顿迭代法。

class MySqrt
  {
      public const double diff=0.0001;
      public static double GetSqrt(double n)
      {
          double s = n / 2; //假设的平方根初值 
          while (NotFit(s,n))
          {
              s = ((n / s) + s) / 2;

}
          return s;
      }
      ///


      /// 判断是否符合要求的误差范围
      ///

/// 平方根
      /// 目标数
      /// 假为合适的值,真为不合适
          public static bool NotFit(double num,double n){
             double r= num*num;
             double d = Math.Abs(n - Math.Abs(r));
              if(d>diff){
                   return true;
              }
             return false;
          }
  }

C#语言自定义平方根函数相关推荐

  1. 用二分法定义平方根函数(Bisection method Square Root Python)

    Python里面有内置(Built-in)的平方根函数:sqrt(),可以方便计算正数的平方根.那么,如果要自己定义一个sqrt函数,该怎么解决呢? 解决思路:  1. 大于等于1的正数n的方根,范围 ...

  2. R语言自定义极大似然估计函数、假设检验函数

    R语言自定义极大似然函数函数.假设检验函数 目录 一.自定义极大似然函数 二.自定义假设检验函数 目录 一.自定义极大似然函数 1.求出似然函数,以正太分布.指数分布为例 正太分布似然函数: 指数分布 ...

  3. 牛顿迭代法实现平方根函数sqrt

    转自利用牛顿迭代法自己写平方根函数sqrt 给定一个正数a,不用库函数求其平方根. 设其平方根为x,则有x2=a,即x2-a=0.设函数f(x)= x2-a,则可得图示红色的函数曲线.在曲线上任取一点 ...

  4. C语言自定义打印宏函数

    在调试大型项目中,打印信息分级和指出打印所在处,更方便于解决问题.查阅网上的文章并加上自己的修改,实现了个简单的宏打印函数来达到目的.宏函数实现在头文件中,加上了打印级别来控制打印是否输出,打印级别的 ...

  5. 牛顿法求解1-100的平方根python_使用牛顿-拉弗森法定义平方根函数(Newton-Raphson method Square Root Python)...

    牛顿法(Newton's method)又称为牛顿-拉弗森法(Newton-Raphson method),是一种近似求解实数方程式的方法.(注:Joseph Raphson在1690年出版的< ...

  6. C语言 自定义字符串拼接函数

    #include "stdio.h"//函数原型 char *cat(char *a,char *b);void main(){char a[100],b[100];gets(a) ...

  7. 【leetcode】第69题 x 的平方根 牛顿迭代法实现求平方根函数 C++

    这题属于简单题,但是因为学到了新的算法:牛顿迭代法(或牛顿法),这里做一下记录. 题目描述: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类 ...

  8. C语言自定义字符串复制函数

    用C语简单实现一个字符串复制函数 /*============================================================================Name ...

  9. 二分查找算法应用-实现求平方根函数

    使用二分查找算法,尽可能的逼近求解平方根.算法的思路很简单:设置三个标识:left=0,right=x(x为输进去的被开方数) mid=(left+right)/2,然后用mid*mid-x的绝对值去 ...

  10. c语言学习-自定义并调用函数求三个数的最小公倍数

    c语言自定义并调用函数求三个数的最小公倍数 程序流程图: 代码: #include<stdio.h> int la1(int m ,int n,int p); int la2(int m ...

最新文章

  1. graphpad做折线图后怎么保存_农村的干豆角怎么做的?农村妹子教你两个窍门,保存2年都不会坏...
  2. java heroku_Heroku运行Java
  3. [常用命令]Git命令
  4. 关于Python 中的os.mkdir()
  5. 什么是虚拟DOM(React16源码分析)
  6. 3dmax导出obj序列_Houdini导出序列图片
  7. python encode函数_关于字符串:在python中使用unicode()和encode()函数
  8. [转]ASP.NET 页生命周期概述
  9. 未能从dhcp服务器获得ip地址,当出现无法从DHCP服务器中获得地址的常见处理步骤...
  10. outlook html 格式签名,Outlook HTML电子邮件签名
  11. HNU计算机系统lab3
  12. 戴尔笔记本怎么安装统信uos系统?戴尔笔记本安装统信uos+win双系统
  13. Vue 移动端 hash模式下微信授权登录
  14. 通俗理解OvO与OvR
  15. 嵌入式的可移植性和可复用性
  16. PID 整定方法与原理-说明了“I”的用法
  17. 汽车UDS诊断详解及Vector相关工具链使用说明——6.1 使用DiVa进行诊断自动化测试
  18. 2011年6月20日
  19. 最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)
  20. 三个运维新技术趋势_技术与家族企业:三大趋势

热门文章

  1. 《SEM长尾搜索营销策略解密》一一2.14 3M的奇思妙想,原来来自长尾
  2. 《SEM长尾搜索营销策略解密》一一2.13 ZARA,零售界的长尾赢家
  3. win11怎么看激活状态
  4. 数据库Update操作的一些技巧总结
  5. NTKO控件安装失败解决方式
  6. Android 设计素材积累(九层之台起于垒土)
  7. 3dMath 三角形性质公式
  8. “你还有什么事想问”——作为程序员如何回答面试官的问题
  9. Maya2018安装报错(错误代码1612)
  10. 中国大陆身份证号码验证及身份证信息获取,数据来源于国家标准GB/T 2260-2007