• 问题:实现平方根函数,不得调用其他库函数。
  • 一、使用二分法实现
  • 二、使用牛顿法迭代法实现

问题:实现平方根函数,不得调用其他库函数。

一、使用二分法实现

def mySqrt2(num):if num<0:return Noneif num==0:return 0pre=1e-7   #精度low=0.0high=numwhile high-low>pre:mid=(low+high)/2squre=mid*midif squre>num:high=midelse:low=midreturn (low+high)/2

二、使用牛顿法迭代法实现

根据牛顿法,求A−−√A\sqrt {A}即求f(x)=x2−Af(x)=x2−Af(x)=x^2-A的非负根,f′(x)=2xf′(x)=2xf'(x)=2x,
所以,此时的牛顿递推式为:xk+1=xk−x2k−A2xk=x2k+A2xkxk+1=xk−xk2−A2xk=xk2+A2xkx_{k+1}=x_k-\frac{x_k^2-A}{2x_k}=\frac{x_k^2+A}{2x_k},当xk+1xk+1x_{k+1}小于预指定的精度时,可以退出迭代。具体代码实现如下:

def mySqrt2(num):if num<0:return Noneif num==0:return 0pre=1e-7x0,x1=float(num),0.0while True:x1=(x0*x0+num)/(2*x0)if x1*x1-num<=pre and x1*x1-num>=-pre:return x1x0=x1

算法思想:改进的牛顿迭代法(先迭代求出接近x的数,在用牛顿迭代法迭代10次求解)

def mySqrt(num):if num==0:return 0i=0.0x1,x2=0.0,0.0 while i*i<=num:i+=0.1x1=ifor j in range(10):x2=numx2/=x1x2+=x1x2/=2x1=x2return x2

实现平方根函数sqrt相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 求立方根函数cbrt

    #include <float.h> #include <math.h> 由于VS2012 2013以上版本的编译器才带cbrt cbrf 求根函数,以下编译器版本只好自己去网 ...

  7. 第130章 SQL函数 SQRT

    文章目录 第130章 SQL函数 SQRT 大纲 参数 描述 示例 第130章 SQL函数 SQRT 返回给定数值表达式的平方根的数值函数. 大纲 SQRT(numeric-expression){f ...

  8. mysql 次方根_MySQL Sqrt()函数

    MySQL Sqrt()函数 MySQL的SQRT()函数是用来找出任何数的平方根. 使用SELECT语句来查找出任何数的平方根如下: mysql> select SQRT(16); +---- ...

  9. 解对称正定矩阵线性方程组的平方根方法

    对称正定矩阵线性方程组 0. 引言 1. 对称正定矩阵线性方程组 1.1 对称正定矩阵及其三角分解法 1.2 平方根法 1.3 改进平方根法 1.4 代码实现 2. 应用举例:最小二乘法多项式拟合函数 ...

  10. log函数 oracle power_Excel之数学函数SQRT/MOD/EXP/LN/RAND

    本部分主要包括ABS函数.SQRT函数.SIGN函数.MOD函数.POWER.EXP函数.LN函数.LOG函数.LOG10函数.RAND函数.RANDBETWEEN函数.PI函数.SIN函数.COS函 ...

最新文章

  1. 老生常谈JavaScript闭包
  2. 摄像机的上方向(UpDirection)- 使用WPF演示
  3. cropper.js 图像旋转问题_快速提高前端开发效率:10个JavaScript图像处理库
  4. Apache POI学习笔记
  5. Dreamweaver自动生成的垃圾代码
  6. 河南师范大学python+学习笔记6 组合数据类型
  7. 只使用一个块级元素绘制各种图形
  8. PyTorch非线性函数拟合
  9. shell脚本之正则表达式
  10. 一家互联网创业公司的“估值”是如何来的
  11. 1月第1周榜单丨B站UP主排行榜(飞瓜数据B站)发布!
  12. Android用yasea 推流异常AmfString cannot be cast to com.github.faucamp.simplertmp.amf.AmfNumber捕获和解决
  13. SHA3系列(KECCAK)哈希算法原理及实现(附源码)
  14. eclipse mdt java工程_Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本...
  15. Spark物理计划和CBO和AQE
  16. 鲁大师8月新机流畅榜:小米MIUI 12增强版又行了?
  17. 转载--马占凯:Sogou输入法之父的故事
  18. MySQL开发规范[转自网络]
  19. 《如何成为一个有趣的人》-王小圈读书笔记
  20. windows下的信息收集

热门文章

  1. Axure RP10——值得信赖的强大的原型制作工具,无需编写代码即可创造无限可能
  2. 超频到3200最佳时序_攒啥电脑呢?笔记本内存也要超频?
  3. Excel快捷键大全 Excel常用快捷键大全
  4. 最受Java程序员欢迎的大数据工具排名
  5. 从键盘上键入1~7的数字,输出对应星期以及英文缩写
  6. sicilyOJ 09广东省赛重现H Westward Journey Online(线段树)
  7. java代码演示经典哲学家就餐问题,以及解决方案
  8. PV操作经典问题通解
  9. 51单片机简易音乐盒(可切歌)
  10. 软件测试面试题(等待解答)