美文网首页
牛顿迭代法求开方

牛顿迭代法求开方

作者: 如弦 | 来源:发表于2017-04-03 16:08 被阅读803次

如有:f(x) = x2 - 2,求其正根。

曲线与切线的关系:切线是曲线的线性逼近。即,在曲线上某点附近,经过此点的切线,可以看成曲线的近似。

由以上结论,曲线上任意一个点,都可以用切线来近似表示。那如何通过程序求出刚开始提出的方程的根。即求:x2 - 2 = 0 时的解,也就是2的开方。

首先,并不知道曲线与x轴的交点在哪里,因此,需要选择一个迭代的初始值。假设这个值为xn,即在曲线上选取一点,经过这个点做切线,切线与x轴相交于点(xn+1, 0)。切线方程为:f(xn) + f'(xn)(x - xn)。求切线方程的解,多次迭代之后,值会收敛于某个点附近,这个值就是近似结果。

即:xn+1 = xn - f(xn) / f'(xn)
依次求出 x1, x2, x3 ......

求 √2,对曲线方程求导,得 f'(x) = 2x
则 xn+1 = xn - (xn2 - 2) / 2xn

以下为go语言的实现:

func Sqrt(x float64) float64 {
//初始值为1
    z := 1.0
    var result float64
    //只迭代了十次,可改进为计算是否改变或者改变很小时退出循环
    for i := 0; i < 10; i ++ {
        result = (z + x / z) / 2
        z = result
    }
    
    return result
}

func main() {
    fmt.Println(Sqrt(2))
}

输出:1.414213562373095

相关文章

  • 牛顿迭代法求开方

    如有:f(x) = x2 - 2,求其正根。 曲线与切线的关系:切线是曲线的线性逼近。即,在曲线上某点附近,经过此...

  • 1.3求根之牛顿迭代法

    目录 [TOC] 前言 今天我们讲的是具有收敛速度快,能求重根的解方程之法,牛顿迭代法。 (一)牛顿迭代法的分析 ...

  • 牛顿迭代法

    如何用牛顿迭代法求一个数的平方根(立方根)   对于  对于该方程的求解,可以用牛顿迭代法求近似解   设r是f(...

  • 吹水牛顿迭代法

    因为吹水的能力不佳,所以要先打个草稿,今天的吹水过程大概是:1、牛顿迭代法的演绎过程2、牛顿迭代法求n次方根3、牛...

  • 编写用牛顿迭代法求方程根的函数

    问题描述: 编写用牛顿迭代法求方程根的函数。 方程为:a*x^3 + b*x^2 + c*x + d = 0,系数...

  • 每日一问之初识牛顿迭代法(Newton's method)

    什么是牛顿迭代法? 今天在刷 LeetCode 的 sqrt(x) 这道题的时候,看到别人的解法中有使用牛顿迭代法...

  • 牛顿线性逼近求开方

    牛顿法线性逼近计算开方 python Code: 第一步:开方问题转化为求根问题: 第二步:牛顿逼近法原理如下:

  • 牛顿法开根

    牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method)。...

  • 无约束凸优化算法

    本章涉及知识点1、scipy库求解全局最优和局最优2、多元函数的极值求解算法3、牛顿迭代法算法4、牛顿迭代法求解多...

  • C语言 川大复试 笔记

    命令行, 6_11 迭代法平方根e 6_12牛顿法求方程根 6_13二分法求fangchenggen 6_1 最大...

网友评论

      本文标题:牛顿迭代法求开方

      本文链接:https://www.haomeiwen.com/subject/yaqoottx.html