最近遇到一個題目,就是不使用Math方法去求解一個數的立方根和平方根,搜索了好多,現在記錄下自己掌握的方法。

首先,在編碼之前,我們得熟悉 什么是牛頓迭代法。下面我為大家找了兩處鏈接。大家可以去看一下,然后我再說我的程序編寫,如果只看程序,不熟悉這個算法的人是看不懂的。

下面 我來說說 我所理解的: 經過以上參考 以立方根舉例  我們求a的立方根 首先列式 a=x^3  (a等於x的3次方)  。根據牛頓迭代法 我們把它轉成 f(x) = x^3-a;  那么 f'(x) =3*x^2;

則  x1 = x0-f(x0)/f'(x0);  (我們求次方就是:x1 = x0 -(x0^3-a)/(3*x0^2); 化簡可得 :x1 = (2*x0+a/x0^2)/3。)  x0怎么來的呢? 我們可以先假設一個x0 = a; 然后計算得出的x1-x0是否小到極致。例如 x1-x0<0.0000000001時,x1就是那個立方根。

我來寫一個總的例子: 求6的平方根

1.  6 = x^3;

2. f(x) = x^3-6;

3.f'(x) = 3*x^2;

4.假設答案是x0=6;

5 . 求一波 x1 =  x0-f(x0)/f'(x0);  下一步:x1 = x0 -(x0^3-a)/(3*x0^2);下一步:x1 = (2*x0+a/x0^2)/3;(這一步式子我用在了代碼中)

6. 解得 x1 = 4.055555555555555;(小數位多吧,用計算機算又不是你算)

7.剛才猜的答案x0是6   ,x0-x1>0.0000000001 (精度自己設) 了, 不夠准確啊這答案,怎么辦 木有事

8. 讓 x0=4.055555555555555; 再求一遍x1

9。此時 求得x1=2.825302502727911; x0-x1>0.0000000001  還是不准確 繼續求

10。。。。不斷求  終於 x0-x1<0.0000000001,結束 x1就是最終答案。

說了這么多 上代碼:

import java.util.Scanner;

/*

* 牛頓迭代法

*

* 求解立方根

*計算一個數字的立方根,不使用Math方法

*/

public class ClassTest09 {

public static void main(String[] args) {

System.out.println("請輸入一個數字");

Scanner sc= new Scanner(System.in);

double a= sc.nextDouble();

double num =getLiFangGen(a);

System.out.println(a+"的立方根為:"+num);

double num1 = getPingFangGen(a);

System.out.println(a+"的平方根為:"+num1);

}

private static double getLiFangGen(double num){

if(num==0){

return 0;

}

double num1 = num;

double num2  = ((2*num1)+(num/(num1*num1)))/3;

System.out.println(num2);

while(num1-num2>0.0000001  || num1-num2

num1 = num2;

num2  = ((2*num1)+(num/(num1*num1)))/3;

System.out.println(num2);

}

return num2;

}

private static double getPingFangGen(double num){

if(num==0){

return 0;

}

if(num<0){

System.out.println(num+"沒有平方根");

System.exit(0);

}

double num1 = num;

double num2 = (num1+(num/num1))/2;

while(num1-num2>0.0000001){

num1 = num2;

num2 = (num1+(num/num1))/2;

}

return num2;

}

java求解立方根_java 利用牛頓迭代法求平方根和立方根,不使用Math類相关推荐

  1. java bigdecimal 开方_JAVA BigDecimal使用牛顿迭代法计算平方根(开方)

    Java中虽然可以用Math.sqrt获得某值的平方根,但是该值必须是double类型的.可是有些项目对数值精度要求比较高,我们一般会用BigDecimal来存储,BigDecimal并不提供计算平方 ...

  2. 牛顿迭代法求平方根、立方根

    牛顿迭代公式 平方根迭代公式:a(n+1)=( a(n) + num/a(n) )/2,a(0) 初始化为1: 立方根迭代公式:a(n+1)=( 2a(n) + num/( (a(n))^2 ) )/ ...

  3. 牛顿迭代法求平方根、立方根(计算一个数字的平方根、立方根,不使用库函数)

    求Y的平方根 公式 C++代码 #include <iostream> #include <cmath> using namespace std; double getSqua ...

  4. python求解立方根,python环境下使用牛顿迭代法求任意实数立方根

    https://images1.tqwba.com/20200918/xx0b50i53j4 推导过程如下: 一般牛顿迭代法的图名都叫做Newton-Raphson.也就是牛顿-拉弗森法 二.使用牛顿 ...

  5. 141. Sqrt(x)【牛顿迭代法求平方根 by java】

    Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...

  6. 牛顿迭代法求平方根原理

    牛顿迭代法可以求解n次方的根,但这里只讨论用它来求平方根. 牛顿迭代法求平方根过程 Java代码实现 /*** 求一个数的平方根* @param number* @return*/public sta ...

  7. 【算法】牛顿迭代法求平方根的原理和误差分析

    前言 在<算法(第四版)>中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和 ...

  8. 迭代公式求平方根c语言程序设计,迭代法求平方根C语言实验报告

    与<迭代法求平方根C语言实验报告>相关的范文 西安交通大学实验报告 课程_ c++ __ 实验名称_迭代公式求平方根_ 第1页 共2页 系 别__ 土木工程 ____ 实 验 日 期 20 ...

  9. 平方根和立方根怎么用计算机,用计算器探究平方根和立方根

    用计算器探究平方根和立方根 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 用计算器探究平方根和立方根人教版<义务教育教科书· ...

最新文章

  1. WPF 3D中多个模型如何设置某一个在最前?
  2. 网易云信入选《2021 年浙江省首版次软件产品应用推广指导目录》
  3. Nacos与Eureka的区别有哪些?
  4. 【qduoj - 1121】小明的贪心题(Dijkstra最短路 + 最短路条数)
  5. 字符串上的简单动态规划
  6. mysql docker还是rds_容器化RDS:计算存储分离还是本地存储?
  7. for相关 java_用java编写一个程序,求2到100之间的偶数和(使用for循环)
  8. 2018.12.31 NOIP训练 czy的后宫5(树形dp)
  9. VS2008文档自动生成
  10. 文本前后空格去除工具
  11. 判断一个树是否是平衡二叉树
  12. java基于JSP+Servlet的员工绩效考核系统
  13. t-SNE非线性降维
  14. android电商平台,基于Android的电商平台通用客户端的设计与实现
  15. mysql 分组统计 及 统计结果横向展示
  16. Nature子刊:AI技术从零开始设计具有生物活性的蛋白质
  17. 视频编解码标准情况概述
  18. 玩一玩Android下载框架
  19. 【路径规划】基于蚁群算法求解运钞车路径规划VRPSD问题matlab代码
  20. 【手把手带你Godot游戏开发】出道即巅峰,先做个盈利千万的小项目

热门文章

  1. 华为P40的博客营销
  2. MATLAB 脚本编程的常用快捷键的整理
  3. 【K8S系列】第十三讲:Ingress详解
  4. IT工程师怎样预防、治好颈椎腰椎伤肾等职业病
  5. Python4要来了?快来看看Python之父怎么说
  6. Python中的len函数详细案例
  7. 线性回归之随机梯度下降法(Stochastic Gradient Descent,SGD)
  8. 各大漏洞平台及SRC的区别和如何批量刷漏洞
  9. [生存志] 第131节 纷纷汉家天子事
  10. 从零实现一个在线相亲APP(缓解相亲尴尬的神器)