バビロニア法による平方根の求め方【C++実装付きで解説】
バビロニア法(Babylonian method)は、非線形方程式を解くための数値計算法であるニュートン・ラプソン法を基礎とする、平方根を求めるための古典的なアルゴリズムです。古代バビロンで使われていた計算手法に由来することから、この名前が付けられています。
アルゴリズムの基本的な考え方
この方法のアイデアは非常にシンプルです。まず任意の初期値 x(対象となる数値そのもの)と y = 1 を用意します。次に、x と y の平均値を取ることで、平方根のより良い近似値を得ます。その後、y の値を「元の数値 ÷ x」で更新します。この処理を、x と y の相対誤差が十分に小さくなるまで繰り返すことで、高精度な平方根が求まります。
入力と出力
入力: 数値: 65 出力: 65の平方根は: 8.06226
アルゴリズムの手順
sqRoot(number)
入力: 実数の数値。
出力: 与えられた数値の平方根。
Begin
x := number
y := 1
precision := 0.000001
while relative error of x and y > precision, do
x := (x+y) / 2
y := number / x
done
return x
End
C++での実装例
以下は、バビロニア法をC++で実装したサンプルコードです。誤差の判定には abs(x - y)/abs(x)(相対誤差)を使用し、精度0.000001に達した時点で計算を終了します。
#include<iostream>
#include<cmath>
using namespace std;
float sqRoot(float number) {
float x = number, y = 1; // 初期値として number と 1 を設定
float precision = 0.000001; // 結果は小数点以下6桁まで正確
while(abs(x - y)/abs(x) > precision) {
x = (x + y)/2; // x と y の平均で近似値を更新
y = number/x; // y を number / x で更新
}
return x;
}
int main() {
int n;
cout << "Enter Number to find square root: "; cin >> n;
cout << "The square root of " << n <<" is: " << sqRoot(n);
}
実行結果
Enter Number to find square root: 65 The square root of 65 is: 8.06226
このように、バビロニア法は反復回数ごとに近似精度が急速に向上するため、効率的かつ簡単に平方根を計算できる優れた手法です。標準ライブラリの sqrt() 関数を使わずに平方根を実装したい場合や、数値計算の基礎を学びたい場合にぜひ参考にしてください。
-
Excelで数値の2乗と平方根を求める方法
```html Excelは、ほとんどあらゆる数学的な問題に対応できる万能ツールです。その中でも「2乗(べき乗)」と「平方根」の計算は、日常業務やデータ分析で非常によく使われる処理の一つです。この記事では、Excelで数値の2乗と平方根を求める方法を、初心者の方にもわかりやすく解説します。 数学の世界では、一つの問題に複数の解法が存在することがよくあります。Excelも同様で、2乗や平方根を求める方法はいくつかあります。ここでは、その中でも最も簡単で実用的な方法をご紹介します。 Excelで2乗を求める方法 Excelで数値の2乗を求めるには、べき乗演算子「^」を使用した次の数式を使います。
-
Excelで数値の平方根を求める3つの方法【SQRT・POWER・指数演算子】
Microsoft Excelは、複雑な計算を効率的に行える強力なツールです。Excelを日常的に使っている方なら、数学的な計算処理に触れる機会も多いのではないでしょうか。しかし、意外とシンプルな計算でつまずくこともあります。その代表例が「平方根の計算」です。この記事では、Excelで数値の平方根を求める3つの方法をわかりやすく解説します。 Excelで平方根を計算する基本 SQRT関数、POWER関数、そして指数演算子(^)を使えば、Excelで簡単に平方根を計算できます。それぞれの特徴と使い方を順番に見ていきましょう。 1. SQRT関数を使って平方根を求める SQRT関数は、Excelに