X平方根
アイデア
長方形は、辺a = 1およびb = Xで形成されます。 この長方形の面積はS = a * b = X * 1 = Xです。長方形を正方形に変換してその面積が同じになるようにすると、辺の長さは図の正方形の平方根に等しくなり、Xに等しくなります。
長方形から正方形への変換の各反復は、次のように実行されます。
S = a 0 b 0 ;
現在の四角形の辺の算術平均に等しい1つの辺を持つ新しい四角形が作成されますが、面積は同じです。
S = a 1 b 1 、ここでa 1 =(a 0 + b 0 )/ 2、およびb 1 = S / a 1
S = a 2 b 2 、ここでa 2 =(a 1 + b 1 )/ 2、およびb 2 = S / a 2
...
S = a n b n 、ここでa n =(a n-1 + b n-1 )/ 2、およびb n = S / a n
以下同様に| a n -b n | <例
機能コード
#define EPS 1e-10 float my_sqrt(float x){ float S=x, a=1,b=x; while(fabs(ab)>EPS){ a=(a+b)/2; b = S / a;} return (a+b)/2; }