其实牛顿迭代法就是微积分,通过不断地迭代不断接近最终值,微积分是什么了?其实说到本质就是对一个问题进行无限的拆分,其最后一个小问题特别简单,基本就是无脑问题,
牛顿法实现递归:
n是一个被开方数
n=i*i,i就是被开方数
其实n/i==i成立,那么i就是开方数了
但是一般一次做不到,要多次慢慢来做
通过递归,其实重点是
(n/i+i)/2这个值更接近最终的开方根,就是通过不断计算这个,不断迭代,最后接近于i,接近于开方,
其实这就是微积分的思想,就是把一个事物进行不断地拆分,这就是数学上的微积分,这也就是微积分这么强大的原因
代码实现:
package com.fan.suanfati;
import java.util.Scanner;
/**
* 牛顿法实现递归:
* n是一个被开方数
* n=i*i,i就是被开方数
* 其实n/i==i成立,那么i就是开方数了
* 但是一般一次做不到,要多次慢慢来做
* 通过递归,其实重点是
* (n/i+i)/2这个值更接近最终的开方根,就是通过不断计算这个,不断迭代,最后接近于i,接近于开方,
* 其实这就是微积分的思想,就是把一个事物进行不断地拆分,这就是数学上的微积分,这也就是微积分这么强大的原因
*
*/
public class test08 {
public static void main(String[] args) {
System.out.println("请输入要开方的数字:");
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
int v = (int) niuDunDieDai(i, i);
System.out.println(v);
}
/**
*
* @param i 开方后的数字
* @param n 一个本身的数字
* @return
*/
public static double niuDunDieDai(double i,double n){
double result=(n/i+i)/2;
if (result==i){
return i;
}else {
return niuDunDieDai(result,n);
}
}
}