目次         

平方根の計算方法

 

平方根の値を計算する代表的な手順として「開平法」や「ニュートン法」がある。このページでは平方根が既知の近い数値を使用して計算する数式を作成する。また算術調和平均を使用して計算する手順を示す。更に平方根の近似分数を与える式や平方数による式を作成する。


aを求める場合、√bの値が既知であるaに近い数bを使用する。

(a+b)2-(a-b)2 = 4ab であるので a = {(a+b)2-(a-b)2}/(4b) = (a+b)2{1-(a-b)2/(a+b)2}/(4b) つまり

 

1に近い数の平方根を求める級数式は、「連分数展開 その他の関数の展開」の式より

    (0=<1+1/x)

x-xにすると

    (0=<1-1/x)

(連分数を使用せずにこの式を導く方法は、当ページの後の「簡単な方法」を参照)

 

従って√a級数による式は

 

a=2,b=12=1,c=32=9    2=(3/2){1-1/18 -1/(18*34)  -1/(18*34*1154)-}      ,   1154= 342-2
a=3,b=22=4,c=72=49   3=(7/4){1-1/98 -1/(98*194) -1/(98*194*37634)-}    ,  37634=1942-2
a=5,b=22=4,c=92=81   5=(9/4){1-1/162-1/(162*322)-1/(162*322*103682)-}  , 103682=3222-2

実際の値は以下の通り。[ ]内は正しい桁数を示す。

2 : (3/2){1-1/18 -1/(18*34)  -1/(18*34*1154)}     = 1.41421356237468991062   [12]
3 : (7/4){1-1/98 -1/(98*194) -1/(98*194*37634)}   = 1.73205080756887729525   [18]
5 : (9/4){1-1/162-1/(162*322)-1/(162*322*103682)} = 2.23606797749978969644   [20]

次に乗積による式を求める。

 

(2x-1)2-1 = 4x2-4x であるので 1-1/x = {(2x-1)2-1}/(4x2) = (2x-1)2{1-1/(2x-1)2}/(2x)2 つまり

 

この式を繰り返し適用すれば

1<xの場合は右端のルート部分の極限は1であるから

 

従って√a乗積による式は

 

a=2,b=12=1,c=32=9    2=(3/2)(1-1/18) (1-1/578)  (1-1/665858)    ,    665858=2(  578-1)2
a=3,b=22=4,c=72=49   3=(7/4)(1-1/98) (1-1/18818)(1-1/708158978), 708158978=2(18818-1)2
a=5,b=22=4,c=92=81   5=(9/4)(1-1/162)(1-1/51842)(1-1/5374978562),5374978562=2(51842-1)2

実際の値は以下の通り。[ ]内は正しい桁数を示す。

2 : (3/2)(1-1/18) (1-1/578)  (1-1/665858)     = 1.41421356237468991062   [12]
3 : (7/4)(1-1/98) (1-1/18818)(1-1/708158978)  = 1.73205080756887729525   [18]
5 : (9/4)(1-1/162)(1-1/51842)(1-1/5374978562) = 2.23606797749978969644   [20]

級数による式と乗積による式は同じ値になる。


連分数による式は「連分数展開 その他の関数の展開」の式より

    (0=<1+1/x)

 

従って√a連分数による式は

    

 

a=2,b=12=1,c=32=9    2=(3/2){1-1/( 18- 18/( 35- 34/(  1155-)))}  ,   1155= 342-1
a=3,b=22=4,c=72=49   3=(7/4){1-1/( 98- 98/(195-194/( 37635-)))}  ,  37635=1942-1
a=5,b=22=4,c=92=81   5=(9/4){1-1/(162-162/(323-322/(103683-)))}  , 103683=3222-1

実際の値は以下の通り。[ ]内は正しい桁数を示す。

2 : (3/2){1-1/( 18- 18/( 35- 34/(  1155)))} = 1.41421356237468991062   [12]
3 : (7/4){1-1/( 98- 98/(195-194/( 37635)))} = 1.73205080756887729525   [18]
5 : (9/4){1-1/(162-162/(323-322/(103683)))} = 2.23606797749978969644   [20]

連分数による式も同じ値となる。


更にこれらの三式の値は、以下のニュートン法による値に等しい。√3の例では

 

a=3 , x0=7/4
x1=(x0+a/x0)/2=97/56
x2=(x1+a/x1)/2=18817/10864
x3=(x2+a/x2)/2=708158977/408855776      
      1.73205080756887729525   [18]

 

abの算術平均と調和平均を繰り返した極限は、幾何平均の√(ab)である事を利用して平方根を求める。

