牛顿迭代法-求平方根

article/2025/10/1 9:28:47

牛顿迭代法
求出根号a的近似值:首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了。 
例如,我想求根号2等于多少。假如我猜测的结果为4,虽然错的离谱,但你可以看到使用牛顿迭代法后这个值很快就趋近于根号2了: 
( 4 + 2/4 ) / 2 = 2.25 
( 2.25 + 2/2.25 ) / 2 = 1.56944.. 
( 1.56944..+ 2/1.56944..) / 2 = 1.42189.. 
( 1.42189..+ 2/1.42189..) / 2 = 1.41423.. 
…. 
 

 

 


这种算法的原理很简单,我们仅仅是不断用(x,f(x))的切线来逼近方程x^2-a=0的根。根号a实际上就是x^2-a=0的一个正实根,这个函数的导数是2x。也就是说,函数上任一点(x,f(x))处的切线斜率是2x。那么,x-f(x)/(2x)就是一个比x更接近的近似值。代入 f(x)=x^2-a得到x-(x^2-a)/(2x),也就是(x+a/x)/2。 
 

float my_sqrt(float number) {
    float new_guess;
    float last_guess;
    
    if (number < 0) {
        printf("Cannot compute the square root of a negative number!\n");
        return -1;
    }
    
    new_guess = 1;
    do {
        last_guess = new_guess;
        new_guess = (last_guess + number / last_guess) / 2;
        printf("%.15e\n", new_guess);
    } while (new_guess != last_guess);
    
    return new_guess;
}

 


http://chatgpt.dhexx.cn/article/iFClQ9v7.shtml

相关文章

迭代法求平方根-C

迭代法求a的平方根的近似值&#xff0c;计算公式如下&#xff1a; 迭代是重复反馈过程的活动&#xff0c;目的是为了逼近所需目标或结果。每次对过程的重复称为一次“迭代”&#xff0c;而每一次迭代得到的结果会作为下一次迭代的初始值。 算法&#xff1a;先给定一个假设的平…

用迭代法求某数a的平方根

今天晚上笔试题目最后一题很简单&#xff0c;可是自己做不出 &#xff0c;就是不用库函数&#xff0c;求一个浮点数的平方根。 立马想到用物理法&#xff0c;比如正方形的面积法等&#xff0c;可是求解出不出&#xff0c;然后就绕在里面了。归根到底还是平时的知识储备太少了&…

Java基础——运行时异常和非运行时异常

文章目录 Java中异常机制的体系结构Error&#xff08;错误&#xff09;Exception&#xff08;异常&#xff09;运行时异常和非运行时异常的区别结束 Java中异常机制的体系结构 在Java中&#xff0c;万物皆对象&#xff0c;异常也不例外。 Exception&#xff08;异常&#xff0…

Java编译时异常与运行时异常的区别

Java的异常可以分为编译异常和运行异常&#xff0c;其主要区别&#xff1a; 编译异常要求程序员必须处理&#xff08;捕获或者抛出&#xff09;&#xff0c;不然没法通过编译。 而运行异常可以不处理。 这应该是纸面最明显的区别了&#xff0c;我认为更重要的区别是在处理机…

运行时异常与非运行时异常有什么区别?

运行时异常与非运行时异常有什么区别&#xff1f; 运行时异常 RuntimeException 又称为非检查异常 uncheck exception。是 Exception 的子类。 在 Java 中&#xff0c;异常可以分为两种。Error 和 Exception&#xff0c;它们的父类是 Throwable。 Error 一些底层的类出错&…

杂谈——运行时异常和普通异常有什么区别

说到异常&#xff0c;大家都熟悉&#xff0c;只要程序出错了&#xff0c;那么肯定会说&#xff1a;“哎呀&#xff0c;我的程序出错啦~它抛出异常啦”。 但单单以“异常”的名称来称呼它们&#xff0c;未免也太粗糙了。我们毕竟是一个精致的程序员&#xff0c;当然得知道他们到…

常见的编译时异常和运行时异常

常见的编译时异常和运行是异常 1、粉红色的是编译时异常 2、绿色的异常是运行时异常 3、声明为Error的&#xff0c;则属于严重错误&#xff0c;如系统崩溃、虚拟机错误、动态链接失败等&#xff0c;这些错误无法恢复或者不可能捕捉&#xff0c;将导致应用程序中断&#xff0c;…

浅谈Java异常及其编译时异常和运行时异常的区别

