求一个数的平方根—牛顿迭代法
2016-05-09 21:00
169 查看
首先牛顿迭代法的原理如下:
设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y=f(x)的切线L,L的方程为y=f(x0) f'(x0)(x-x0),求出L与x轴交点的横坐标 x1=x0-f(x0)/f'(x0),称x1为r的一次近似值,过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标 x2=x1-f(x1)/f'(x1)称x2为r的二次近似值,重复以上过程,得r的近似值序列{Xn},其中Xn +1=Xn-f(Xn)/f'(Xn),称为r的n+1次近似值.上式称为牛顿迭代公式.
由此可得出用牛顿迭代法求一个数的平方根的更新公式:xn+1=(xn+n/xn)/2。
简单代码如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); float x = 1; while(Math.abs(x*x-n)>0.000001){ x=(x+n/x)/2; } System.out.println(x); } }
相关文章推荐
- 15 个 Android 通用流行框架大全
- 数字 转换成 .千百万
- 全选,反选,删除
- javaweb的负载均衡,tomcat集群和session共享
- AppWidget手把手教你(一步步很明白)
- C++判断字符串是否为变形词
- LintCode:在二叉查找树中插入节点
- iOS学习——NSString属性的strong和copy
- c++作业5
- 在 WinForm 中使用 Direct2D
- Java基础-第4天
- iOS获取UDID问题
- 进制之间换算
- Android学习笔记之Activity的4种启动模式
- NYOJ 67 三角形面积 海伦公式的应用
- Spring 拦截器的使用
- dwr session error
- 配置安装Apache主服务发生错误:"(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager, perh······ "
- c++第五次实验——求和
- PostGreSQL 自动备份脚本(.backup文件格式)