首先让我们回顾下上节课讲的,用牛顿法计算√2的内容:

简单来说,牛顿法从x0=1不断向后计算逼近√2的值,而刚开始计算的精度是1,随着牛顿法的逼近(共log2d个循环),就能使得√2逼近值的精度达到d。在逼近过程中,精度的变化为Quadratic convergence二次收敛趋势(即1,2,4,6,....),为了证明这个,讲师给出了下图内容:

假设xn = √a (1+εn) 且εn随着n增加,不断趋于0,本质上来说就是xn = √a,加了(1+εn)是为了方便我们证明二次收敛的存在。之后根据牛顿法xi+1 = (xi + a/xi) /2对其进行xn+1的计算个,我们便能得到εn+1= εn/ 2(1+εn),而由于εn随着n增加,不断趋于0,所以(1+εn)本质为1,那么最后很容易就看出εn+1是跟εn成二次关系。

一、高精度乘法

另外上节课我们还讲了如何进行高精度乘法,这节课,讲师将它们总结并加以补充如下图所示:

以上五种方法,从上到下,时间复杂度逐渐减少,值得提到的就是,Toom-Cook方法本质跟Karatsuba方法一样的,只不过前者在数的拆分上多了一个而已,即前者为x0,x1,x2,而后者为x0,x1

二、高精度除法

问:如果我们想要计算一个关于a/b的高精度结果,该怎么做?

答:我们先计算R/b,然后对它结果向下取整,然后再用之前高精度乘法来乘a就好了。记住这里的R是一个非常大的值,特别的是R很容易除别人,例如R=2k这样的。

问:那请问R/b怎么计算

答:用牛顿法,具体过程如下图所示:

三、时间复杂度

问:高精度除法的时间复杂度是多少?

答,是Ο(log2n * nα),也可近似于Ο(nα),具体计算如下:

问:高精度乘法的时间复杂度是多少?

答,之前在第一部分就有不同方法下的时间复杂度,但总结来说就是Ο(nα) α≥1

问:高精度计算平方跟的时间复杂度是多少?

答:如下图所示,本质就是不断使用牛顿法配合高精度乘除法使用,结果近似为Ο(nα)。

有上面三个问题我们能得到:在时间复杂度上,高精度乘法 ≡ 高精度除法 ≡ 高精度求平方根 ≡ Ο(nα)。注意‘≡’为本质相同的意思,不代表完全相同,还是有略微差别的。

[MIT6.006] 12. Square Roots, Newton's Method 平方根,牛顿法的更多相关文章

  1. Square roots

    Loops are often used in programs that compute numerical results by starting with an approximate answ ...

  2. 牛顿法(Newton's Method)

    Newton's Method 在求最优解时,前面很多地方都用梯度下降(Gradient Descent)的方法,但由于最优步长很难确定,可能会出现总是在最优解附近徘徊的情况,致使最优解的搜索过程很缓 ...

  3. 牛顿迭代法(Newton's Method)

    牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.但是,这一方法在牛顿生前并未公开发表. 牛顿法的作用是使用迭代的方法来求解函数方程的根. ...

  4. 牛顿方法(Newton's Method)

    在讲义<线性回归.梯度下降>和<逻辑回归>中我们提到可以用梯度下降或梯度上升的方式求解θ.在本文中将讲解另一种求解θ的方法:牛顿方法(Newton's method). 牛顿方 ...

  5. Newton's Method

    在求最优解时,前面很多地方都用梯度下降(Gradient Descent)的方法,但由于最优步长很难确定,可能会出现总是在最优解附近徘徊的情况,致使最优解的搜索过程很缓慢.牛顿法(Newton's M ...

  6. UVA 1426 - Discrete Square Roots(数论)

    UVA 1426 - Discrete Square Roots 题目链接 题意:给定X, N. R.要求r2≡x (mod n) (1 <= r < n)的全部解.R为一个已知解 思路: ...

  7. Jacobian矩阵、Hessian矩阵和Newton's method

    在寻找极大极小值的过程中,有一个经典的算法叫做Newton's method,在学习Newton's method的过程中,会引入两个矩阵,使得理解的难度增大,下面就对这个问题进行描述. 1, Jac ...

  8. 【cs229-Lecture4】Newton’s method

    之前我们在求Logistic回归时,用的是梯度上升算法,也就是要使得似然函数最大化,利用梯度上升算法,不断的迭代.这节课引出牛顿方法,它的作用和梯度上升算法的一样的,不同的是牛顿方法所需的迭代次数更少 ...

  9. 牛顿迭代法(Newton's Method)

    牛顿迭代法(Newton's Method) 简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出.牛顿法的作用是使用迭代的方法来求解函数方程的根.简单地说,牛顿法就是不断求取切线的过程. ...

随机推荐

  1. Java结构体系

  2. 多测师讲解常用的测试工具分为10类_高级讲师肖sir

    我们将常用的测试工具分为10类. 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app ...

  3. Spring Boot 系列:最新版优雅停机详解

    爱生活,爱编码,本文已收录架构技术专栏关注这个喜欢分享的地方. 开源项目: 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjiankethree/cub ...

  4. MeteoInfoLab脚本示例:MODIS Sinusoidal投影HDF数据

    MODIS卫星很多陆面数据都是Sinusoidal投影,数据被分为一个个10*10度(赤道地区)的瓦片(http://modis-land.gsfc.nasa.gov/MODLAND_grid.htm ...

  5. jsoncpp笔记

    Json Json是一种轻量级数据交换格式,可以表示数字,字符串,布尔值,null,数组,键值对: { "encoding" : "UTF-8", " ...

  6. 源生代码和H5的交互 android:

    1: 默认的事情: Android 通过内置的UI控件WebView来加载网页.         网页是用一个网络地址来表示的:         其整个使用方法很简单如下:(android不关心实际的 ...

  7. Docker-V 详解

      1. 作用 挂载宿主机的一个目录. 2. 案例 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:   # docker run -it -v ...

  8. nginx优化:配置gzip压缩页面提高访问速度(nginx1.18.0)

    一,为什么nginx要使用gzip 1,压缩的作用: 页面使用gzip压缩之后, 页面大小可以压缩到原来的1/7左右, 传输速度和页面打开时间都可以大幅度提高, 有利于用户访问页面体验的提升 2,Ng ...

  9. 华为路由器配置OSPF

    OSPF是什么 OSPF(Open Shortest Pass First,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议. 使用场景:适用于运营商.政府机构等大型网络中多节点 ...

  10. Linux命令获得帮助

    在Linux中获得帮助 查帮助的思路 whatis CMD mandb type CMD 如果内部:help CMD ; man bash 如果外部:CMD --help | -h 概述 获取帮助的能 ...