【手続補正書】
【提出日】平成29年5月8日(2017.5.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】累乗根の計算をするプログラム
【技術分野】
【０００１】  本発明は、実根又はその近似値を算出するプログラムに関するものである。
【背景技術】
【０００２】  従来、実根又はその近似値を算出するプログラムは幾つかあるが、計算手段が平易なプログラムはなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】  本発明は、収束速度が速い。ほぼ二項定理のみを利用するものであり、計算手段が平易なプログラムを提供する。又、それとは異なる手段で平方根を算出するプログラムも提供する。
【課題を解決するための手段】
【０００４】  請求項１及び請求項２に記載のプログラムは、実数の与数及び２以上の自然数の指数が与えられ、その実根を算出するものである。請求項３から請求項１０までに記載のプログラムは、平方根を計算するものである。【０００５】  請求項１に記載のプログラムについて説明する。まず、与えられた与数の５乗根を求めるケースで説明する。まず、初期値を底とし、与えられた指数５を指数とする累乗、つまり初期値の５乗を算出する。次いで、それを与数から引く。次いで、その差を前記指数５で除する。そして、その商を、初期値を底とし、前記指数５から１を引いた差を指数とする累乗で除する。つまり、初期値の４乗で除し、若しくは初期値そのもので４回除するが、後者は許容桁数の制約により誤差率が若干大きくなることがあり得る。除する順番は逆でもよい。次いで、その商を初期値に加える。次いで、このようにして算出した和を初期値の代わりに用いて同様の演算を行う。以後、これを繰り返す。【０００６】  すると、各々のサイクル中の演算中の最後に算出される各々の和が、求める実根又は求める実根の一方に近づくことを繰り返す。ただし、それは許容桁数の制約がない理論値のときであり、許容桁数の制約がある電子計算機を用いる限り、段落番号「００１２」の段落に記載するように限界がある。しかし、与えられた指数がよほど大きな数でない限り、許容桁数より１小さい数と同数若しくは許容桁数と同数の桁数の数字又は許容桁数と同数の桁数の近似値が得られる。ただし、整数部分が０か否かにかかわらず、最高位から数えた桁数とする。なお、与数の絶対値が０以外で１より小さい場合であって、与数の逆数の実根の算出後に前記実根の逆数を算出する手段を用いて求めると、最後の逆数の算出時に誤差が累積されたり、桁を欠損し、いわゆる桁落ちしたりして、誤差率が若干拡大するときがある。各々のサイクルの終了時の直前に各々算出され、初期値又は初期値の代わりに用いる数値に各々加える数値を加値と呼ぶとする。【０００７】  直前のサイクルの結果と同じ結果が算出される、あるいはほぼ等しい複数の結果が同じ組み合わせで繰り返し算出されるまでサイクルを繰り返す。このようにして行うサイクルを終了する際、請求項１に記載のプログラムでは、最後のサイクル中の二番目の算出値が０又は０に極めて近い数値となり、ゆえに、最後のサイクル中で算出される加値が０又は０に極めて近い数値となる。ただし、要する上位の桁数が許容桁数より複数以上小さければ、要する上位の桁数のすべての数字においてが直近のサイクルの結果と一致するサイクルが現れた時点で、前記サイクルの結果においての要する上位の桁数に四捨五入などして得られる数値を求める実根又は求める実根の一方の近似値としてよい。与えられた指数が奇数の場合、与数が正であれば、正の初期値を用い、負であれば、負の初期値を用いる。すると、少ないサイクルで済む。【０００８】  ０以外の実数を底とする累乗において、指数が偶数の場合、前記累乗は常に正だから、指数が偶数の場合で与数が負のときはエラー表示を表示する。よって、与えられた指数が偶数の場合は与数が負でない実数として説明するが、与数が０の場合には、唯一の根である０を求める実根として��示する。よって、特に断りがない限り、与えられた指数が偶数の場合は与数が正の実数として説明する。そして、与えられた指数が偶数の場合は、与数が０以外の実数である限り、正の実根と、それと絶対値は等しく正負の符号を反転して負としたものとの二つの実根が存在するから、前記指数が偶数の場合は、まず、正の実根又はその近似値を算出し、次いでその算出値の絶対値はそのままで符号のみを負と反転することにより負の実根を得る。【０００９】  一方、請求項１及び請求項２に記載のプログラムにおいての与えられた指数が奇数の場合には、与数が正の実数のときは正の実根が唯一の実根であり、負の実数のときには負の実根が唯一の実根である。よって、初期値の正負の符号は、特に断りがない限り、指数が偶数の場合は正、指数が奇数の場合には与数の正負の符号と同じものにする。【００１０】  請求項２に記載のプログラムは、初期値又は初期値の代わりに用いた数値に加値を加える必要を有せず、各々のサイクルが終了した時点で各々算出された数値そのものが各々の次のサイクルで初期値の代わりに各々用いるものである。そのため、請求項１に記載のプログラムより演算が容易である。【００１１】  請求項１及び請求項２に記載のプログラムの各々のサイクルで得られる結果と求める実根の大小の関係について説明する。指数が偶数で唯一の正の実根を算出し、又は指数が奇数かつ与数が正の場合で唯一の実根である正の実根を算出するとして説明する。【００１２】  初期値が求める正の実根より大きいとき、初回のサイクルの結果は、求める正の実根より大きく初期値より小さい。そして、二回目のサイクルの結果は、求める正の実根より大きく初回のサイクルの結果より小さい。以後、求める正の実根より大きく直前のサイクルの結果より小さい結果を算出することが繰り返され、繰り返せば繰り返すほど求める正の実根に近づくことを繰り返す。ただし、許容桁数の制約がある電子計算機を用いる限り、求める正の実根とほぼ等しい数値が算出されるサイクル以降のサイクルの結果においては切り捨てなどの影響が比較的大きくなり、必ずしもこの関係が成り立つとは限らないが、許容桁数より１小さい数と同数若しくは許容桁数と同数の桁数の数字又は許容桁数と同数の桁数の近似値が得られる。なお、許容桁数の制約の影響により、実際に算出される数値は、むしろ求める正の実根より若干小さい又は等しい。ただし、負の実根のときは、若干大きい又は等しい。【００１３】  一方、初期値が０より大きく求める正の実根より小さいときには、初回のサイクルの結果は、求める正の実根より大きい。その結果として、初期値より大きい。そして、それ以降のサイクルにおいては、求める正の実根より大きい数値を初期値の代わりに用いて演算するため、段落番号「００１２」の段落で説明したときと同様に、求める正の実根より大きく直前のサイクルの結果より小さい結果を算出することを繰り返し、求める正の実根に近づくことを繰り返す。【００１４】  いずれにしても、少なくとも二回目以降のサイクルで得られる結果は、常に、その直前のサイクルの結果より小さい。これを踏まえてみると、もし初回のサイクルで算出された結果が増加すれば、初期値は求める正の実根より小��く、もし減少すれば、求める正の実根より大きい。正の平方根を求める場合で、もし初期値が０より大きく正の平方根の１／３以下であれば、初回のサイクルの結果と正の平方根の差の絶対値は、初期値と正の平方根の差の絶対値以上となる。【００１５】  与えられた指数が奇数かつ与数が負で初期値が負のときには、段落番号「００１２」及び「００１３」の段落で説明した関係は、各々のサイクルの結果の正負を反転して正とした各々の正の数値と、負の実根の正負を反転して正とした正の数値との間にそれぞれ成り立つ。つまり、単に正負が反転するのみであり、負の実根が算出される。ただし、初期値が０であれば、０で除することになるため、請求項１及び請求項２に記載のプログラムで算出できない。請求項３以降の請求項に記載のプログラムにおいても、初期被加値と初期加値の少なくとも一方が０であれば、算出できない。【００１６】  請求項３以降の請求項に記載のプログラムは、平方根を算出するものである。請求項１のプログラム及び請求項２に記載のプログラムと比較して、平方根に限ること以外にも、算出手段が根本的に異なる。ただし、与数が負の場合はエラー表示を表示し、負でない場合には実根を算出するなどの点では同じである。【００１７】  よって、与数は正の数あるいは０として説明してよく、与数が０の場合には、真の、そして唯一の根である０を求める平方根として表示するので、特に断りがない限り、与数は正の数として説明する。与数が正のときは、絶対値が等しく正負の符合が異なる二つの異なる平方根が存在するが、請求項３以降の請求項に記載のプログラムは、まず、正の平方根を算出する。そして、それと絶対値は等しく符号を負と反転するのみで、負の平方根が得られ、その結果、正負の二つの平方根を得られる。よって、以後、正の平方根を算出することを前提として説明する。【００１８】  ０より大きく１より小さい与数の平方根の場合には、まず、前記与数の逆数の正の平方根を算出する。０より大きく１より小さい数の逆数は１より大きいから、前記与数の逆数は１より大きく、ゆえに１以上の与数が与えられたときと同様に、１より大きい正の平方根が算出される。そして、その算出値を逆数にするのみで正の平方根が得られ、次いで負の平方根も得られる。以下、請求項３以降の請求項に記載のプログラムについて説明する際には、はじめに算出する１以上の正の平方根として、初算出の正の平方根、初算出すべき正の平方根あるいは単に正の平方根などと呼ぶとする。【００１９】  請求項１に記載のプログラム及び請求項２に記載のプログラムと異なり、初期被加値及び初期加値の二つの数値を選定する。初期加値を初期被加値に加えることにより、それらの和が初算出の正の平方根とほぼ等しくなると見立てる。初期加値の選定の際、初期被加値を３、−４、あるいは−２などで除するとする。なお、初期被加値の平方が与数又は与数の逆数より大きい場合、初期被加値は初算出すべき正の平方根より大きいため加値は負数とし、初期被加値の平方が与数又は与数の逆数より小さい場合には、加値は正数とするとよい。初期被加値は常に正数とする。なお、初期被加値と初期加値の和も常に正数とする。初期被加値及び初期加値の選定手段は随時���明する。【００２０】  請求項３以降の請求項に記載のプログラムには共通する基本的な算出手段がある。次の段落から段落番号「００２５」の段落までの段落で前記算出手段について説明する。ただし、初算出の正の平方根を得るためには、ほとんどのケースで、前記算出手段を用いて得られる三つの数値又は前記算出手段を用いて得られる二つの数値及び初期被加値と初期加値の和の三つの数値を用いる数式で算出するが、その算出手段については段落番号「００６９」及び「００７０」の段落などで説明する。【００２１】  まず、与数又は与数の逆数から、初期被加値の平方を引き、その差に初期加値を乗じた積を算出する。次いで、その結果を、初期被加値と初期加値の和の平方から、初期被加値の平方を引いた差で除する。このようにして得られた商を次のサイクルで初期加値の代わりに加値として用いて同じ演算を行い、以後、これを繰り返す。【００２２】  すると、各サイクルの演算で得た加値と、初期被加値との和が、初算出すべき正の平方根に近づくことを繰り返す。しかし、それは許容桁数の制約がないときの結果であり、本プログラムでは許容桁数の制約による限界があるものの、許容桁数より１小さい数と同数若しくは許容桁数と同数の桁数の数字又は許容桁数と同数の桁数の近似値が得られる。ただし、与数が１より小さく、与数の逆数をもとにして算出する場合には誤差率が若干大きくなることはあり得る。なお、前記和を算出した時点が一つのサイクルの終了した時点であり、前記和がそのサイクルで得られる結果である。【００２３】  もし、初期被加値が初算出すべき正の平方根と等しければ、初回のサイクルで得られる加値が０となり、初回のサイクルの結果が初期被加値と等しいから、区別できる。つまり、初回のサイクルの演算中で得られる加値が０となれば、初期被加値が初算出すべき正の平方根と等しい。又、もし、初期被加値と初期加値との和が初算出すべき正の平方根と等しければ、初回のサイクルで得られる加値は初期加値と等しいから、区別できる。つまり、両者が等しければ、初期被加値と初期加値の和が初算出すべき正の平方根と等しいと区別できる。よって、以後、特に断りがない限り、初期被加値及び初期被加値と初期加値の和はいずれも初算出すべき正の平方根とそれぞれ等しくないとして説明する。ただし、許容桁数の制約もあって、本プログラムで得られる数値は真の値でなく近似値であることがほとんどであり、特に求める平方根が無理数のときは常に近似値となるが、初期被加値及び初期被加値と初期加値の和はいずれも初算出すべき正の平方根と等しくないのみでなく、ほぼ等しいものでもないとする。【００２４】  初期被加値をψ、与数又は与数の逆数をＰ、与えられた指数をｍとそれぞれおく。初期加値をΔｏとおき、初回のサイクルが終了した時点で得、次のサイクルで加値として用いる数値をΔ１とおく。以後、二回目以後のサイクルが各々終了した時点で得、各々の次のサイクルで各々の加値として用いる各々の数値をそれぞれΔ２、Δ３、Δ４、…、Δｎ、…とおくとする。つまり、ｎ回目のサイクルが終わった時点で得、ｎ＋１回目のサイクルで加値として用いる数値をΔｎとおく。【００２５】  下記の数式１は、Δ１の値を算出する数式���ある。下記の数式２は、初回のサイクルに限らずΔｎ＋１の値を算出する数式である。数式２で算出したΔｎ＋１と初期被加値の和がｎ＋１回目のサイクルで得られる結果である。もし、Δ１の値が０となれば、そのとき、初期被加値が初算出すべき正の平方根と等しいあるいはほぼ等しい。又、もしΔｎ＋１の値が０となれば、そのとき、直前のサイクルの結果が初算出すべき正の平方根と等しいあるいはほぼ等しい。ただし、繰り返すが、許容桁数の制約もあって、ほぼ等しい近似値が算出されるときがほとんどであるが、Δ１又はΔｎ＋１の値は０とほぼ等しい数値となるか、許容桁数の制約がある条件の下での算出の結果として０となる。なお、Δｎの値が０であれば、数式２の分母に入る数が０となるが、そのとき、初期被加値が初算出すべき正の平方根と等しいあるいはほぼ等しいケースであって、初回のサイクルの演算中で数式１の分母の計算結果、すなわちΔ１の値が０となり、その時点で初算出の正の平方根が得られることに留意する。【００２６】
【数１】
2015228198.tif 000001
【００２７】
【数２】
2015228198.tif 000002
【００２８】  少なくとも二回目以降のサイクルにおいて、初期被加値の初算出すべき正の平方根に対する誤差率がどんなに大きくても、初算出すべき正の平方根に近づくことを繰り返す。段落番号「００３３」から「００３５」までの段落で場合分けする全部で六つのケースに場合に分けると、これを示すことができる。ただし、数式２の基本的な算出手段で初算出の正の平方根そのものが得られることは稀であり、ほとんどのケースで段落番号「００６９」から「００７１」までの段落で説明する数式を利用する。【００２９】  平方根以外の場合には、数式２中の三つの指数をいずれも２でなく、いずれも与えられた指数に置き換えて演算し、又、たとえ許容桁数の制約がないとしても、常に求める実根又は求める実根の一方に近づくことを繰り返すとは限らない。たとえ初期被加値の正負が求める実根又は求める実根の一方の正負と一致するとしても、その絶対値が求める実根又は求める実根の一方の絶対値より小さく、しかも極めて小さい場合は、サイクルを繰り返せば繰り返すほど、その差が大きくなるケースもある。ただし、大きい場合には、そのようなケースはない。
【発明の効果】
【００３０】  請求項１及び請求項２に記載のプログラムは、収束速度が速い。しかも、その具体的手段が平易である。請求項３以降に記載のプログラムは、それらのプログラムとはまったく異なる手段で平方根の近似値を算出する。
【発明を実施するための形態】
【００３１】  請求項３以降の請求項に記載のプログラムは、請求項１に記載のプログラムより収束速度が遅い。特に、初期被加値の初算出すべき正の平方根に対する誤差率が大きいときには、収束速度が遅い。そこで、段落番号「００２３」の段落で説明した特別なケース、すなわち初期被加値又は初期被加値と初期加値の和が初算出すべき正の平方根と等しい又はほぼ等しいケースを除き、三つのサイクルで得られる三つの数値又は二つのサイクルで得られる二つの数値及び被加値と加値の和の三つの数値を用いる数式で近似値を算出する。なお、被加値を変更すると、収束速度が速くなるが、その具体的手段については段落番号「００９８」から「０１００」までの段落などで説明する。初回のサイクルで得られる加値の絶対値の初期被加値に対する比率が大きいとき、初期被加値の初算出すべき正の平方根に対する誤差率が大きい。
【００３２】  請求項３以降の請求項に記載のプログラムにおいて、三つの数値を用いる数式で近似値を算出すると書いたが、その手段を説明する前に、各々のサイクルで算出される各々の結果、言い換えれば、各々のサイクルに共通する基本的な算出手段である数式２を用いて得られる各々の結果と初期被加値との各々の和と初算出すべき正の平方根との間に成り立つ関係について次の段落から段落番号「００４０」の段落までの段落で説明する。
【００３３】  まず、初期被加値と初算出すべき正の平方根との大小の関係により二つのケースに分ける。初期被加値が初算出すべき正の平方根より小さい場合はＩ、大きい場合にはＩＩにそれぞれ分ける。もし初期被加値が初算出すべき正の平方根と等しければ、段落番号「００２３」の段落で説明したように初回のサイクルで初算出の正の平方根が得られるから、そのケースの場合分けは不要である。次に、初期加値の正負及び初期被加値と初期加値との和と初算出すべき正の平方根との大小の関係によりそれぞれ三つのケースに分ける。
【００３４】  Ｉのケースで、初期加値が負であれば、初期被加値と初期加値との和と初算出すべき正の平方根の差の絶対値は、初期被加値と初算出すべき正の平方根の差の絶対値より、むしろ大きい。請求項３以降に記載のプログラムにおいて、初期被加値と初期加値の和は常に正であり、すべてのサイクルの終了した時点で得られる加値と初期被加値の和も常に正であることに留意する。Ｉのケースで初期加値が負の場合にＩｉ、初期加値が正の場合には、初期被加値と初期加値の和が初算出すべき正の平方根より小さいときはＩｉｉ、大きいときにはＩｉｉｉにそれぞれ分ける。
【００３５】  一方、ＩＩのケースでは、初期加値が正であれば、初期被加値と初期加値との和と初算出すべき正の平方根との差の絶対値は、初期被加値と初算出すべき正の平方根との差の絶対値より、むしろ大きい。ＩＩのケースで初期加値が負の場合は、初期被加値と初期加値の和が初算出すべき正の平方根より小さいときはＩＩｉ、大きいときにはＩＩｉｉにそれぞれ分け、初期加値が正の場合にはＩＩｉｉｉに分ける。ただし繰り返すが、ＩとＩＩのいずれのケースにおいても、初期被加値と初期加値の和と初算出すべき正の平方根が等しければ、段落番号「００２３」の段落で説明したように初回のサイクルで正の平方根が得られるから、そのケースの場合分けは不要である。
【００３６】  Ｉのケースは、一つのサイクルを行って得られる結果と初算出すべき正の平方根との大小の関係は、その直前のサイクルで得られる結果におけるそれと入れ替わる。つまり、Ｉｉ及びＩｉｉのケースでは、初回のサイクルの結果は、初算出すべき正の平方根より大きく、二回目のサイクルの結果では、小さい。そして、これを交互に繰り返す。Ｉｉｉｉのケースでも同様であるが、一つのサイクルを行って得られる結果と初算出すべき正の平方根との大小の関係は、Ｉｉ及びＩｉｉのケースとは常に入れ替わることに留意する。ただし、誤差が極めて小さいとき、許容桁数の制約があるため、必ずしもこの限りではない。
【００３７】  Ｉｉのケースは、初回のサイクルを行った結果、加値は負から正に変わる。Ｉｉのケースの初回のサイクルの結果以外は、ＩＩの三つのケースを含めて、一つのサイクルを行って得られる結果と初算出すべき正の平方根との差の絶対値は、許容桁数の制約の影響がなければ、その直前のサイクルの結果におけるものより常に小さい。
【００３８】  ＩＩｉのケースでは、初回のサイクルの結果は、初期被加値と初期加値の和より大きく、かつ初算出すべき正の平方根より小さいという関係が成り立つ。そして、二回目以降のサイクルの結果は、各々の直前のサイクルの結果より大きく、かつ初算出すべき正の平方根より小さいという関係が成り立つ。そして、以後これを繰り返し、繰り返せば繰り返すほど、初算出すべき正の平方根に近づくことを繰り返す。
【００３９】  ＩＩｉｉのケースでは、逆に、初回のサイクルの結果は、初算出すべき正の平方根より大きく、かつ初期被加値と初期加値の和より小さいという関係が成り立つ。そして、二回目以降のサイクルの結果は、初算出すべき正の平方根より大きく、かつ各々の直前のサイクルの結果より小さいという関係が成り立つ。そして、以後これを繰り返し、繰り返せば繰り返すほど、初算出すべき正の平方根に近づくことを繰り返す。
【００４０】  ＩＩｉｉｉのケースでは、初期被加値に初期加値を加えることにより、その和と初算出すべき正の平方根との差の絶対値が、初期被加値と初算出すべき正の平方根との差の絶対値よりむしろ大きいが、初回のサイクルの結果が初算出すべき正の平方根より大きく、かつ初期被加値より小さい、つまり初回のサイクルを行って得られる加値であるΔ１の値が負であり、その結果として、初回のサイクルの結果、すなわち初期被加値にΔ１を加えた和は初期被加値と初期加値の和より小さい。そして、初回のサイクルの結果を含めて、以降の各々のサイクルの結果においての各々の直前のサイクルの結果との大小の関係と、初算出すべき正の平方根との大小の関係はそれぞれＩＩｉｉのケースと同様である。
【００４１】  段落番号「００３３」から「００４０」までの段落で説明したように各々のサイクルの結果は、Ｉｉのケースの初回のサイクルの結果を除いて、初算出すべき正の平方根と各々の直前のサイクルの結果の間に存在する。初回のサイクルにおいての直前のサイクルと比較する際は、初期被加値と初期加値の和を直前のサイクルの結果とみなす。ＩＩのケースでは、三つのすべてのケースで、一つのサイクルを行って得られる結果は、その直前のサイクルの結果あるいは初期被加値と初期加値の和と比べて誤差が小さい。それらの六つのケースに分けたときの各々のサイクルの結果において、この関係が成り立つことを示すことができる。そして、その結果として、本プログラムで許容桁数より１小さい数と同数の桁数の近似値が得られる。次の段落から段落番号「００６４」の段落までの段落でこれを示す。ただし、許容桁数の制約の影響がないものとして示す。
【００４２】  初算出すべき正の平方根をｘとおく。初期被加値が初算出すべき正の平方根のｔ倍とおくと、Ｉのケースはψの値が０より大きくｘより小さく、ＩＩのケースではψの値がｘより大きいから、Ｉのケースはｔの値が０より大きく１より小さく、ＩＩのケースではｔの値が１より大きい。つまり、下記の数式３となる。ただし、ｔの値が１のときは初期被加値が初算出すべき正の平方根と等しいときであるので、ｔの値は１でないとして説明する。
【００４３】
【数３】
2015228198.tif 000003
【００４４】  初期加値が初算出すべき正の平方根のｕ倍とおくと、すべてのケースで、Δ１の値とΔ２の値はそれぞれ下記の数式４と下記の数式５となる。よって、ｔの値がとる範囲などにより、Δ１の値は、Ｉのケースでは三つのすべてのケースで正、ＩＩのケースでは三つのすべてのケースで負となる。ｔとｕの和において、Ｉｉ、Ｉｉｉ及びＩＩｉのケースは１より小さく、Ｉｉｉｉ、ＩＩｉｉ及びＩＩｉｉｉのケースでは１より大きいことに留意する。つまり、Ｉｉ、Ｉｉｉ及びＩＩｉのケースは下記の数式６であり、Ｉｉｉｉ、ＩＩｉｉ及びＩＩｉｉｉのケースでは下記の数式７である。なお、ｔとｕの和が１のときは初期被加値と初期加値の和が初算出すべき正の平方根と等しいときであって段落番号「００２３」の段落で説明したように初回のサイクルで正の平方根が得られるため、ｔとｕの和は１でないとして説明する。
【００４５】
【数４】
2015228198.tif 000004
【００４６】
【数５】
2015228198.tif 000005
【００４７】
【数６】
2015228198.tif 000006
【００４８】
【数７】
2015228198.tif 000007
【００４９】  数式４の結果により、初回のサイクルの結果から初期被加値と初期加値の和を引くと、下記の数式８となる。一方、初回のサイクルの結果から初算出すべき正の平方根を引くと、下記の数式９となる。
【００５０】
【数８】
2015228198.tif 000008
【００５１】
【数９】
2015228198.tif 000009
【００５２】  数式８において、ｔとｕの和と１との大小の関係などにより、ＩＩｉのケースは正となり、ＩＩｉｉ及びＩＩｉｉｉのケースでは負となるから、初回のサイクルの結果において、ＩＩｉのケースは初期被加値と初期加値の和より大きく、ＩＩｉｉ及びＩＩｉｉｉのケースでは前記和より小さい。一方、数式９においては、ｔとｕの和と１との大小の関係及びｔと１の大小の関係などにより、ＩＩｉのケースで負となり、ＩＩｉｉ及びＩＩｉｉｉのケースでは正となるから、初回のサイクルの結果において、ＩＩｉのケースは初算出すべき正の平方根より小さく、ＩＩｉｉ及びＩＩｉｉｉのケースでは初算出すべき正の平方根より大きい。
【００５３】  よって、数式８を数式９の結果により、ＩＩのケースにおいての初回のサイクルの結果において、段落番号「００３８」から「００４０」までの段落で説明したように、ＩＩｉのケースの初回のサイクルの結果は初期被加値と初期加値の和より大きく、初算出すべき正の平方根より小さく、ＩＩｉｉ及びＩＩｉｉｉのケースの初回のサイクルの結果では初算出すべき正の平方根より大きく、初期被加値と初期加値の和より小さい。
【００５４】  そして、ＩＩｉのケースでΔ１とΔＯをそれぞれΔ２とΔ１にそれぞれ置き換えてみると、二回目のサイクルの結果は、その直前のサイクルの結果である初回のサイクルの結果より大きく、初算出すべき正の平方根より小さいことがわかる。そして、以後、これを繰り返すと、ＩＩｉのケースの各々のサイクルの結果は各々の直前のサイクルの結果より各々大きく、初算出すべき正の平方根より各々小さい。ＩＩｉｉ及びＩＩｉｉｉのケースでも同様にすると、各々のサイクルの結果は初算出すべき正の平方根より各々大きく、各々の直前のサイクルの結果より各々小さいことがわかる。つまり、段落番号「００３８」から「００４０」までの段落で説明した関係がＩＩのケースで成り立つことが示され、その結果として、ＩＩのケースで初算出すべき正の平方根に近づくことを繰り返すことも示された。
【００５５】  次に、Ｉの三つのケースについて説明する。まず、偶数回目のサイクルの結果について説明する。
【００５６】  数式９において、ｔとｕの和と１の大小の関係及びｔと１の大小の関係などにより、Ｉｉ及びＩｉｉのケースの初回のサイクルの結果は初算出すべき正の平方根より大きく、Ｉｉｉｉのケースでは小さいことがわかる。つまり、Ｉｉ及びＩｉｉ並びにＩｉｉｉの初回のサイクルの結果においての初期被加値と初期加値の和との大小の関係と、初算出すべき正の平方根との大小の関係はそれぞれ入れ替わる。そして、ΔＯとΔ１をそれぞれΔ１とΔ２に置き換えてみると、Ｉｉ及びＩｉｉのケースと、Ｉｉｉｉのケースとで、二回目のサイクルの結果においてもそれぞれ同様な結果となり、すなわち二回目のサイクルの結果においての初期被加値と初期加値の和との大小の関係と、初算出すべき正の平方根との大小の関係もそれぞれ入れ替わる。そして、以後、初期被加値と初期加値の和との大小の関係と、初算出すべき正の平方根との大小の関係がそれぞれ入れ替わることを繰り返す。
【００５７】  次に、二回目のサイクルの結果から初期被加値と初期加値の和を引くと、数式５により、下記の数式１０となる。よって、ｔとｕの和と１の大小の関係などにより、Ｉｉ及びＩｉｉのケースは二回目のサイクルで得られる結果は初期被加値と初期加値の和より大きく、Ｉｉｉｉのケースでは小さいことがわかる。一方、二回目のサイクルの結果から初算出すべき正の平方根を引くと、下記の数式１１となるから、ｔとｕの和と１の大小の関係などにより、Ｉｉ及びＩｉｉのケースは二回目のサイクルの結果は初算出すべき正の平方根より小さく、Ｉｉｉｉのケースでは初算出すべき正の平方根より大きいことがわかる。つまり、Ｉｉ及びＩｉｉのケースで二回目のサイクルの結果は初期被加値と初期加値の和より大きく、初算出すべき正の平方根より小さく、Ｉｉｉｉのケースでは初算出すべき正の平方根より大きく、初期被加値と初期加値の和より小さい。
【００５８】
【数１０】
2015228198.tif 000010
【００５９】
【数１１】
2015228198.tif 000011
【００６０】  ただし、いずれのケースにおいても、二回目のサイクルの結果は、初期被加値と初期加値の和と初算出すべき正の平方根の間に存在する。そして、ΔＯとΔ２をそれぞれΔ２とΔ４に置き換え、以後これを繰り返すことにより、一つおきの偶数回目のサイクルの結果はこれを繰り返すから、Ｉのケースにおいての偶数回目のサイクルの結果について、ＩＩのケースの各々のサイクルの結果について成り立つ関係が成り立つことが示され、その結果として、偶数回目のサイクルの結果が初算出すべき正の平方根に近づくことを繰り返すことが示された。
【００６１】  次に、奇数回目のサイクルの結果について説明する。
【００６２】  段落番号「００６０」の段落などで説明したように、各々の偶数回目のサイクルの結果は、各々の一つ前の偶数回目のサイクル、つまり各々の二つ前のサイクルの結果と初算出すべき正の平方根の間に存在する。そして、これを繰り返して、初算出すべき正の平方根に近づくことを繰り返す。そこで、初回のサイクルの結果においての加値、つまりΔ１を初期加値として本プログラムの演算を行うとしてみると、そのときの各々の偶数回目のサイクルの結果は偶数回目ごとに各々の二つ前のサイクルの結果と初算出すべき正の平方根の間に存在することを繰り返す。そして、本来の初期加値を用いた本来の初回のサイクルから数えると、奇数回目ごとに各々の二つ前のサイクルの結果と初算出すべき正の平方根の間に存在し、サイクルを繰り返し行うたびに、奇数回目のサイクルの結果が初算出すべき正の平方根に近づくことを繰り返す。
【００６３】  ただし、Ｉｉ及びＩｉｉのケースは各々の奇数回目のサイクルの結果は、偶数回目のサイクルのときと異なり、初算出すべき正の平方根より大きく、各々の二つ前のサイクルの結果より小さいことに留意する。一方、Ｉｉｉｉのケースでも、偶数回目のサイクルのときと異なり、各々の奇数回目のサイクルの結果は、各々の二つ前のサイクルの結果より大きく、初算出すべき正の平方根より小さい。
【００６４】  よって、Ｉのケースにおいても、偶数回目と奇数回目にかかわらず二つおきのサイクルの結果についての段落番号「００３６」及び「００３７」の段落で説明した関係が成り立つことが示され、その結果として、二つおきのサイクルごとに初算出すべき正の平方根に近づくことを繰り返すことが示された。そしてこれらの結果により、すべてのケースで、サイクルを二回又は一回繰り返すたびにこの関係が成り立つことが示され、その結果として、サイクルを二回又は一回繰り返すたびに初算出すべき正の平方根に近づくことを繰り返すことが示された。
【００６５】  ある一つのサイクルの結果の初算出すべき正の平方根に対する誤差率を、その直前のサイクルの結果の同じく初算出すべき正の平方根に対する誤差率で割った比を誤差率前回比と呼ぶとする。例えば、三回目のサイクルの結果における誤差率を、二回目のサイクルの結果における誤差率で除した比を三回目のサイクルの誤差率前回比と呼ぶとする。段落番号「００６９」及び「００７０」の段落で説明する算出手段は、誤差率前回比がほぼ一定であることのみでなく、用いる三つのサイクルの各々の結果から初算出すべき正の平方根を各々引いた各々の差の正負が各々一致しなければならないことに留意する。
【００６６】  ＩＩのケースでは、誤差率前回比がサイクルの回数を繰り返すたびに減少する。しかし、その減少率は、回数を重ねるたびに急激に小さくなり、初期被加値の誤差率がよほど大きくない限り、その差はすぐに極めて小さくなり、それ以降に一回あるいは複数回サイクルを行うのみで、二つの連続するサイクルの二つの誤差率前回比はほとんど差がなくなり、ほぼ一定となる。許容桁数に制約がある電子計算機においては、誤差率が極めて小さくなれば、切り捨てや四捨五入などによる影響が相対的に大きくなるが、段落番号「００６９」及び「００７０」の段落で説明する手段を用いると、高精度の近似値が得られる。
【００６７】  ＩＩの三つのケースにおいて、ＩＩｉのケースは、各々のサイクルの結果は増加する一方であり、ＩＩｉｉとＩＩｉｉｉのケースでは、各々のサイクルの結果は減少する一方である。その一方で、Ｉの三つのケースでは、Ｉｉのケースを含めて、各サイクルの結果が初算出すべき正の平方根より大きくなることと小さくなることを繰り返すから、各サイクルの結果がその直前のサイクルの結果より大きくなることと小さくなることを繰り返す。それゆえ、ＩとＩＩのケースの区別は容易につく。なお、初回のサイクルの結果と、初期被加値と初期加値の和の大小の関係や、初期加値の正負に着目すると、六つのすべてのケースに分けることも容易である。
【００６８】  ＩＩのケースの場合において、すなわちサイクルを繰り返すたびに、得られる結果がそれぞれの直前のサイクルで得られる結果より増加する一方又は減少する一方の場合において、二つの連続するサイクルの二つの誤差率前回比はほぼ一定であることを利用して近似値を算出する手段がある。その手段について次の段落及び段落番号「００７０」の段落で説明する。
【００６９】  二回以上サイクルが終了した時点で得られる三つの数値を用いる。その三つの数値とは、最も新しいサイクルの結果である最新値と、その直前のサイクルの結果である前回値と、二つ前のサイクルの結果又は初期被加値と初期加値の和である前々回値である。二回のサイクルのみの場合には、初期被加値と初期加値の和を前々回値とすることに留意する。そして、次の段落で説明する具体的手順で算出する。
【００７０】  まず、前々回値から前回値を引いた差を平方する。そして、その平方を、前回値に２を乗じた積から前々回値を引いた差から最新値を引いた差で除する。そして、その商に前々回値を加えた和を初算出すべき正の平方根又はその近似値として算出する。
【００７１】  前々回値、前回値、最新値、そして初算出すべき正の平方根をξ１、ξ２、ξ３、そしてｘとそれぞれおくと、この算出手段の計算式は下記の数式１２となる。サイクルを繰り返し行うと増加と減少を交互に繰り返すＩのケースにおいても、一つおきの三つのサイクルの各々の結果から初算出すべき正の平方根を各々引いた各々の差の正負は各々一致し、数式１２は成り立つ。その際、数式１２の右辺の第二項において、前者は正であり、後者では負である。
【００７２】
【数１２】
2015228198.tif 000012
【００７３】  もし誤差率前回比が完全に一定であれば、数式１２で得られる結果は近似値ではなく、同式は完全に等式として成り立つ。そして、同式において、「≒」でなく「＝」となる。例えばξ１、ξ２、ξ３、そしてｘの値がそれぞれ８、８．６、９．０２、そして１０のケースや、１５、１２、１０．８、そして１０のケースであれば、完全に等式として成り立つ。ただし、誤差率前回比が完全に一定であっても、各々の結果から初算出すべき正の平方根を各々引いた各々の差の正負が各々一致していなければ、例えばξ１、ξ２、ξ３、そしてｘの値がそれぞれ１５、１２、９．２、そして１０のケースでは成り立たない。
【００７４】  数式１２を導き出す手段について次の段落から段落番号「００８５」の段落までの段落で説明する。
【００７５】  初算出すべき正の平方根ｘから前々回値を引いた差の絶対値をｄとおく。誤差率前回比はμ倍で完全に一定とする。μの値は０より大きく１より小さい。すると、初算出すべき正の平方根から前々回値を引いた差の絶対値は、定義により、ｄと等しいから下記の数式１３が成り立つ。前回値から前々回値を引いた差の絶対値は、初算出すべき正の平方根から前々回値を引いた差の絶対値から、初算出すべき正の平方根から前回値を引いた差の絶対値を引いた差の絶対値と等しいから、下記の数式１４が成り立つ。定義により、初算出すべき正の平方根から前回値を引いた差の絶対値が、初算出すべき正の平方根から前々回値を引いた差の絶対値ｄにμを乗じた積と等しいことに着目する。
【００７６】
【数１３】
2015228198.tif 000013
【００７７】
【数１４】
2015228198.tif 000014
【００７８】  最新値から前回値を引いた差の絶対値は、初算出すべき正の平方根から前回値を引いた差の絶対値から、初算出すべき正の平方根から最新値を引いた差の絶対値を引いた差の絶対値と等しいから、下記の数式１５が成り立つ。定義により、初算出すべき正の平方根から最新値を引いた差の絶対値が、初算出すべき正の平方根から前回値を引いた差の絶対値であるμｄにμを乗じた積と等しいことに着目する。
【００７９】
【数１５】
2015228198.tif 000015
【００８０】  数式１３と数式１４から下記の数式１６が得られる。数式１６の第二辺と第一辺に着目して前記第二辺を数式１５に代入すると、下記の数式１７が得られる。次いで、数式１７から、下記の数式１８が得られる。数式１６の第二辺と第三辺でなる数式において、数式１８の右辺を代入して整理すると、下記の数式１９が得られる。
【００８１】
【数１６】
2015228198.tif 000016
【００８２】
【数１７】
2015228198.tif 000017
【００８３】
【数１８】
2015228198.tif 000018
【００８４】
【数１９】
2015228198.tif 000019
【００８５】  定義により、最新値が初算出すべき正の平方根より大きい場合は、三つのサイクルの結果は減少する一方であって、最新値、前回値、前々回値のすべてが初算出すべき正の平方根より大きい。逆に、最新値が初算出すべき正の平方根より小さい場合には、三つのサイクルの結果は増加する一方であって、最新値、前回値、前々回値のすべてが初算出すべき正の平方根より小さい。加えて、前者の場合は初算出すべき正の平方根、最新値、前回値、前々回値はこの順に小さい順に並び、後者の場合には大きい順に並ぶ。これらを踏まえて数式１９をみると、いずれの場合であっても、数式１９の絶対値の記号を外すと、数式１２が導き出される。
【００８６】  Ｉのケースでは、ＩＩのケースと異なり、サイクルを繰り返すたびに、得られる結果と初算出すべき正の平方根との大小の関係が入れ替わるのを交互に繰り返すが、二つおきの三つのサイクルの結果を用いると増加する一方又は減少する一方である。それら二つおきの三つのサイクルで得られる結果を算出された順にそれぞれξ１、ξ２、ξ３とおき、それらを前々回値と、前回値と、最新値の代わりにそれぞれ用いて、ＩＩのケースと同様にして算出する。前回値として用いる結果は実際には二つ前のサイクルの結果であり、前々回値として用いる結果は実際には四つ前のサイクルの結果であることに留意する。
【００８７】  初算出すべき正の平方根より大きい結果が得られるサイクルにおいては、サイクルを二つ繰り返すたびに誤差率前回比は増加する一方で、初算出すべき正の平方根より小さい結果が得られるサイクルにおいては、減少する一方である。五回目までのサイクルが終了した時点で数式１２を用いる際の前々回値は初期被加値と初期加値の和とする。
【００８８】  請求項４に記載のプログラムは、次の段落で説明するようにして初期被加値を選定する。
【００８９】  与数又は与数の逆数の整数部分の桁数が奇数の場合、前記桁数から１を引いた差を２で除し、その商の整数部分を指数とする１０の累乗数で与数又は与数の逆数を除した桁割商を初期被加値として選定する。この場合には、前記桁数から１を引いた差を２で除した商は常に整数であり、その場合には、商の整数部分でなく、単に、商としても結果は変わらない。一方、偶数の場合には、前記桁割商を３で除した商を初期被加値として選定する。その結果、奇数の場合、選定した初期被加値は、初算出すべき正の平方根の１倍以上３．１６２２７７６６０１６…倍未満となり、偶数の場合には、同じく１．０５４０９２５５３３８…倍以上３．３３３３３３３３３３３…倍未満となる。初期加値にとって、初期被加値との和が初算出すべき正の平方根と近ければ近いほど、好ましい数値であるため、請求項４に記載のプログラムにおいては、初期被加値を−２で除した商を初期加値として選定するとした。
【００９０】  つまり、初期被加値は、常に、初算出すべき正の平方根より大きいあるいは等しい。そして、等しいときは初回のサイクルで正の平方根が得られるから、前者のケース、つまりＩＩのケースとして説明するが、段落番号「００６８」の段落で説明したように各々のサイクルの結果が各々の直前のサイクルの結果より増加する一方又は減少する一方であり、連続する三つのサイクルの結果又は初期被加値と初期加値の和を利用すればよく、要する計算量が少なくて済む。
【００９１】  もし、初期被加値と初期加値の和が初算出すべき正の平方根と等しいとき、数式１の右辺中の乗数の分母に入る数と前記乗数の分子に入る数である下記の数式２０は等しく、ゆえに前記乗数は１となり、その結果として数式１の結果は初期加値と等しくなるが、このとき、数式１で算出するまでもなく、初期被加値と初期加値の和を、初算出の正の平方根とすればよい。その一方で、もし初期被加値が初算出すべき正の平方根と等しければ、数式２０の値が０となり、その結果として初回のサイクル中で得られた加値Δ１が０となり、初期被加値が初算出すべき正の平方根と等しいと区別できる。
【００９２】
【数２０】
2015228198.tif 000020
【００９３】  請求項３に記載のプログラムは、次の段落から段落番号「００９６」の段落までの段落で説明する手段で初期被加値及び初期加値を選定する。
【００９４】  与数又は与数の逆数の整数部分の桁数が奇数の場合、前記桁数を２で除し、その商の整数部分を指数とする１０の累乗数で与数又は与数の逆数を除した桁割商を２で除した商を初期被加値として選定する。一方、偶数の場合には、前記桁割商に２を乗じた積を初期被加値として選定する。その結果、奇数の場合、選定した初期被加値は、初算出すべき正の平方根の０．５倍以上１．５８１１３８８３００８…倍未満となり、偶数の場合には、同じく０．６３２４５５５３２０３３…倍以上２倍未満となる。
【００９５】  これらは、請求項４と比較して誤差率が小さい。ただし、初算出すべき正の平方根より小さいときに二つおきのサイクルの結果を用いるので、むしろ要する計算量が大きいときの方が多い。請求項３に記載のプログラムにおいては、Ｉのケースがあり得るものの、初回のサイクルの結果の誤差の絶対値が、その直前のサイクルの結果とみなす初期被加値と初期加値の和においての誤差の絶対値より大きくなることはなく、ひいてはどんなサイクルの結果の誤差の絶対値が、その直前のサイクルの結果の誤差の絶対値より大きくなることはない。
【００９６】  初期加値の選定は、初期被加値が初算出すべき正の平方根より小さい場合、初期加値の全体的に好ましい数値として、初期被加値を３で除した商を初期加値として選定するとした。一方、初期被加値が初算出すべき正の平方根より大きい場合には、初期被加値を−４で除した商を初期加値として選定するとした。繰り返すが、初期被加値が初算出すべき正の平方根と等しい場合には、初回のサイクルで正の平方根が得られる。
【００９７】  請求項５に記載のプログラムは、請求項４に記載のプログラムにおいて、被加値を変更するものである。被加値を変更する理由は、被加値の誤差率が小さければ小さいほど収束速度が速いからである。次の段落から段落番号「０１００」の段落までの段落で説明する手段を用いて被加値を変更し、次いで加値を変更する。
【００９８】  請求項４に記載のプログラムにおいて、初期加値は初期被加値を−２で除した商のため、初期被加値が初算出すべき正の平方根の２倍より大きい場合、初期被加値と初期加値の和も初算出すべき正の平方根より大きく、ゆえに初回のサイクルの結果は、初算出すべき正の平方根より大きく初期被加値より小さい。そこで、その場合には被加値の変更を行う。なお、初期被加値の初算出すべき正の平方根に対しての比が上限の３．３３３３３３３３３３３…であっても、初回のサイクルの結果においての同比は１．３１１１１１１１１１１…と減少し、次のサイクルの被加値の誤差率はかなり減少する。
【００９９】  請求項５に記載のプログラムは、請求項４に記載のプログラムにおいて、初回のサイクルの結果が初算出すべき正の平方根より大きい場合、言い換えれば、初回のサイクルの結果の平方が与数又は与数の逆数より大きい場合、初回のサイクルの結果を初期被加値の代わりに第二期被加値として用いる。逆に言えば、初期被加値と、初回のサイクルの演算の際に算出される加値との和の平方を算出し、それと与数又は与数の逆数の大小の関係により、被加値の変更が行われる。
【０１００】  被加値を変更する場合、変更後の被加値である第二期被加値を−９又は−１０で除した商を、第二期被加値を用いてはじめてのサイクルの演算の際の加値として用いる。数式１２で計算する際には、三つの数値はすべて初期被加値を変更した後のサイクルの結果、すなわち二回目以降のサイクルの結果を用いる。第二期被加値を用いた以降に二回のサイクルを行ったのみで数式１２を用いて算出する際には、前々回値は、変更後の被加値である第二期被加値と、第二期被加値を選定した直後に選定した加値との和であることに留意する。
【０１０１】  請求項７に記載のプログラムは、請求項３に記載のプログラムにおいて、被加値を変更するものである。初期被加値が初算出すべき正の平方根より大きい場合、言い換えれば、初期被加値の平方が与数又は与数の逆数より大きい場合、初回のサイクルの結果の平方が与数又は与数の逆数より大きいとき、初回のサイクルの結果を初期被加値の代わりに第二期被加値として用いる。そして、第二期被加値を−２０又は−２２で除した商を、第二期被加値を用いてはじめてのサイクルの演算の際の加値として用いる。
【０１０２】  この場合、初期被加値が初算出すべき正の平方根の４／３倍より大きければ、被加値を変更することになる。初期被加値が初算出すべき正の平方根より大きく４／３倍より小さければ、初回のサイクルの結果は初算出すべき正の平方根より小さく被加値を変更するとＩのケースとなるため、被加値の変更は行わないものとする。もし初期被加値が初算出すべき正の平方根よりの４／３倍と等しければ、初期被加値と初期加値の和が初算出すべき正の平方根と等しく、ゆえに初回のサイクルで正の平方根が得られる。
【０１０３】  一方、初期被加値の平方が与数又は与数の逆数より小さい場合には、初回のサイクルの結果の平方が与数又は与数の逆数より大きいとき、初回のサイクルの結果を第二期被加値として用い、第二期被加値を−２５で除した商を、第二期被加値を用いてはじめてのサイクルの演算の際の加値として用いる。小さいときには、初期被加値と初期加値の和を第二期被加値として用い、第二期被加値を−７又は−８で除した商を、第二期被加値を用いてはじめてのサイクルの演算の際の加値として用いる。
【０１０４】  後者の場合で初回のサイクルの結果の平方が与数又は与数の逆数より小さいときに、初期被加値と初期加値の和を第二期被加値として用いる理由は、各々のサイクルの結果と初算出すべき正の平方根との大小の関係により初期被加値と初期加値の和が初算出すべき正の平方根より大きいからである。しかも、最大でも、初算出すべき正の平方根の４／３倍未満となる。被加値が初算出すべき正の平方根より大きれば、連続した三つのサイクルの結果あるいは被加値と加値の和を用いて数式１２で算出でき、便利である。
【０１０５】  加えて、請求項６に記載のプログラムにおいては、請求項５に記載のプログラムにおいての被加値の変更を最多で二回行うものである。二回目のサイクルの結果の平方が与数又は与数の逆数より大きい場合、二回目のサイクルの結果を第二期被加値の代わりに第三期被加値として用いる。言い換えれば、請求項４に記載のプログラムにおいて、被加値の変更を二回行うものである。
【０１０６】  初回のサイクルで初期被加値の変更が行われなかった場合は初回のサイクルの結果が初算出すべき正の平方根より小さい場合であって、二回目以降のサイクルの結果も常に初算出すべき正の平方根より小さいため、もし初回のサイクルの終了直後に初期被加値の変更が行われなければ、初期被加値の変更が行われることはない。又、初回のサイクルで初期被加値の変更し、二回目のサイクルの終了直後に第二期被加値から第三期被加値への変更が行われなかった場合も、同様に、第三期被加値へ変更が行われることはない。
【０１０７】  第三期被加値へ変更した直後の加値の選定は次のようにして行う。初回のサイクルの終了直後に初期被加値を変更し、その際の新たな加値の選定において、第二期被加値を−９で除した場合は第三期被加値に−０．００７を乗じ、又は第三期被加値を−１４０で除し、−１０で除した場合には第三期被加値を−１３０で除する。ただし、三回目のサイクルの次のサイクルまで行い、全部で四回のサイクルのみで数式１２を用いて計算する際には、前々回和は、第三期被加値と、第二期被加値から第三期被加値へ変更した直後に選定した加値との和であることに留意する。
【０１０８】  請求項８に記載のプログラムは、請求項６に記載のプログラムにおいて、被加値の変更回数にかかわらず全部で五回のサイクルを行うものである。
【０１０９】  被加値の変更が二回行われた場合、二回目の被加値の変更後に、つまり第三期被加値を用いてから三回、全部で五回のサイクルを行う。そして、最後の三回のサイクルで得られる三つの結果を用いて数式１２で算出して、極めて精密な近似値が得られる。加えて、段落番号「０１４９」の段落で説明する手段を併用すると、与えられた指数がかなり大きな数でなければ、誤差の絶対値は、許容桁数を満たす位のうちで最も下位の位以外のすべての位に０が入るほどの小さな数でしかない。
【０１１０】  被加値の変更が一回のみ行われた場合には、被加値の変更後に、つまり第二期被加値を用いてから四回サイクルを行い、最後の三回のサイクルで得られる三つの結果を用いて数式１２で算出すると、被加値の変更が二回行われた場合と同程度の誤差の数値が得られる。
【０１１１】  被加値の変更が行われない場合にも、五回のサイクルを行う。そして、まず、初回から三回目までのサイクルの結果をそれぞれ前々回値と、前回値と、最新値として数式１２を用いて算出する。次に、二回目から四回目までのサイクルの結果をそれぞれ前々回値と、前回値と、最新値として数式１２を用いて算出する。次に、三回目から五回目までのサイクルの結果をそれぞれ前々回値と、前回値と、最新値として数式１２を用いて算出する。そして、それら三つの数値を算出した順にそれぞれ前々回値と、前回値と、最新値として用いて、再び数式１２を用いて算出する。すると、段落番号「０１０９」の段落に記載した誤差と同程度の誤差でしかない。ただし、いずれの場合でも、数式１２を用いて算出する際には段落番号「０１４９」の段落で説明する手段を用いないと、段落番号「０１０９」の段落に記載した範囲内に誤差が収まらないことが多いことに留意する。
【０１１２】  請求項９に記載のプログラムは、請求項８に記載のプログラムにおいての被加値の変更回数で場合分けした三つの場合において、請求項８に記載のプログラムよりそれぞれ一回ずつ多くサイクルを行うものである。その結果、いずれの場合でも、ほぼすべてのケースで請求項８に記載のプログラムより精度が若干良い。
【０１１３】  数式１２を用いて算出した数値は、通常、最も新しいサイクルの結果より誤差率がかなり小さい。そこで、前々回値を次期の被加値として用い、数式１２を用いて算出した数値から前記被加値を引いた差を加値として次のサイクルを行うと、前記被加値と初算出すべき正の平方根との誤差の絶対値においても、前記被加値と前記加値との和と初算出すべき正の平方根との誤差の絶対値においても、かなり小さくなって、精度も収束速度もよいものとなる。請求項１０に記載したプログラムは、このようにして、被加値の変更を行うものである。ただし、数式１２を用いる際の三つの数値は、すべて最新の被加値への変更後のサイクルの結果又は変更後の被加値と、変更直後に選定した加値との和でなければならない。この手段は、前々回値を次期の被加値として用いる際の被加値を数式１２の右辺中の第一項に見立て、又、その際の加値を同式の右辺中の第二項に見立てるものである。
【０１１４】  請求項２に記載のプログラムにおいて、ｎ回目のサイクルが終了した時点で得られる結果であって、次のサイクルで初期値の代わりをして用いる数値をｘｎ、与数をＰ、与えられた指数をｍとそれぞれおくと、ｎ＋１回目のサイクルの結果であるｘｎ＋１を得る計算式は下記の数式２１となる。ｍの値は２以上の自然数である。
【０１１５】
【数２１】
2015228198.tif 000021
【０１１６】  請求項２に記載のプログラム、ひいては請求項１に記載のプログラムにおいて、初期値の正負の符号が求める実根又は求める実根の一つの正負の符号と一致すると、初期値の絶対値が正負の符号が一致する実根の絶対値より小さい場合の初回のサイクル以外のすべてのサイクルの結果の絶対値は、許容桁数の制約による影響が比較的小さいうちは、正負の符号が一致する実根の絶対値より大きく直前のサイクルの結果の絶対値より小さい。初期値の絶対値が０でなく正負の符号が一致する実根の絶対値より小さい場合の初回のサイクルの結果の絶対値のみこれと異なるものの、正負の符号が一致する実根の絶対値より大きくなることには変わりはない。なお、正負の符号が異なる実根が二つ存在するときでも、それらの絶対値は等しいため、正負の符号が一致する実根の絶対値を求める実根の絶対値と置き換えられる。
【０１１７】  そして、初期値の絶対値と、正負の符号が一致する実根の絶対値との大小の関係にかかわらず二回目以降の各々のサイクルの結果は、許容桁数の制約の影響が比較的小さいうちは、各々の直前のサイクルと前記実根の間に存在し、サイクルを繰り返すたびに前記実根に近づくことを繰り返す。数式２１の第二辺を用いてこの関係が成り立つことを示すことができ、その結果として、本プログラムで求める実根又は求める実根の一方とほぼ等しい数値が得られることも示される。次の段落から段落番号「０１２５」の段落までの段落で示す。ただし、許容桁数の制約による影響がないとして示す。ただし、指数が偶数の場合は正の実根を算出し、奇数の場合には与数は正として、段落番号「０１１６」及び「０１１７」の段落に記載した関係が成り立つことを示す。なお、最終的に本プログラムで算出される近似値の絶対値は、実際には、許容桁数の制約の影響により求める実根の真の値の絶対値より小さいあるいは等しいことに留意する。
【０１１８】  正の実根と正の初期値をそれぞれｒとｘ０とおく。初期値が正の実根のｔ倍とおく。ｔの値は０より大きい。すると、初回のサイクルの結果から正の実根を引くと、下記の数式２２となる。数式２２の最後の辺中の被乗数においての丸括弧の中にあるｔの累乗の和になっている箇所に着目する。
【０１１９】
【数２２】
2015228198.tif 000022
2015228198.tif 000023
【０１２０】  ｔの値が１より小さい場合は、最初の項のみ１で他のすべての項は１より大きく、かつそれらの項がｍ個あることに着目すると、段落番号「０１１８」の段落で着目した箇所はｍより大きい。よって、数式２２の最後の辺中の乗数の分子中のｔ−１の正負などにより、前記辺の値は正である。一方、ｔの値が１より大きい場合には、前記箇所中の項は最初の項のみ１で他のすべての項は１より小さく、かつそれらの項がｍ個あるから、前記箇所はｍより小さい。よって、ｔ−１の正負などにより、前記辺の値もやはり正である。よって、いずれの場合も前記辺の値は正である。つまり、正の初期値が正の実根より小さいケースと大きいケースのいずれのケースであっても、初回のサイクルの結果は正の実根より大きい。なお、ｔの値が１であれば、正の初期値と正の実根は等しく、数式２０の数値が０となり、初回のサイクル中で正の初期値が正の実根と等しいと区別できる。
【０１２１】  次に、段落番号「０１１７」の段落で説明した二回目以降のサイクルの結果とその直前のサイクルの結果の関係が成り立つことを示す。
【０１２２】  ｎ回目のサイクルの結果は正の実根のｕ倍とおく。すると、数式２２で示したようにどんな数値を用いても得られる結果は正の実根より大きいから、ｕの値は１より大きい。そして、その直後のサイクル、すなわちｎ＋１回目のサイクルの結果からその直前のサイクルの結果、すなわちｎ回目のサイクルの結果を引いた差は下記の数式２３となる。よって、ｕと１の大小の関係により、数式２３の各辺の値は負である。つまり、二回目以降のサイクルの結果はその直前のサイクルの結果より常に小さい。
【０１２３】
【数２３】
2015228198.tif 000024
【０１２４】  次に、ｎ＋１回目のサイクルの結果から正の実根を引くと下記の数式２４となる。そして、数式２４の最後の辺中の被乗数においての丸括弧の中にあるｕの累乗の和になっている箇所において、ｕと１の大小の関係により前記箇所中の項のうち最初の項のみ１と等しく他はすべて１より小さく、かつそれらの項がｍ個あることに着目すると、前記箇所はｍより小さく、それゆえ数式２４の各辺の値は正である。数式２３と数式２４の結果により、二回目以降のサイクルの結果は常に正の実根より大きく、かつその直前のサイクルの結果より常に小さいことが示された。
【０１２５】
【数２４】
2015228198.tif 000025
【実施例】
【０１２６】  請求項２に記載のプログラムの実施例を挙げる。与数は２５０．０４７で、与えられた指数は３とする。つまり、２５０．０４７の実数の立方根を計算するとする。求める立方根は６．３である。この実施例では、初期値は、与数を１０１で除した商を指数の３で除した商８．３３４９とする。許容桁数は１２とする。以下、特に断りがない限り、許容桁数は１２とする。【０１２７】  初期値８．３３４９の立方を算出すると、５７９．０３０１５３９５７の数値が算出される。次いで、与えられた指数３から１を引いた差２を前記数値に乗じると、１１５８．０６０３０７９１の数値が算出される。次いで、与数２５０．０４７を前記数値に加えると、１４０８．１０７３０７９１の数値が算出される。次いで、与えられた指数３で前記数値を除すると、４６９．３６９１０２６３６の数値が算出される。次いで、与えられた指数から１を引いた差が２だから、初期値８．３３４９の平方として算出される６９．４７０５５８０１で４６９．３６９１０２６３６を除すると、６．７５６３７４４４２３７の数値が算出される。この算出値が初回のサイクルの結果である。ただし、初期値の平方でなく初期値そのもので二回除すると、６．７５６３７４４４２３６の数値が算出される。次のサイクルである二回目のサイクルは、初回のサイクルの結果を初期値の代わりに用いて、同じ演算を行う。そして、以後、これを繰り返す。【０１２８】  初回から七回目のサイクルまでの各々の結果は、順に６．７５６３７４４４２３７，６．３３０１３２７４４５６，６．３００１４３２１０５２，６．３０００００００３２５，６．２９９９９９９９９９８，６．２９９９９９９９９９９，６．２９９９９９９９９９８である。五回目のサイクルが終了した時点で真の実根６．３とほぼ等しい６．２９９９９９９９９９８が算出される。次の六回目のサイクルの結果はこれと異なるものの、七回目のサイクルの結果は五回目のサイクルの結果と同じとなる。それゆえ、八回目のサイクルの結果は六回目のサイクル結果と同じとなる。そして、以降のサイクルの結果は６．２９９９９９９９９９８と６．２９９９９９９９９９９が交互に繰り返し算出される。【０１２９】  もし一つの数値が繰り返し算出されるようになれば、前記数値を求める実根の近似値又は求める実根の一方の近似値としてよいが、この実施例のように複数の数値が同じ組み合わせで繰り返し算出されるようになるときもある。そのときには、それら複数の数値の平均値においての許容桁数と等しい桁数になるように四捨五入を行ったりする。五回目で真の実根とほぼ等しい結果が得られた後の六回目以降のサイクルの結果の誤差は、許容桁数の制約による誤差が累積したもので、正の実根を算出するにあたっては、真の実根より若干小さい数値あるいは真の実根と等しい数値が算出される。なお、与数の正負と与えられた指数の奇偶により負の実根を算出する際には、逆に、真の実根より若干大きい数値あるいは真の実根と等しい数値が算出される。いずれも、真の実根より絶対値が小さいあるいは等しい数値が算出される。【０１３０】  サイクルを繰り返すにつれて、誤差率は急激に減少する。そして、真の実根又は真の実根の一方にある程度近��数値が算出されるようになれば、その直後のサイクルの結果の複数桁の数字は、その直前のサイクルの結果のそれと一致する。そこで、例えば上位七桁の数字を要するとすれば、六回目のサイクルの結果は、その直前のサイクルの結果と上位七桁以上の上位十一ケタの数字がすべて一致することに着目し、六回目のサイクルの結果の上位八桁目を四捨五入して得られる６．３０００００を求める実根の近似値又は求める実根の一方の近似値とする。ただし、五回目のサイクルの結果と四回目のサイクルの結果では、一致する位は最高位のみだが、境目のケースであって、同様にして得られる数値はいずれも６．３０００００だから、五回目のサイクルの終了時点で、このようにして得られる結果を求める実根又は求める実根の一方の近似値としてもよい。求める実根が無理数であっても、境目近傍のケースで起こり得る。なお、この実施例では求める実根が有限小数ということもあって、両者の結果は真の実根といずれも一致する。【０１３１】  四捨五入して一致するときは一致するものとみなすとすると、各々のサイクルの結果においての各々の直前のサイクルの結果又は初期値と各々の最高位から連続して一致するとみなせる各々の桁数は、順に、０，１，２，４，９，１１，…となる。これらの結果は、各々のサイクルにおいての各々の直前のサイクルの結果と真の実根又は真の実根の一方とで同様にしてみなしたときの桁数と各々一致し、この実施例に限らずほとんどのケースでほぼ一致する。しかも、直前のサイクルの結果又は初期値と最高位から連続して一致するとみなせる桁数がはじめて０でないサイクルである二回目のサイクルの次のサイクル以降、つまり三回目以降の各々のサイクルにおいて、各々の直前のサイクルの各々２倍±１であり、これは、許容桁数を超えない限り続く。よって、上位七桁の１／２を超える桁、つまり上位四桁以上が一致するとみなせるはじめてのサイクル、すなわち四回目のサイクルの結果の上位八桁目を四捨五入することによって、上位七桁の近似値が得られる。【０１３２】  請求項４に記載のプログラムの実施例を挙げる。与数は１２１００とする。求める平方根は±１１０であるが、初算出の正の平方根でもある正の平方根１１０を算出する時点まで実施する。初期被加値は、与数を１０２で除した商１２１である。初期加値は、初期被加値を−２で除した商−６０．５である。【０１３３】  初期被加値１２１の平方を算出すると、１４６４１の数値が算出される。次いで、前記数値を、与数１２１００から引く減算を行うと、−２５４１の数値が算出される。もし前記減算の算出値が０ならば、初期被加値が初算出すべき正の平方根と等しい又はほぼ等しいため、初期被加値とした数値を初算出すべき正の平方根又はその近似値とする。しかし、そうでないため、前記減算の算出値が消去され、次いで初期被加値に初期加値を加えた和の平方を算出すると、３６６０．２５の数値が算出される。次いで、前記平方から初期被加値の平方を引く減算を行うと、−１０９８０．７５の数値が算出される。もし前記減算の算出値が０ならば、初期被加値に初期加値を加えた和が初算出すべき正の平方根と等しい又はほぼ等しいため、前記和を正の平方根又はその近似値とする。し���し、そうでないため、前記減算の算出値が消去される。【０１３４】  初期被加値の平方を与数から引いた差−２５４１に初期加値を乗じると、１５３７３０．５の数値が算出される。次いで、初期被加値に初期加値を加えた和の平方から初期被加値の平方を引いた差−１０９８０．７５で除すると、−１４の数値が算出される。この−１４を初期被加値に加える加算を行って算出される和は１０７となり、この算出値が初回のサイクルの結果である。そして、前記加算の加数である−１４を初期加値の代わりに用いて、同じ演算を行う。そして、以後、これを繰り返す。【０１３５】  初回から五回目までのサイクルの各々の結果は、順に１０７，１０９．８５５２６３１５８，１０９．９９３１０３４４９，１０９．９９９６７１５８３，１０９．９９９９８４３６１である。最後の三回のサイクルの三つの結果を用いて数式１２で算出するとし、その際、段落番号「０１４９」の段落で説明する１０の累乗を利用する手段を併用するとする。すると、得られる算出値は１１０．０００００００００である。【０１３６】  もし、それら三つの結果を数式１２に代入して算出される数値が許容桁数の制約による影響を受けなければ、言い換えれば、それら三つの結果を代入した数式１２の真の値は１１０．０００００００００４１０…である。なお、六回目以降のサイクルも行って最後の三回のサイクルの三つの結果を用いて数式１２で算出すると、１０の累乗を利用する手段を併用しても、六回目から八回目までのサイクルの三つの結果を用いるときは、１０９．９９９９９９９９９が算出される。これは、誤差率が極めて小さくなると、許容桁数の制約のため行われる切り捨ての影響が相対的に大きくなることに起因する。なお、この実施例では初期被加値の誤差率が比較的小さいこともあって、数式１２を用いなくても、八回目のサイクルの結果が正の平方根とほぼ等しい１０９．９９９９９９９９８となり、九回目のサイクルの結果は完全に等しい１１０．０００００００００となる。以後、１１０．０００００００００が算出されることを繰り返す。
【発明を実施するための形態】
【０１３７】  請求項３以降の請求項に記載のプログラムにおいて、少ないサイクルでほぼ確実に一定以上の有効桁数の数字を得るためには、加値の選定において、請求項６などに記載のプログラムのように被加値との和が、初算出すべき正の平方根と全体的に近くなるのではなく、初期加値の絶対値の初期被加値の絶対値に対する割合をそれより比較的大きくするとよい。そこで、次の段落から段落番号「０１４０」の段落までの段落で説明する手段で加値を選定すると、少ないサイクルでほぼ確実に一定以上の有効桁数の数字を得られる。
【０１３８】  請求項６に記載のプログラムと同様にして被加値を選定し、かつ被加値の変更を最大で二回まで行うプログラムにおいて、例えば許容桁数が１２の電子計算機を用いる場合のすべてのケースでほぼ確実に十桁以上の有効桁数の数字を得るためには、初期被加値を−５で除した商を初回のサイクルの演算で用いる加値とする。そして、被加値の変更を一回行ったときのその直後のサイクルにおいては、第二期被加値を−５で除した商を加値とし、被加値の変更を二回行ったときのその直後のサイクルにおいては、第三期被加値に−０．０６を乗じた積を加値とする。
【０１３９】  すると、全部で六回のサイクルを行って四回目から六回目までの三つのサイクルで得られる三つの数値を用いて数式１２で算出すると、許容桁数が１２の電子計算機を用いる場合のすべてのケースでほぼ確実に十桁以上の有効桁数の数字を得られる。ただし、１０の累乗を利用する手段を併用するとする。繰り返すが、もし被加値の変更が一回のみ行われるとすれば、請求項５に記載のプログラムのときと同様に初回のサイクルの終了直後に限り、もしその時点で被加値の変更が行われなければ、被加値の変更は行われない。もし被加値の変更が二回行われるとすれば、初回のサイクルの終了直後に最初の被加値の変更が行われ、二回目のサイクルの終了直後に二回目の被加値の変更が行われる。
【０１４０】  請求項５に記載のプログラムと同様にして被加値を選定し、かつ被加値の変更を最大で一回まで行うプログラムにおいては、初期被加値を−３で除した商を初回のサイクルの演算で用いる加値とする。そして、被加値の変更を一回行ったときの変更直後のサイクルにおいては、第二期被加値を−３で除した商を加値とする。すると、全部で八回のサイクルを行って六回目から八回目までの三つのサイクルで得られる三つの数値を用いて数式１２で算出すると、許容桁数が１２の電子計算機を用いる場合のすべてのケースでほぼ確実に十桁以上の有効桁数の数字を得られる。ただし、１０の累乗を利用する手段を併用するとする。繰り返すが、もし被加値の変更が行われれば、初回のサイクルの終了直後に限り、もしその時点で被加値の変更が行われなければ、被加値の変更は行われない。
【０１４１】  段落番号「０１２６」から「０１３１」までの段落で挙げた実施例と、段落番号「０１３２」から「０１３６」までの段落で挙げた実施例の二つの実施例を一般的な電子計算機を用いた手計算で計算することもでき、本プログラムを用いて得られる結果と等しい又はほぼ等しい結果が得られる。許容桁数が同じ、かつ許容桁数を超える際に切り捨てるなどの条件が同じ、かつ同じ手順で行えば、結果は変わらない。ただし、累乗の計算の際の底や乗算命令及び連続して同じ数で除する際の除数の入力の省略を行い、又、逆数の計算も段落番号「０１４６」の段落で説明する手段を用いないと、手間と時間がかかる。その際、電子計算機のメーカーや機種によっては、入力手段が少し異なったり、計算できなかったりする。具体的手順を表記する際、例えば２に３を乗じる際、［２］→［×］→「３］→［＝］と表記するとする。正と負の符号を反転する際の入力を［⇔］と表記するとする。ただし、段落番号「０１４６」の段落で説明するように、反転機能を設けていなくても、可能である。
【０１４２】  例えば７．５８９８７１４で４回連続して除する際に、［÷］→［７．５８９８７１４］→［＝］→［＝］→［＝］→［＝］と入力すればよい。このようにして、除数及び［÷］の入力においてはそれぞれはじめの入力以外の入力を省いて計算できる。又、累乗計算の際に、例えば１２の６乗を計算する際に、［１２］→［×］→［＝］→［＝］→［＝］→［＝］→「＝］と入力すると便利である。ただし、等号キーの押す回数は指数より１小さく、つまり６回でなく５回押す。加えて、６乗は立方した結果の平方と等しいから、［１２］→［×］→［＝］→［＝］→［×］→［＝］と入力して、立方の算出直後に底とする数を切り替えて計算すると、もっと便利である。平方の計算を先に行ってもよい。ただし、算出値が若干異なることがあり得る。以下の実施例はこれらの手順で算出するとする。なお、カシオ製は、累乗計算の際に［×］の入力を連続して二回行うなど算出手段は少し異なる。
【０１４３】  なお、初期値などの選定の際の計算と、数式１２の計算と、与数又は与数の逆数から初期被加値の平方を引いた差及び初期被加値と初期加値の和の平方から初期被加値の平方を引いた差がそれぞれ０か否かを調べるための計算の具体的手順はそれぞれ省く。なお、与えられた指数が大きく、かつ前記指数を小さな因数のみを用いる因数分解ができないときは、累乗計算の際に与えられた指数より１だけ小さい数を指数とする累乗に底を乗じるなどの手段をとる必要がある。又、小さな因数のみを用いて因数分解ができても、前記指数が大きければ、初期値そのもの又は初期値の代わりに用いる数値そのもので連続して除すると手間と時間がかかり、それを回避するとしても、与えられた指数から１を引いた差を指数とする累乗計算を行う必要がある。又、与えられた指数が大きかったり、底とする数が大きかったりすると、許容桁数の制約により、直接には計算できないときがある。
【０１４４】  初期被加値をψ、初期加値をΔＯとそれぞれおいて、請求項３以降の記載のプログラムの基本的演算である数式１及び数式２の具体的手順の一例を次の段落に記載する。ただし、具体的手順は、まず数式１及び数式２の乗数における逆数を計算し、次いでその結果の逆数を計算し、次いでその結果に加値を乗じるとする。二回目以降のサイクルの一例として、三回目のサイクルを例にとって記載する。波括弧で括ったものは、入力でなくメモを取ることを表わすとする。新たな加値が算出された時点で取るメモについて、｛メモ，Δ１｝などと所定の位置に記入する。数式１２で算出する際に用いる数値を算出するサイクルの終了した時点で各々メモを取る必要があり、その際のメモは｛メモ，数式１２｝と所定の位置に記入する。初期被加値の平方を与数又は与数の逆数から引いた差及び初期被加値と初期加値の和の平方から初期被加値の平方を引いた差をそれぞれメモに取る。それらをそれぞれメモＡとメモＢと呼ぶとする。［メモＡ］と［メモＢ］はそれらのメモの数値をそれぞれ入力することを表わすとする。ただし、メモリー機能は用いないとする。
【０１４５】初回のサイクルの計算
［ψ］→［＋（−）］→［｜ΔＯ｜］→［×］→［＝］→［−］→［メモＡ］→
［÷］→［メモＢ］→［÷］→［＝］→［×］→（［⇔］→）［｜ΔＯ｜］→
［＋］→｛メモ，Δ１｝→［ψ］
二回目以降のサイクルの一例（三回目のサイクル）
［×］→［＝］→［−］→［メモＡ］→［÷］→［メモＢ］→［÷］→［＝］→
［×］→（［⇔］→）［｜Δ２｜］→［＋］→｛メモ，Δ３｝→［ψ］→［＝］→
｛メモ，数式１２｝→
段落番号「０１４７」及び「０１４８」で挙げる実施例と同様に三回目のサイクルの結果を数式１２で算出する際に用いるとし、又、初回のサイクルの結果は用いないものとする。次の段落にも続けて留意する点を載せる。
【０１４６】  サイクルが変わる際に計算結果を消去せず計算を継続するため、効率よく計算できる。メモＢの数値で除した直後の二つの入力により逆数が算出されるが、この具体的手順のように［÷］→［＝］と操作すると、逆数の計算ができ、分母の計算が複雑などの理由で分子より分母を先に計算するときに用いると、便利であり、又、計算を継続できる。加値の絶対値の入力直前の丸括弧で括った入力は、いずれも加値が負のときに行う。メモＢの数値が負数のとき、負数そのものを入力してもよいが、前記負数の絶対値を入力し、その入力直前又は直後に［⇔］の入力をしてもよい。もし反転機能がなくても、加算及び減算において、被加数並びに加数及び被減数並びに減数の正負の符号をそれぞれ入れ替えて行ってもよいが、計算結果の正負も入れ替わる。乗算及び除算においては、正負の符号を反転した数値の個数の寄偶による。｛メモ，数式１２｝の直前の入力の［＝］の入力は省いてもよく、その際には、次の入力、すなわち次のサイクル中の最初の入力の［×］の入力直後に表示される数値をメモする。
【０１４７】  段落番号「０１３２」から「０１３６」までの段落に記載した実施例を一般的な電子計算機を用いてこの具体的手順で手計算すると、初回のサイクルの結果は１０７．００００００００１となり、若干異なる結果となるものの、二回目から五回目までのサイクルに加えて六回目のサイクルの結果で対応するものはそれぞれ一致する。七回目及び八回目のサイクルの結果においても、対応するものはそれぞれ若干異なるが、九回目以降のサイクルは正の平方根と一致する１１０．０００００００００が繰り返し算出される。段落番号「０１２６」から「０１３１」までの段落に記載した実施例においても、同手順で行うと、七回目以降の奇数回目のサイクルの結果を除いてそれぞれのサイクルの結果で対応するものがそれぞれ若干異なる。手計算は一回多い八回のサイクルを要する。七回目以降のサイクルは６．２９９９９９９９９９８が算出されることを繰り返す。
【０１４８】  段落番号「０１３２」から「０１３６」までの段落に記載した実施例の三回目から五回目までの三つのサイクルの結果である１０９．９９３１０３４４９、１０９．９９９６７１５８３、そして１０９．９９９９８４３６１を用いて数式１２で算出する際に次の段落で説明する手段を併用しないと、切り捨ての影響もあって１０９．９９９９９９９９９の結果となる。しかし、数式１２を用いる際に前記手段を併用すると、切り捨ての影響にもよるが、１１０．０００００００００の結果となり、この実施例では真の正の平方根と一致する結果が得られる。前記手段を次の段落で説明する。なお、繰り返しになるが、三回目から五回目までの三つのサイクルの結果は本プログラムと手計算とでそれぞれ対応するものがそれぞれ一致する。
【０１４９】  この結果を数式１２で計算して得る際に同式中の第二項中の分子に入る数を計算する際の底とする数−０．００６５６８１３４の絶対値が１より小さいため、絶対値が１以上１０未満となるように１０の累乗数を乗じた積を底とする。この例では、１０３を乗じた積である−６．５６８１３４を底として平方する。そして、前記分子に入る数を除する際の分母において、１０３の平方、すなわち１０６を、本来の分母に入る数に乗じた積、この例では６２５５．３５６で除する。
【０１５０】  もし本来の底である−０．００６５６８１３４を平方すると、その算出値は切り捨ての影響もあって０．００００４３１４０３８となるが、この手段を用いると４３．１４０３８４２４１９となり、前者は後者と比較して五個の位を欠損することになる。ただし、底とする数の小数点以下第一位から下位に向かって複数の位に０が連続して入る数値のとき、すなわち底とする数の絶対値が０．０１未満のときでないと、同じ結果又はほぼ同じ結果しか得られないときが多い。
【０１５１】  請求項１又は請求項２に記載のプログラムで得られる算出値をもとにして一つ又は複数の候補に容易に絞る手段がある。その手段について次の段落で説明する。説明を簡単にするために与数は正とし、又、前記算出値も正として説明する。一般的な電子計算機の手計算で確認できるように、累乗計算を行う際は指数を１ずつ増加する手順をとるとする。ただし、断りを入れた上で底の切り替えは行うとする。以下、同様である。
【０１５２】  許容桁数の制約がある電子計算機においての入力し得る数値のうちで請求項１又は請求項２に記載のプログラムで得られる算出値より若干大きな数値を底とし、与えられた指数を指数とする累乗の下限と上限をそれぞれ計算する。そして、もし下限が与数より小さくかつ上限が与数より大きいものが存在しなければ、許容桁数を満たす位に入る数字のすべてを確定できる。もし存在したとしても、その個数に１を加えた和と同数の候補に絞られる。累乗計算の際に段落番号「０１４２」の段落に記載した手段を用いるときでも、同様である。ただし、例えば４３５３７４４．６５６の４乗根のケースの４５．６７８９１０６７９９と４５．６７８９１０６８００のように、候補が二つしかなくても、真の実根の許容桁数を満たす位のうちで最も下位の位から上位の位に向かって９と０のいずれか一方が連続して多く並べば並ぶほど、入る数字を確定できる桁数は小さくなることがあり得ることに留意する。
【０１５３】  例えば次の段落から段落番号「０１５７」の段落までの段落で説明する１２３．４５の実数の立方根のケースは、４．９７９２４７３１７７４の立方の下限が与数以上かつ４．９７９２４７３１７７３の立方の上限が与数以下である。ゆえに、許容桁数が１２の電子計算機で入力し得る数値のうちで立方の下限が与数より小さくかつ上限が与数より大きいものが存在しないから、候補は一つに絞られ、言い換えれば、許容桁数と同数の桁数の上位十二桁の数字が得られる。ただし、繰り返すが、整数部分が０であっても、その位から桁数を数えるとする。なお、平方根のときは、正又は負の平方根としての候補は常に一つに絞られる。
【０１５４】  次の段落から段落番号「０１５７」の段落までの段落で、１２３．４５の実数の立方根のケースを用いて具体的に説明する。初期値を４．１１５とする。１２３．４５の実数の立方根の真の値は４．９７９２４７３１７７３７６０…である。
【０１５５】  四回目と五回目のサイクルの結果がそれぞれ４．９７９２４７３１７７１と４．９７９２４７３１７７０と得られ、以降のサイクルはこれら二つの数値が交互に繰り返し算出される。請求項２に記載のプログラム及び請求項１に記載のプログラムで正の実根を算出するにあたっては、真の実根より若干小さい数値が算出されるため、これらの数値より若干大きい数値、例えば４．９７９２４７３１７７４の立方を算出すると、与数と等しい１２３．４５の結果が得られる。しかし、この算出値は、平方を算出した時点で許容桁数を超えるため切り捨て、次いで切り捨て後の数値を用いて立方を算出し、かつその際に再び切り捨てて得られる結果であって、４．９７９２４７３１７７４の立方においての手順も含めた前記計算手段で計算したときの下限である。逆に言えば、切り捨ての影響による減少量があるため、真の値は１２３．４５より大きい。ゆえに真の実根は４．９７９２４７３１７７４より小さいと区別できる。なお、請求項２に記載のプログラムどおりの手順で算出すると、五回目以降のサイクルで４．９７９２４７３１７７１が繰り返し算出される。
【０１５６】  次いで、許容桁数が１２の電子計算機で入力し得る数値のうちで４．９７９２４７３１７７４の次に小さい数値である４．９７９２４７３１７７３に着目する。４．９７９２４７３１７７３の平方を算出した時点の算出値である２４．７９２９０３８５１１は平方の下限であるため、これを２４．７９２９０３８５１２に切り上げて立方を算出すると、１２３．４４９９９９９９９と算出されるので、この数値も切り上げて得られる数値である１２３．４５は、手順も含めてこの手段で累乗計算したときに得られる上限である。そして、この上限が与数と等しく、切り上げの影響によるかさ上げがあるため、真の立方根は、この累乗計算の底４．９７９２４７３１７７３より大きいと区別できる。なお、上限と下限のいずれにおいても、累乗計算の途中の算出時も含めて一度でも許容桁数を超えるため切り上げ又は切り下げが行われるときに限る。もしいずれも行われなければ、真の累乗が得られることになるため、この手段を用いるまでもない。
【０１５７】  それゆえ、求める実根は４．９７９２４７３１７７３より大きく４．９７９２４７３１７７４より小さい。よって、許容桁数を満たす位のうちで最も下位の位に入る数字ですら３と確定でき、この実施例では許容桁数と同数の桁数の上位十二桁の数字を確定できる。なお、一般的な電子計算機を用いた手計算で上限の計算を容易に行う手段について記載した特許出願について、段落番号「０１６３」の段落に記載する。なお、与数が負の場合は、下限と上限の計算の際に行う切り下げと切り上げを入れ替えて行う。
【０１５８】  本発明のプログラムの手段に加えて、与えられた指数についての１０の累乗で除する除算を利用して、正の小数を指数とする累乗、例えば１２３４２．７の極めて精密な近似値を算出できる。加えて、段落番号「０１４２」の段落に記載した手段を用いると、一般的な電子計算機を用いた手計算で確認できる。底とする数は正の数とする。次の段落から段落番号「０１６４」の段落までの段落で説明する。ただし、与えられた正の小数の指数が小さい数であっても、全桁を整数とみなした数が大きく、かつ小さな因数のみを用いる因数分解ができなければ、累乗計算の際に前記数より１だけ小さい数を指数とする累乗に底を乗じるなどの手段をとる必要がある。なお、この実施例は誤差が累積されるため、誤差率は若干大きくなる。
【０１５９】  １２３４２．７について下記の数式２５のように等式が成り立つことに着目すると、１２３４の１０乗根を２７乗すればよい。１２３４の１０乗根を得る演算の際に１０乗の累乗計算をするために段落番号「０１４２」の段落に記載した手段を用いて計算する具体的手順、言い換えれば、底の切り替えは、まず５乗を計算し、次いでその結果の平方を計算するとする。２７乗の累乗計算をする具体的手順は、まず立方を計算し、次いでその結果の立方を計算し、次いでその結果の立方を計算するとする。その条件の下で、一般的な電子計算機で実際に手計算を行って確認できる手段を以下に記載する。なお、その際に本発明者が主に用いた電子計算機は、２００４年のＣａｎｏｎ製で機種はＬＳ−１２１ＴＵである。その許容桁数は１２である。
【０１６０】
【数２５】
2015228198.tif 000026
【０１６１】  １２３４の正の１０乗根の近似値を請求項２に記載のプログラムの手段で算出するとし、初期値を例えば２として計算すると、四回目のサイクルの結果が２．０３７６５９０４１８０となり、五回目のサイクルの結果も同じく２．０３７６５９０４１８０となる。よって、この近似値を２７乗すればよい。すると、２２２１０１２１３．１６１と結果が得られる。これは、真の値２２２１０１２１３．３７８…と上位九桁の数字が一致する。
【０１６２】  加えて、もっと精度をよくできる。１２３４の正の１０乗根の近似値２．０３７６５９０４１８０より若干大きな数値２．０３７６５９０４１８７の１０乗の下限は１２３３．９９９９９９９８となり、１２３４より小さい一方で、許容桁数が１２の電子計算機で入力し得る数値のうちで２．０３７６５９０４１８７の次に大きい数値である２．０３７６５９０４１８８の１０乗の下限は１２３４．０００００００４となって１２３４以上となるから、１０√１２３４の真の値の上位十二桁目の数字は７となり得ても８はなり得ないと区別できる。
【０１６３】  しかも、出願日が２０１４年４月１日で出願番号が特願２０１４−８５９０３の特許願に記載の計算手段のうちで上限の計算手段を用いて、許容桁数が１２の電子計算機で入力し得る数値のうちで２．０３７６５９０４１８７の次に小さい数値である２．０３７６５９０４１８６の１０乗の上限を計算した結果は１２３３．９９９９９９９６となり１２３４以下となるから、１２３４の正の１０乗根の真の値の上位十二桁目の数字は６となり得ても５はなり得ないと区別できる。ただし、２．０３７６５９０４１８７の１０乗の上限は１２３４．０００００００１となって１２３４より大きく、かつ下限１２３３．９９９９９９９８は１２３４より小さいから、上位十二桁目の数字は７となり得るのみでなく、７より小さい６もなり得る。
【０１６４】  よって、１２３４の正の１０乗根の真の値は下記の数式２６の示す範囲内に存在すると書ける。そして、数式２６中の下限の２７乗の下限を段落番号「０１５９」の段落に記載した手順で計算して得られる結果と、同式中の上限の２７乗の上限を同手順で計算して得られる結果により、下記の数式２７が書ける。そして、数式２７の結果により確定できる数字は段落番号「０１６１」のときと同じく上位九桁であって変わらないものの、誤差率を比較すると、誤差率が大きい方の下限ですら、約１７．１％に縮小される。中間値の２２２１０１２１３．３７５５では、約１．２４％に縮小され、上位十一桁の数字が一致する。
【０１６５】
【数２６】
2015228198.tif 000027
【０１６６】
【数２７】
2015228198.tif 000028
【０１６７】  この実施例とは逆に、正の小数を指数とする実根の算出においても、前記小数の全桁を整数とみなした数を指数として本プログラムで正の実根を算出し、次いで、前記実根を底とし、前記数を与えられた指数で除した商を指数とする累乗計算を行うと、指数とする数の全桁を整数とみなして数えた桁数にもよるが、ほとんどのケースで精度の良い近似値が得られる。この場合も底とする数は正の数とする。前記商は１０の累乗数である。
【０１６８】  なお、例えば１０の１００万乗根であっても、１００万は１０の６乗と等しいことに着目すると、１０の１０乗根の近似値を計算し、次いで前記近似値の１０乗根の近似値を計算し、以下、１０乗根の近似値を計算することを繰り返して全部で六回行うと、一般的な電子計算機の手計算であっても、かなり精度が良い近似値が得られる。実際に、１０乗の累乗計算をする際に５乗した結果を平方する手順をとるとし、段落番号「０１５２」の段落で説明した手段を用いると、許容桁数が１２の一般的な電子計算機の手計算で、１０の１００万乗根の真の値においての許容桁数と同数の上位の桁数、つまり上位十二桁の数字を１．０００００２３０２５８と１．０００００２３０２５９の二つの候補のいずれかであると限定できる。その結果、小数点以下第六位までの正の小数を指数とする累乗計算及び根計算ができ得る。次の段落でその計算手段を具体的に説明する。
【０１６９】  １０の正の１００万乗根の近似値として得られる１．０００００２３０２５０より若干大きい数値１．０００００２３０２５９の１００万乗の下限及び上限において、下限９．９９９９９２５７６４３は１０より小さく、かつ上限１０．００００９２４６０９は１０より大きい。その一方で、許容桁数が１２の電子計算機で入力し得る数値のうちで１．０００００２３０２５９の次に大きい数値１．０００００２３０２６０の１００万乗の下限１０．００００９２４６１３は１０以上で、逆に１．０００００２３０２５９の次に小さい数値１．０００００２３０２５８の１００万乗の上限９．９９９９９２５７６０６は１０以下である。よって、許容桁数が１２でも、１０の１００万乗根の上位十二桁の数字は二つの候補に絞られる。
【０１７０】  １０の正の１０００億乗根でも、二つの候補に絞られる。ただし、１兆乗根においては、許容桁数の制約のため許容桁数を満たす位に入る数字は整数部分の１以外はすべて０であって、１の累乗はすべて１のため切り上げが不要かつ切り捨ても行われないため、１．０００００００００００の一つの候補に絞られる。なお、１とほぼ等しい数値を底とするときの累乗計算の際の切り捨てによる誤差の影響は上限の計算の方に極端に偏る。そのため、例えば１．０００００２３０２５８の１００万乗の上限９．９９９９９２５７６０６と、１．０００００２３０２５８の次に大きい１．０００００２３０２５９の１００万乗の下限９．９９９９９２５７６４３のように、最小差の二数のうちの小さい方を底とする累乗の上限と大きい方を底とする累乗の下限はかなり近い数値となる。
【０１７１】  請求項１に記載のプログラム及び請求項２に記載のプログラムにおいても、与数の絶対値が１より小さいとき、特に１よりかなり小さいとき、まず、与数の逆数の実根を算出し、その算出値の逆数を算出すればよい。すると、最高位が０であっても、それから桁数を数える条件の下でも、高精度の近似値を得られる。例えば０．０００００２５６の正の４乗根の真の値は０．０４であるが、まず、０．０００００２５６の逆数である３９０６２５の正の４乗根である２５を算出する。次いで、その算出値の逆数を算出すると、求める４乗根のうちの正の方である０．０４が得られる。
【０１７２】  もし、逆数の３９０６２５でなく０．０００００２５６のままで請求項２に記載のプログラムを用いて算出すると、初期値が正数で真の値と等しい若しくはほぼ等しい値のとき以外では、サイクルを繰り返すと、０．０３９９９９８５０００±０．００００００１００００の範囲内で不規則に算出されるようになり、多数の数値の組み合わせが繰り返し算出される。これは、整数部分が０の数値の累乗は最高位から下位に向かってみて０が一つ又は複数並ぶ数値となって最高位から下位に向かってみて０以外の数字がはじめて現れる位から下位に向かって許容桁数を満たす位のうちで最も下位の位まで数えた位の個数が許容桁数１２より小さいため、結果的に、後者から前者を引いた差と同数の桁数を欠損することに起因する。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
実数の与数と自然数の指数が与えられ、前記与数の実根を計算するにあたり、初期値を底とし、与えられた自然数を指数とする累乗を、前記与数から引き、その差を前記指数で除した商を、前記初期値を底とし、前記指数から１を引いた差を指数とする累乗で除し、その商を前記初期値に加え、その和を前記初期値の代わりに用いて同じ演算を行い、以後、これを繰り返すことを特徴とするプログラム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
実数の与数と自然数の指数が与えられ、前記与数の実根を計算するにあたり、初期値を底とし、与えられた自然数を指数とする累乗に、前記指数から１を引いた差を乗じた積を前記与数に加え、その和を前記指数で除した商を、前記初期値を底とし、前記指数から１を引いた差を指数とする累乗で除し、その商を前記初期値の代わりに用いて同じ演算を行い、以後、これを繰り返すことを特徴とするプログラム。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
１以上の与数が与えられ、前記与数の平方根を計算するにあたり、前記与数の整数部分の桁数が奇数の場合、前記与数の桁数を２で除した商の整数部分を指数とする１０の累乗数で前記与数を除した桁割商を２で除した商を初期被加値とし、偶数の場合には、前記桁割商に２を乗じた積を初期被加値とし、初期被加値を底とする平方から前記与数を引いた差が正のときは前記初期被加値を−４で除した商を初期加値とし、負のときには前記初期被加値を３で除した商を初期加値とし、前記差の正負を反転した数値に前記初期加値を乗じた積を、前記初期被加値と前記初期加値との和を底とする平方から、前記初期被加値を底とする平方を引いた差で除し、その商を前記初期加値の代わりに用いて同じ演算を行い、以後、これを繰り返し、サイクルを繰り返すたびに得られる結果が各々の直前のサイクルで得た結果より各々増加する一方又は減少する一方の場合、二回以上サイクルが終了した時点における二つ前のサイクルの結果又は前記初期加値と前記初期被加値の和である前々回値から、一つ前のサイクルが終了した時点の結果である前回値を引いた差の平方を、前記前回値に２を乗じた積から、最も新しいサイクルが終了した時点の結果である最新値を引いた差から前記前々回値を引いた差で除した商に、前記前々回値を加えて算出し、サイクルを繰り返すたびに得られる結果が増加することと減少することを交互に繰り返す場合には、四回以上サイクルが終了した時点における最新の結果と、二回前のサイクルの結果と、四回前のサイクルの結果又は前記初期被加値と前記初期加値の和をそれぞれ前記最新値と、前記前回値と、前記前々回値の代わりに用いて算出し、０より大きく１より小さい与数が与えられ、前記与数の平方根を計算するにあたっては、前記与数の逆数の正の平方根を算出し、前記平方根の逆数を算出することを特徴とするプログラム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
請求項３に記載のプログラムにおいて、１以上の与数の平方根又は０より大きく１より小さい与数の逆数の平方を計算する際に、与数又は与数の逆数の整数部分の桁数が奇数の場合、前記桁数から１を引いた差を２で除した商の整数部分を指数とする１０の累乗数で与数又は与数の逆数を除した桁割商を初期被加値とし、前記初期被加値を−２で除した商を初期加値とし、偶数の場合には、前記桁割商を３で除した商を初期被加値とし、前記初期被加値を−２で除した商を初期加値とし、二回以上サイクルが終了した時点で得た最新の結果と、一つ前のサイクルが終了した時点で得た結果と、二つ前のサイクルが終了した時点で得た結果又は前記初期被加値と前記初期加値の和の三つの結果をそれぞれ最新値と、前回値と、前々回値として用いて算出することを特徴とするプログラム。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
請求項４に記載のプログラムにおいて、初回のサイクルの結果の平方が与数又は与数の逆数より大きい場合、初回のサイクルの結果を初期被加値の代わりに第二期被加値として用い、前記第二期被加値を−９又は−１０で除した商を新たな加値として用いて、二回目のサイクルを行い、最新値、前回値及び前々回値を用いて算出する際に二回目以降のサイクルの結果又は前記第二期被加値と前記加値の和を用いることを特徴とするプログラム。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
請求項５に記載のプログラムにおいて、初回のサイクルの終了後に初期被加値を第二期被加値に変更し、二回目のサイクルの結果の平方が与数又は与数の逆数より大きい場合、二回目のサイクルの結果を前記第二期被加値の代わりに第三期被加値として用い、前記初期被加値を第二期被加値に変更した際に前記第二期被加値を−９で除したときは前記第三期被加値に−０．００７を乗じた積又は前記第三期被加値を−１４０で除した商を、−１０で除したときには前記第三期被加値を−１３０で除した商を新たな加値として用いて、三回目のサイクルを行い、最新値、前回値及び前々回値を用いて算出する際に三回目以降のサイクルの結果又は前記第三期被加値と前記加値の和を用いることを特徴とするプログラム。
【手続補正８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
請求項３に記載のプログラムにおいて、初期被加値の平方が与数又は与数の逆数より大きい場合で初回のサイクルの結果の平方が与数又は与数の逆数より大きいとき、初回のサイクルの結果を初期被加値の代わりに第二期被加値として用い、前記第二期被加値を−２２又は−２０で除した商を新たな加値として用い、初期被加値の平方が与数又は与数の逆数より小さい場合で初回のサイクルの結果の平方が与数又は与数の逆数より大きいとき、初回のサイクルの結果を初期被加値の代わりに第二期被加値として用い、前記第二期被加値を−２５で除した商を新たな加値として用い、小さいときには、初期被加値と初期加値の和を初期被加値の代わりに第二期被加値として用い、前記第二期被加値を−７又は−８で除した商を新たな加値として用いて、二回目のサイクルの演算を行い、最新値、前回値及び前々回値を用いて算出する際には二回目以降のサイクルの結果又は前記第二期被加値と前記加値の和を用いることを特徴とするプログラム。