平方根の値を計算する代表的な手順として「開平法」や「ニュートン法」がある。このページでは平方根を既知の近い数値を使用して計算する数式を作成する。また算術調和平均を使用して計算する手順を示す。更に平方根の近似分数を与える式や平方数による式を作成する。
√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桁]
aとbの算術平均と調和平均を繰り返した極限は、幾何平均の√(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*10≒7*7を利用して10/7≒7/5、2=(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桁]
平方根の近似分数を与える式を求める。
見やすさのために乗積による式
の2cを4cに変更すると
以下はこの式の部分積を考える。上記式の範囲で近似すると
√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/(xn…x2x1) , 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/(xn…x2x1)=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/(xn…x2x1) を級数化すると
xn+1/(xn…x2x1) = (xn2-2)/(xn…x2x1) = xn/(xn-1…x2x1) -2/(xn…x2x1)
この式を繰り返し適用すれば
xn+1/(xn …x2x1)
=xn /(xn-1…x2x1) -2/(xn …x2x1)
=xn-1/(xn-2…x2x1) -2/(xn-1…x2x1) -2/(xn…x2x1)
:
=x1 -2/x1 -2/(x2x1) -2/(x3x2x1) - … -2/(xn-1…x2x1) -2/(xn…x2x1)
n→∞ とした具体的な式は、x1をxに置き換えて
両辺をxで割ると
√(1-4/x2)=1 -2/x2 -2/{x2(x2-2)} -2/{x2(x2-2)((x2-2)2-2)} - …
x2を4xに置き換えて
この式は先頭の級数式と同等である。
平方根を求めるためには平方数を求めれば良い。初等的な方法で代表的な自然数の平方根を求める。
√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-1にx-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-2にx-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の乗積による式は、bを√bの値が既知である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桁]
精度が良い割には比較的単純な近似式を作成する。
を利用した「引く2と2乗」を繰り返す式。
√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
これらは次式を利用している。