牛顿迭代法求根

1. 牛顿迭代法 - 切线是曲线的线性逼近

曲线 f(x) 上随机选择一点(Xn,f(Xn)) ,求出切线方程;  切线方程与x轴相交的点作为Xn+1进行下一轮循环;直到Xn+1 无限逼近  f(x)=0; 得到根。

根据上述可得:

切线   y-f(Xn) = f ' (Xn) (x -Xn);    ->  当 y=0 时,x =Xn+1 ;   Xn+1 = Xn - f(Xn)/ f ' (Xn);


应用到 求根方程中 :

f(x) = x^2 - n;

那么  Xn+1 = Xn - (Xn^2-n)/2Xn ;


2. java实现代码

public static double sqrt( double n) {

if (n < 0) return  Double.NaN;

int  x = n; // 设置 起始 Xn

        int err = 1e-15 ; // 设置 误差范围

while( (x - n/x) > err) {

x = x/2 + n/2x ; // x = (x+ n/x)/2;

        }

return x;

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值