算術平均(Arithmetic mean) : A=(a+b)/2

調和平均(Harmonic   mean) : H=2/(1/a+1/b) , H=2ab/(a+b)

幾何平均(Geometric  mean) : G=(ab)      , AH=ab

 

   (bは√bの値が既知であるaに近い数)を利用するケース。

 

a=2:h=1:for k=1 to 4:aa=a:a=(a+h)/2:h=2/(1/aa+1/h):?a:?h:next:?2^0.5

 1.5
 1.3333333333333333333333333
 1.4166666666666666666666666
 1.4117647058823529411764705
 1.4142156862745098039215686
 1.4142114384748700173310225
 1.4142135623746899106262955
 1.4142135623715001869770836
 1.4142135623730950488016887

a=3:h=2^2:for k=1 to 4:aa=a:a=(a+h)/2:h=2/(1/aa+1/h):?a/2:?h/2:next:?3^0.5

 1.75
 1.7142857142857142857142857
 1.7321428571428571428571428
 1.7319587628865979381443298
 1.7320508100147275405007363
 1.7320508051230270500079715
 1.7320508075688772952543539
 1.7320508075688772918005387
 1.7320508075688772935274463

a=5:h=2^2:for k=1 to 4:aa=a:a=(a+h)/2:h=2/(1/aa+1/h):?a/2:?h/2:next:?5^0.5

 2.25
 2.2222222222222222222222222
 2.2361111111111111111111111
 2.2360248447204968944099378
 2.2360679779158040027605244
 2.2360679770837753901352211
 2.2360679774997896964478728
 2.2360679774997896963704745
 2.2360679774997896964091736


   aを互いに近い二つの数値の積に分解するケース。

 

a=2:h=3:for k=1 to 4:aa=a:a=(a+h)/2:h=2/(1/aa+1/h):?a:?h:next:?6^0.5

 2.5
 2.4
 2.45
 2.4489795918367346938775510
 2.4494897959183673469387755
 2.4494896896479900020828993
 2.4494897427831786745108374
 2.4494897427831775218837306
 2.4494897427831780981972840


実際の計算では

2 = (50)/5 , 50=72+1          6 = (24)/2 , 24=52-1

3 = (48)/4 , 48=72-1          7 = (63)/3 , 63=82-1

5 = (80)/4 , 80=92-1               :

と変形してから求めると、より正確な値になる。以下では2の平方根(2)の値を計算する。

 

   の近似式を使用する方法。

 

a=50,b=72=49,c=992   2=(50)/5{99/(2*7*5)}{1-1/(2*992)}=(99-1/198)/70=19601/13860

                        =1.414213564213564

 


算術調和平均を使用する方法。

 

2を互いに近い二つの数値の積に分解すると、5*107*7を利用して10/77/52=(10/7)(7/5)となる。

  算術平均           調和平均            算術平均

(10/7+7/5)/2      2/(5/7+7/10)        (140/99+99/70)/2

=99/70            =140/99             =19601/13860=1.414213564213564

 

両平均の式が左右対称になるので、確認を行いやすい。

 

どちらも9桁の正しい数字が求まっている。


簡単な平方根の近似式

 

連分数による式の -2c/(4c-1-) は、cが大きい場合は-1/2と見なせるからである。

 

a= 2,b=12= 1,c= 32=   9   2( 3/ 2)(1-1/   17.5)=1.414285714285714   [ 5]
a=50,b=72=49,c=992=9801   2(99/70)(1-1/19601.5)=1.414213562373141   [13]

精度が良い平方根の近似式

 

連分数による式を基にして作成している。

 

a= 2,b=12= 1,c= 32=   9,u=   35,v=      1154
   2( 3/ 2){ 1 - (2/(352-1)) (35+1154/(11542-1)) }= 1.41421356237309504999   [18]
a=50,b=72=49,c=992=9801,u=39203,v=1536796802
   2(99/70){ 1 - (2/(392032-1)) (39203+1536796802/(15367968022-1)) }
                  =1.414213562373095048801688724209698078569671875376948073391   [55]


平方根の近似分数を与える式を求める。

 

見やすさのために乗積による式

2c4cに変更すると

 

以下はこの式の部分積を考える。上記式の範囲で近似すると

 

a=a/a により分子と分母を入れ替えると

従って

ある( )内の値をdとすると、その右側の( )内の値はd2-2となっている。

 


一般化すると

   (絶対値| |は無くても同じ)

 

近似分数を具体的に求める。

2の値は

