開平法(かいへいほう、)とは、正の数の平方根の小数表示を求めていくアルゴリズムである。開平や開平算、開平計算とも。平方根を求めることを開平するという。開法の一種。

開平法の原理 与えられた正の数の正の平方根の小数表示を求めるために、ここではまず漸化式を立てて、一般的な求値法を求める。そして、求値の明確化のために、開平法と呼ばれる筆算の原理を導出する。以下は十進法表示の場合だが、他の位取り記数法でも同様な計算で求められる。ここで述べるのと基本的には同じ方法で、立方根を求める開立法や、もっと一般に 乗根を求めることも可能である。

問題の定式化 与えられた に対し、 の位 を求める:

の首位を とする。つまり、 は を満たす最小の とする。また便宜上 とする。

の の位より上(かみ)の位 は分かっているとし、 の位 を求めるとする。すなわち

とおく。 thumb|250px|正方形ABCD の面積は , 青い正方形の面積は で、橙色と桃色の部分の面積の和が である。 の値はすでに決まっていて、 をどこまで大きく取れるのかが問題である。 は を満たす最大の 、すなわち … (1) を満たす最大の である。これを見つける。 の値は から までの 10 通りなので、順に試していけば は求まる。 のとき、 より

のとき、

より

右辺の計算値により、 の値の見当を付けることができる。 これにより が求まれば、

の値が分かるから、

を満たす最大の を見つければよい。

このようにして、帰納的に の値が求まる。

漸化式の簡略化 不等式(1) を簡略化する。「」を基数 と合わせるため とする。そのため

とおくと、不等式(1) は … (1') である。

    … (2) (1') を満たす最大の を求めるために、 の整数部分 を、 から求める。

とおくと、

の整数部分は、 の の位を とすると、 に等しい。したがって、

    … (3) (2), (3) から、(1') を満たす最大の を求めていく。

筆算による効率化 から不等式(1') を満たす最大の を求めていくには、筆算による帰納的計算が明確である。                                                                                                                 ↓    ↓                                                 から を引き、負とならない最大の を求める。(主算) 次の を求めるために、 を求めておく。(副算)

具体的な計算方法 例として、ここでは の正の平方根 の小数表示を求める。初期値は、 , , , , , , , , , ,

漸化式による求値 より、 まずは を求める。

より

を満たす最大の は、 である。 次に、 を求める。

を満たす最大の は、 である。 を求める。

を満たす最大の は、 である。 同様の計算を繰り返すと、各項の値は次の表のようになる。 305504226316344310734074612970381383847432692−113435413474494849−220837220474584270411−300362639004745824745817−40030431110047458342847500766−50019561024004745835218983340964︙︙︙︙︙︙ の値から

である。

筆算による求値 の値は、先述の筆算による方法(開平法)によりさらに簡単に計算できる。 本節は、これまでに登場した漸化式の原理により筆算の手順を説明するが、筆算の手順だけを知りたいのであれば、漸化式による説明の箇所を読み飛ばしても差し支えない の正の平方根 の小数表示を求める。

まず、 の値を、小数点から2桁ずつ「ブロック」に分けて書く。

各ブロックは、 の下線部に該当する。 左側に縦2つ等しい値を書き、積が左端のブロック (5) を超えない最大の値 (2) を見つける。ブロック (5) の上に見つけた値 (2) を書く。左の筆算を立て、下に和の計算結果 (4) を書く。ブロック (5) の下に、左の筆算の、和でなく積の計算結果(この場合は和と同じ )を書く。筆算を立て、差の計算結果 (1) をその下に書く。                                                                                 積が以下の最大値→←左の筆算の積                        和→          ←差 より 。 より、 を満たす最大の は 。この時 。次の計算のために、, を計算しておく。 差の計算結果 (1) の右隣りに、上のブロック (63) を下ろす。左の筆算の末位に縦2つ等しい値を書き、積が下ろしてできた数 (163) を超えない最大の値 (3) を見つける。ブロック (63) の上に見つけた値 (3) を書く。左の筆算を立て、下に和の計算結果 (46) を書く。下ろしてできた数 (163) の下に、左の筆算の積の計算結果 (129) を書く。筆算を立て、差の計算結果 (34) をその下に書く。                                                                                                                       ブロックを下ろす                                           積が以下の最大値→←左の筆算の積                           和→            ←差 。 を満たす最大の は 。この時 。次の計算のために、, を計算しておく。 同様の計算を( まで)行うと、次のようになる。

これより

である。

検算してみると、

となり

が確かに成り立つ。

珠算による開平法 珠算による開平法として次の方法がある。 倍根法 半九九法 根の定位 根の定位の仕方は次のようになる。 平方が整数のとき:平方の一の位から左へ2桁ずつ区分して、その区分できた回数が、根の桁数となる。 平方が帯小数のとき:平方の一の位から左へ2桁ずつ区分して、その区分できた回数が、根の整数の桁数となる。 平方が小数のとき:平方の を2桁ずつ区分して、その区分できた回数が、根の小数点以下の の桁数となる。

倍根法 例: 平方の一の位から左へ2桁ずつ区分して、根の桁数が2桁であることを調べる。(根の定位による)最後の区分された数 に含まれている平方根 を求めて、初根 を置き、初根 の 乗 () を から引く。初根 の 倍の を、左に置き、その で残りの平方を割って、次根 を初根の隣りに置く。次根 の 乗 () を引く。平方根は である。

半九九法 例: 平方の一の位から左へ2桁ずつ区分して、根の桁数が2桁であることを調べる。(根の定位による)最後の区分された数 に含まれている平方根 を求めて、初根 を置き、初根 の 乗 () を から引く。残りの平方 を で割る。(初根の 乗を引いたあと、いつも残りの平方を で割る) で割った平方の残りを、初根 で割って次根 を求める。次根 の半九九 を引く。平方根は である。

脚注

関連項目 ネイピアの骨 - ネイピアの骨を使った場合の開平法 開立法

外部リンク