牛顿迭代法求开方

简介: 牛顿迭代法求开方

大学课程中有一门数值分析的课程,里面有牛顿迭代法的介绍。

这里说下牛顿迭代法的一种应用,就是求一个数的开方。


产生背景:

多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数640.png泰勒级数的前面几项来寻找方程640.png的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程640.png的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。


高等数学原理:

640.jpg

举个例子:


640.png

640.png这样可以使用牛顿迭代法进行求解


原理如下:

640.png


实现待代码如下:


public class Sqrt {
    public static void main(String[] args) {
        double number = 78.0;
        double root = sqrt(number);
        System.out.println(root);
    }
    public static double sqrt(double number) {
        if (number < 0) {
            return Double.NaN;
        } else {
            double zero = 1e-6;
            double root = number;
            while (Math.abs(number - root * root) > zero) {
                root = (root + number / root) / 2.0;
            }
            return root;
        }
    }
}


相关文章
|
6月前
|
机器学习/深度学习 算法 Serverless
利用无穷级数逼近计算幂运算与开根号——Python实现
使用泰勒级数逼近法,本文介绍了如何用Python计算特殊幂运算,包括分数次幂和开根号。通过定义辅助函数,如`exp`、`getN_minus_n`、`multi`和`getnum`,实现了计算任意实数次幂的功能。实验结果显示,算法能有效计算不同情况下的幂运算,例如`0.09^2`、`1^2`、`0.25^2`、`0.09^(0.5)`、`1^(0.5)`和`0.25^(0.5)`。虽然精度可能有限,但可通过调整迭代次数平衡精度与计算速度。
迭代法解决递推问题:数列和,sinx,ex的近似值
迭代法解决递推问题:数列和,sinx,ex的近似值
125 0
|
算法
绝对值不等式(贪心)
复习acwing算法基础课的内容,本篇为讲解基础算法:贪心——绝对值不等式,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
135 0
绝对值不等式(贪心)
每日一题1021:迭代法求平方根
题目描述: 用迭代法求 平方根 公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
165 0
|
算法 C语言 C++
【算法练习】迭代法求平方根
【算法练习】迭代法求平方根
【算法练习】迭代法求平方根
数学:简单理解指数、对数、乘方、开方
数学:简单理解指数、对数、乘方、开方
705 0
数学:简单理解指数、对数、乘方、开方
|
C语言
【C语言程序设计】~求π的近似值
【C语言程序设计】~求π的近似值
291 0
|
机器学习/深度学习
【组合数学】递推方程 ( 非齐次部分是指数的情况 | 非齐次部分是指数的情况示例 )
【组合数学】递推方程 ( 非齐次部分是指数的情况 | 非齐次部分是指数的情况示例 )
147 0