异常是程序编码和运行时经常发生的事件&#xff0c;了解异常有助于我们提高代码质量&#xff0c;增强系统的健壮性&#xff0c;这里总结一下Java编程中的异常、以及Java编译时异常和运行时异常的区别&#xff0c;并列举几种常见的异常&#xff0c;以供参考学习。 一、什么是异…

Java 运行时异常和非运行时异常

异常类型分为两类&#xff1a;运行时异常和非运行时异常。 一、运行时异常&#xff1a; 运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;一般不需要程序员进行捕获。 例如&#xff1a;NullPointException&#xff0c;IndexOutOfBoundsException。如果不对该…

Java-异常处理(编译时异常、运行时异常及处理机制,自定义异常)

个人简介 大家好&#xff0c;我是翰慧腾。一名正在努力学JAVA的大一小白&#xff0c;本文章为初学的笔记&#xff0c;希望各位多多指教。&#x1f499;欢迎点赞收藏留言&#x1f49c;你要批评指点四周风景&#xff0c;首先你要爬上屋顶&#x1f9e1; 一、异常 概述&#xff1a…

通俗理解运行时异常和非运行时异常(一般异常)

一&#xff0c;异常的概念 Java异常类层次结构图&#xff1a; Throwable&#xff1a; 有两个重要的子类&#xff1a;Exception&#xff08;异常&#xff09;和 Error&#xff08;错误&#xff09;&#xff0c;二者都是 Java 异常处理的重要子类&#xff0c;各自都包含大量子类…

运行时异常与检查异常区别

首先&#xff0c;思考一个问题&#xff0c;看下面三个代码&#xff0c;当抛出异常时&#xff0c;后面的代码还会运行吗&#xff0c;是否要在异常后加上return语句&#xff1f; //代码1 public static void test() throws Exception {throw new Exception("参数越界"…

编译时异常与运行时异常

在实际开发中&#xff0c;经常会在程序编译时产生一些异常&#xff0c;必须要对这些异常进行处理&#xff0c;这种异常称为编译时异常&#xff0c;也称为checked异常。另外&#xff0c;还有一种异常是在程序运行时产生的&#xff0c;这种异常即使不编写异常处理代码&#xff0c…

异常Exception 和 运行时异常RuntimeException

文章目录 概念 概念 Java中的所有异常都来自顶级父类Throwable。 Throwable下有两个子类Exception和Error。 Error是程序无法处理的错误&#xff0c;一旦出现这个错误&#xff0c;则程序将被迫停止运行。Exception不会导致程序停止&#xff0c;又分为两个部分RunTimeExceptio…

运行时异常与检查异常

Java把异常当做对象来处理&#xff0c;并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类&#xff1a;错误Error和异常Exception&#xff0c;Java异常体系结构如下图所示&#xff1a; 1.Throwable Throwable类是所有异常或错误的超类&#xff0…

运行时异常和编译异常

1.概念&#xff1a; Java中将程序执行中发生的不正常情况称为异常(Exception) 2.分类 Error(错误)&#xff1a;JVM无法解决的严重问题&#xff0c;程序会崩溃&#xff0c;比如JVM系统内部错误、资源耗尽等Exception&#xff1a;因编程错误等外在因素导致的一般性问题&#xff0…

Java Exception

Java Exception ####分类 Types of Exception There are mainly two types of exceptions: checked and unchecked where error is considered as unchecked exception. The sun microsystem says there are three types of exceptions: Checked Exception Unchecked Exce…

Java运行时异常和非运行时异常

1.Java异常机制 Java把异常当做对象来处理&#xff0c;并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类&#xff1a;错误Error和异常Exception&#xff0c;Java异常体系结构如下图所示&#xff1a; 图片来源&#xff1a;http://blog.csdn.net/w…

jdk和jre的区别还有maven

1.关于JDK的安装和配置问题 jdk我已经安装了(版本是1.8._60的--->并且完成相关的环境的配置) 还有环境的变量都配置好了的(java_home path 都配置好了的) JDK与JRE的区别 JRE&#xff1a; Java Runtime Environment JRE可以支撑Java程序的运行&#xff0c;包括JVM虚拟机&…

jdk与jre的区别,作用详解!

jdk与jre是Java开发和运行工具&#xff01; jdk包含有jre&#xff0c;但是jre也可以单独安装 下图为jdk目录下的jre 在安装jdk分为两个步骤&#xff0c;我们是经常会将jdk与jre一起安装&#xff0c;如果混淆两个概念建议分开安装。 JRE是Java Runtime Environment的缩写&…