牛頓迭代公式
牛頓迭代法(Newton's method)又稱爲牛頓-拉夫遜(拉弗森)方法(Newton-Raphson method),它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。
加入 f(x)=0 的根爲 r , 假設 是 r 的近似根,過(,f())做切線,與x軸交於(,0),則是比更接近r的近似值,
換項爲,以此類推。。。
爲r的n+1近似值。
用牛頓迭代公式開平法
public static double sqrt(int n){
if(n < 0){
return Double.NaN;
}
double err=1e-15;
double t=n;
//假設 t就是n的開平方,則t-n/t就是計算的誤差,這個誤差再除以t就是計算的誤差百分比,
//這個誤差開始可能大於所要求的的精度,一旦小於所要求的的精度,t就是所求。
while(Math.abs(t-n/t)> err*t){
t=(t*t+n)/(2*t)
}
return t;
}