• 不用函数库求一个数的平方根 (java版)


    一、题目

                编写程序求一个整数的平方根,精确到小数点后三位

    二、解法

            1) 采用 牛顿迭代法。

            2)牛顿迭代法简介

                   假设方程 在  附近有一个根,那么用以下迭代式子:
                                             
           依次计算、……,那么序列将无限逼近方程的根。

                    牛顿迭代法的原理很简单,其实是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交点,看下面的动态图:

                                     

          3)用牛顿迭代法开平方

                       令:                        
                      所以f(x)的一次导是 : 
                      牛顿迭代式:
                                                  

                      随便一个迭代的初始值,例如,代入上面的式子迭代。

                      例如计算,即a=2:
                                    
                                    
                                   

         4)代码

      

    import java.text.DecimalFormat;
    import java.util.Scanner;
    
    /**
     * 求平方根
     */
    public class Sqr {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Scanner scan = new Scanner(System.in);
    
            DecimalFormat df = new DecimalFormat("#.000");
            int sc = scan.nextInt();
            System.out.print(sc + "的算术平方根是:");
            System.out.println(df.format(SQR(sc)));
        }
    
        public static double SQR(int a) {
            double x1 = 1, x2;
            x2 = x1 / 2.0 + a / (2 * x1);//牛顿迭代公式
            while (Math.abs(x2 - x1) > 1e-4) {
                x1 = x2;
                x2 = x1 / 2.0 + a / (2 * x1);
            }
            return x2;
        }
    }
    View Code

      参考链接:

              http://www.guokr.com/question/461510/

              http://blog.csdn.net/guozhenqiang19921021/article/details/51284928

  • 相关阅读:
    计算结余数
    在ng-repeat内Checkbox默认选中
    ASP.NET MVC下使用AngularJs语言(九):日期时间处理与显示
    ASP.NET MVC下使用AngularJs语言(八):显示html
    ASP.NET MVC下使用AngularJs语言(七):Cookie的使用
    ASP.NET MVC下使用AngularJs语言(六):获取下拉列表的value和Text
    ASP.NET MVC下使用AngularJs语言(五):ng-selected
    ASP.NET MVC下使用AngularJs语言(四):$window.alert
    Kafka工作流程
    MySQL 下批量清空某个库下的所有表(库不要删除,保留空库)
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7544593.html
Copyright © 2020-2023  润新知