zoukankan      html  css  js  c++  java
  • 不用函数库求一个数的平方根 (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

  • 相关阅读:
    python生成试题库和界面 (python generate test database and layout)
    python生成数据库(python generate database)
    Go语言基础之流程控制
    Go语言基础之运算符
    Go语言基础之变量和常量
    VS Code配置Go语言开发环境
    Linux安装教程|详细
    安装Go语言及搭建Go语言开发环境
    Go语言
    Django2.0路由匹配path的用法
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7544593.html
Copyright © 2011-2022 走看看