平方根-泰勒展开式求法

平方根求法

Question Description:

已知: x2=N x 2 = N , 求 x x
问题转化为 f(x)=Nx2=0 f ( x ) = N − x 2 = 0 ,解 x x


f(x)的泰勒展开式

  • f(x) f ( x ) x=x0 x = x 0 处展开:
    f(x)=n=0f(n)(x0)n!×(xx0)n f ( x ) = ∑ n = 0 ∞ f ( n ) ( x 0 ) n ! × ( x − x 0 ) n

    f(x)=f(x0)+f(x0)(xx0)+12f(x0)(xx0)2+O(x2) f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + 1 2 f ′ ′ ( x 0 ) ( x − x 0 ) 2 + O ( x 2 )
  • 可得:
    f(x)=Nx2=Nx202x0(xx0)+O(x) f ( x ) = N − x 2 = N − x 0 2 − 2 x 0 ( x − x 0 ) + O ( x )
  • f(x)=0 f ( x ) = 0 ,得:
    x=12(x0+N/x0) x = 1 2 ( x 0 + N / x 0 )

code

// c++ code
double ans=1, pre=0;
while(abs(ans-pre)>1e-6){
    pre=ans;
    ans=(ans+x/ans)/2;
}

你可能感兴趣的:(数学)