a=2,b=12=1,d1=6     62-2=34, 342-2=1154, 11542-2=1331714, 13317142-2=1773462177794
8*6/34=24/17                     =1.41176470588235294117647058
8*6*34/1154=816/577              =1.41421143847487001733102253
8*6*34*1154/1331714=941664/665857=1.41421356237150018697708366
8*6*34*1154*1331714/1773462177794=1254027132096/886731088897
                                 =1.41421356237309504880168782

3の値は

a=3,b=12=1,d1=4     42-2=14, 142-2=194, 1942-2=37634, 376342-2=1416317954
6*4/14=12/7                      =1.71428571428571428571428571
6*4*14/194=168/97                =1.73195876288659793814432989
6*4*14*194/37634=32592/18817     =1.73205080512302705000797151
6*4*14*194*37634/1416317954=1226567328/708158977
                                 =1.73205080756887729180053873

a=3,b=22=4,d1=14 の場合は 24*14/194 から開始するので、上記の値に帰着する。


5の値は

a=5,b=12=1,d1=3     32-2=7, 72-2=47, 472-2=2207, 22072-2=4870847
5*3/7=15/7                       =2.14285714285714285714285714
5*3*7/47=105/47                  =2.23404255319148936170212765
5*3*7*47/2207=4935/2207          =2.23606705935659265971907566
5*3*7*47*2207/4870847=10891545/4870847
                                 =2.23606797749960119872375379

参考:数列1,3,7,47,2207,…はリュカ数のL2^kである。

     1 2 3 4  5  6  7  8  9  10  11  12  13  14  15   16
    
1,3,4,7,11,18,29,47,76,123,199,322,521,843,1364,2207,

a=5,b=22=4,d1=18    182-2=322, 3222-2=103682, 1036822-2=10749957122
40*18/322=360/161                =2.23602484472049689440993788
40*18*322/103682=115920/51841    =2.23606797708377539013522115
40*18*322*103682/10749957122=12018817440/5374978561
                                 =2.23606797749978969637047450


   (絶対値| |は無くても同じ)

の式による近似分数の例。

 

5の値は

a=5,b=12=1,d1=3     32-2=7, 72-2=47, 472-2=2207, 22072-2=4870847
7/(3)=7/3                        =2.33333333333333333333333333
47/(7*3)=47/21                   =2.23809523809523809523809523

2207/(47*7*3)=2207/987           =2.23606889564336372847011144

4870847/(2207*47*7*3)=4870847/2178309
                                 =2.23606797749997819409459355


a=5,b=22=4,d1=18    182-2=322, 3222-2=103682, 1036822-2=10749957122
(1/8)322/(18)=161/72             =2.23611111111111111111111111

(1/8)103682/(322*18)=51841/23184 =2.23606797791580400276052449

(1/8)10749957122/(103682*322*18)=5374978561/2403763488
                                 =2.23606797749978969644787282



上記式を変形して

   (絶対値| |は無くても同じ)

この場合は√bの値は未知でも良い。

 

6の値は

a=2,b=3,d1=10    102-2=98, 982-2=9602, 96022-2=92198402
(1/4)98/(10)=49/20               =2.45
(1/4)9602/(98*10)=4801/1960      =2.44948979591836734693877551

(1/4)92198402/(9602*98*10)=46099201/18819920
                                 =2.44948974278317867451083745


2の値は2=(10/7)(7/5)を利用して

a=10/7,b=7/5,d1=198    1982-2=39202,392022-2=1536796802,15367968022-2=2361744410637427202
(1/140)39202/(198)=19601/13860   =1.41421356421356421356421356

(1/140)1536796802/(39202*198)=768398401/543339720
                                 =1.41421356237309504999928957

(1/140)2361744410637427202/(1536796802*39202*198)=1180872205318713601/835002744095575440
                                 =1.41421356237309504880168872420969807907


別の簡単な方法により、上記√(ab)の近似分数式と当ページの先頭の級数式を導く。

 

最初に一般的な xn+1/(xnx2x1) , xk+1=xk2-2 の値を求める。

xn+12-4 = (xn+1-2)(xn+1+2) = ((xn2-2)-2)((xn2-2)+2) = (xn2-4)xn2

 

この式を繰り返し適用すれば

xn+12-4 = (xn2-4)xn2 = (xn-12-4)xn-12xn2 = = (x12-4)x12x22 xn-12xn2

 

従って

   (2=<x1)

xn+1をルートの外に出して

 

2<x1の場合は右端のルート部分の極限は1で、x1=2の場合はxn+1/(xnx2x1)=1/2n-1のため

   (2=<x1)


次に√(ab)の近似分数式を導く。abを変形してx2-4の形式を利用可能にする。

 

