牛顿开方法的算法及其原理
2016-02-13 21:10
337 查看
【牛顿迭代法】
假设方程 在 附近有一个根,那么用以下迭代式子:
依次计算、、、……,那么序列将无限逼近方程的根。
牛顿迭代法的原理很简单,其实是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交点,看下面的动态图:
【用牛顿迭代法开平方】
【go实现】
[参考文献]
牛顿开方法及其原理 http://www.guokr.com/question/461510/
假设方程 在 附近有一个根,那么用以下迭代式子:
依次计算、、、……,那么序列将无限逼近方程的根。
牛顿迭代法的原理很简单,其实是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交点,看下面的动态图:
【用牛顿迭代法开平方】
【go实现】
package main import ( "fmt" "math" ) func Sqrt(x float64) float64 { pre := 0.0 z := float64(1) for math.Abs(z -pre) > 1e-10 { //修改循环条件,使得当值停止改变(或改变非常小)的时候退出循环。 pre = z z = z - (z*z-x)/(2*z) } return z } func main() { fmt.Println(Sqrt(2)) fmt.Println(math.Sqrt(2)) } 输出结果: 1.4142135623730951 (尽然和math库中的精度一致,可以修改1e-10查看变化) 1.4142135623730951
[参考文献]
牛顿开方法及其原理 http://www.guokr.com/question/461510/
相关文章推荐
- 单例模式的一些理解
- 程序员春节期间如何与人类对话
- Android开发系列(十七):读取assets目录下的数据库文件
- SQL数据库学习,常用语句查询大全
- SQL数据库学习,常用语句查询大全
- storyboard的自动布局
- 我写数据结构排序部分的部分心得
- Linux history命令
- dx11学习笔记-2.用DX画一个三角形
- 计算机视觉公司整理
- 使用Fresco加载图片
- 2015 2月记事(1)
- 主成分分析(Principal components analysis)-最大方差解释
- Linux下文件的三种时间
- leetcode:Compare Version Numbers
- 【C#基础】初相识——初步认识C#
- 从头认识Spring-2.3 注解装配-@autowired(1)-通过属性域注入
- 第二章 Java浮点数精确计算
- PCI总线学习(七)---> PCI扩展rom
- ubuntu和win7双系统时间错误