現代の時代における古代のアルゴリズム:バビロニア平方根法の公開
バビロニアの平方根の魅惑的な世界
数学は常に抽象と現実の架け橋となってきました。エジプトの壮大なピラミッドの建造から住宅ローンの金利の計算まで、数学はあらゆるところで応用されています。あまり知られていませんが、非常に興味深い古代のアルゴリズムの 1 つが、平方根を計算するバビロニア法です。
バビロニアの平方根の解読
バビロニア法は、ヘロ法またはニュートン・ラプソン法とも呼ばれ、数値の平方根を近似する反復手法です。この方法は数世紀前から存在し、先人たちの創意工夫を物語っています。この手法では、巧妙な推測戦略を使用して、近似値を繰り返し計算することで平方根に収束します。
本質的には、バビロニア平方根法は最初の推測から始まり、その推測を繰り返して調整し、実際の平方根に近づけていきます。式は次のようにまとめることができます:
式:x_{n+1} = 0.5 × (x_n + S/x_n)
式の内訳
式の要素を内訳してみましょう:
S
: 平方根を求める数値。x_n
: 平方根の現在の推定値。x_{n+1}
: 平方根の次の、より精密な推定値。
反復処理は、x_{n+1}
が x_n
に非常に近くなるまで続けられ、実際の平方根に近づいたことが保証されます。ルート。
古代バビロニアから現代の計算まで
古代バビロニア人で、25 の平方根を計算する任務を負っていると想像してください。最初の推測は 5 かもしれませんが、もっと難しい数、たとえば 37 の平方根を計算する場合はどうでしょうか?
sqrt(37) にバビロニア法を使用する手順を見てみましょう
ステップごとの例
最初の推測を選択します: x₀ = 6
次の推測を計算します:
x₁ = 0.5 × (6 + 37/6)
x₁ ≈ 6.0833
このプロセスを繰り返します:
x₂ = 0.5 × (6.0833 + 37/6.0833)
x₂ ≈ 6.0828
繰り返しを続けます:
x₃ = 0.5 × (6.0828 + 37/6.0828)
x₃ ≈ 6.0828 (収束)
実用上、6.0828 は 37 の真の平方根に十分近いです。
アプリケーションと実際の例
この方法は単なる歴史的な好奇心ではありません。現在でも実用的な用途があります:
- エンジニアリング: 設計における長さと許容誤差の計算。
- 金融: 分散と標準偏差による株価の変動性の判断。
- 日常の数学: 計算機を使わずに値を推定。
インタラクティブなコードとテスト
技術愛好家向けに、このメソッドを JavaScript で実装する方法を次に示します:
const babylonianSquareRoot = (s, initialGuess) => {
if (typeof s !== 'number' || typeof initialGuess !== 'number') {
return "無効な入力: 数値と初期推定値の両方が有効な数値であることを確認してください。"; }
if (s <= 0 || initialGuess <= 0) {
return "無効な入力: 数値と初期推測の両方が 0 より大きいことを確認してください。";
}
let x = initialGuess;
let prev;
do {
prev = x;
x = 0.5 * (x + s / x);
} while (Math.abs(x - prev) > 1e-10);
return x;
};
テスト方法は次のとおりです:
const tests = {
"37,6": 6.082762530298219,
"25,5": 5,
"10,3": 3.1622776601683795,
"13,2": 3.605551275463989,
"0,0": "無効な入力: 数値と初期推測の両方が 0 より大きいことを確認してください。"
};
よくある質問
バビロニア法を使用する理由
効率的で、理解しやすく、正しい結果に素早く収束します。
初期推定値は重要ですか?
初期推定値は必要な反復回数に影響しますが、妥当な推定値であればほぼすべて正しい平方根に収束します。
この方法はどの程度正確ですか?
この方法は、必要な精度まで非常に正確な結果を提供し、通常はほとんどの実用的な目的に十分です。
要約
平方根を計算するバビロニア法は、過去の遺物であるだけでなく、人間の創意工夫の証です。この方法は今でも有効であり、簡単に実装して正確な結果を得ることができます。古代バビロニアであれ、現代の計算であれ、このシンプルでありながら強力な方法は、既知と未知の間のギャップを埋め続けています。