(a+b)2-(a-b)2 = 4ab であるので 4(a+b)2/(a-b)2-4 = 42ab/(a-b)2

d1=2(a+b)/|a-b| とすれば d12-4 = 42ab/(a-b)2

abを求めると ab = (a-b)2(d12-4)/42 より √(ab) = (|a-b|/4)(d12-4)

 

従って


当ページの先頭の級数式を求める。

 

(x12-4)/(1-4/xn+12) = xn+1/(xnx2x1) を級数化すると

xn+1/(xnx2x1) = (xn2-2)/(xnx2x1) = xn/(xn-1x2x1) -2/(xnx2x1)

 

この式を繰り返し適用すれば

 xn+1/(xx2x1)

=x/(xn-1x2x1) -2/(xx2x1)

=xn-1/(xn-2x2x1) -2/(xn-1x2x1) -2/(xnx2x1)

  :

=x1 -2/x1 -2/(x2x1) -2/(x3x2x1) - -2/(xn-1x2x1) -2/(xnx2x1)

 

n→∞ とした具体的な式は、x1xに置き換えて

 

両辺をxで割ると

(1-4/x2)=1 -2/x2 -2/{x2(x2-2)} -2/{x2(x2-2)((x2-2)2-2)} -

 

x24xに置き換えて

この式は先頭の級数式と同等である。


平方根を求めるためには平方数を求めれば良い。初等的な方法で代表的な自然数の平方根を求める。

 

a=r を直接考えるのではなく、a=r2 となるrの近似分数を求める。ある数を平方数による数に変形するため、次の式を利用する。

        

 

実際に役立つ式は

                    

特に

  の式は、分子が左辺と同じ形式なので連続して変形できる。


右辺の分母にxがあるため、x自身が平方数である場合を考える。

 

x-4の式でx=32=9の場合は 5=9-4=(72-4)/9

ここで(72-4)つまり49-4に再度x-4の式を適用すると 5=(472-4)/(3272)

   ,  

3=3 , 32-2=7 , 72-2=47 の関係であることはx-4の式からわかる。

 

5の近似値を計算すると47/(3*7)=2.23809…となる。

近似値の2乗は 5+4/(3*7)2=5.00907… である。

 

x+1の式でx=12=1の場合は 2=1+1=(32-1)/(221)

ここで(32-1)つまり9-1x-1の式を適用すると 2=(172-1)/(2262)

   ,  

2*1=2 , 22+2=6 , 62-2=34 , 34/2=17 の関係がある。

同様に√2の近似値を計算すると17/(2*6)=1.41666…となる。

 

2=(100-2)/72 100-2x-2の式を適用すると 2=(1/72)(992-1)/100

   ,  

99/(7*10)=1.4142857


より単純化した手順にするためx-4の式に統一し、 を使用する。

 

                    

 

例えば

                 2207/(47*7*3)=2.23606889

                  1154/(34*6*4)=1.41421568

         39202/(198*20*7)=1.41421356421

             37634/(194*14*8)=1.7320508100


次式を利用すると更に精度の良い式になる。

あるいは

 

(n2-4)/m2=(n2/m2)(1-4/n2) に適用すれば


以前と同様に√aの乗積による式は、bbの値が既知であるaに近い数として

 

a=2,b=12=1,c=32=9 ,   4c = 36 ,  36(36-3)2 = 39204 ,  39204(39204-3)2 = 60245508192804

2=(3/2)(1-2/35)(1-2/39203)(1-2/60245508192803)

実際の値は以下の通り。[ ]内は正しい桁数を示す。

(3/2)(1-2/35)(1-2/39203)(1-2/60245508192803)

= 1.4142135623730950488016887242096980785696848  [41]

精度が良い割には比較的単純な近似式を作成する。

 

を利用した「引く22乗」を繰り返す式。

 

2 : (6/4)(1-1/36-1/34) = 1.41421568         , 34^2-2=1154 , 1154^2-2=1331714
      (6/4)(1-1/36-1/34)(1-1/1331716-1/1331714) = 1.41421356237309504880168962  [24]


第一近似分数の分子の平方数から3,2,1を減じた数による近似式。

 

2 : ( 6/ 4)(  33*  34-1)/(  34*  35-1) = 1.414213624           ,  6^2=  36
3 : (14/ 8)( 193* 194-1)/( 194* 195-1) = 1.7320508075814       , 14^2= 196
5 : (47/21)(2206*2207-1)/(2207*2208-1) = 2.236067977499789781 , 47^2=2209

これらは次式を利用している。

 

          目次