Python|平方根(ルート)の計算:math.sqrt()

1. はじめに

Pythonで数学的な計算を行う際、平方根(ルート)の計算は非常によく使われる処理の一つです。本記事では、Pythonの標準ライブラリである math モジュールに含まれる sqrt() 関数を使って平方根を求める方法をわかりやすく解説します。

「Python|平方根(ルート)の計算:math.sqrt()」というテーマのもと、基本的な使い方から、実務に役立つ応用パターン、初心者がつまずきやすいポイントまで丁寧に紹介します。検索からこの記事に訪れた方も、読み終える頃には math.sqrt() を自在に使いこなせるようになっているはずです。

 

2. Pythonで平方根を求める:math.sqrt()の基本

math.sqrt()とは?

math.sqrt() は、与えられた数値の平方根(ルート)を計算して返す関数です。ルート計算は、統計処理・機械学習・物理演算・グラフィックス処理など、さまざまな分野で利用されます。

基本的な使い方

以下に、math.sqrt() の基本的な使い方を示します。

import math

# 平方根を求めたい数値
num = 25

# math.sqrt()で平方根を計算
root = math.sqrt(num)

# 結果を出力
print("25の平方根は:", root)

実行結果:

25の平方根は: 5.0

小数や他の数値でも使えます。負の数を入力するとエラーになります(この点は後述)。

 

3. よくある使い方・応用例

リスト内のすべての要素に平方根を適用する

データの前処理や正規化の一環として、リスト内のすべての要素に平方根を取る処理は実務でもよく使われます。

import math

# 数値のリスト
nums = [4, 9, 16, 25]

# 各要素にmath.sqrt()を適用
roots = [math.sqrt(n) for n in nums]

print("平方根のリスト:", roots)

実行結果:

平方根のリスト: [2.0, 3.0, 4.0, 5.0]

平方根を使った距離計算(ユークリッド距離)

2点間の距離を求める計算にも sqrt() はよく登場します。以下は2次元座標間のユークリッド距離を求める例です。

import math

# 2点の座標
point1 = (1, 2)
point2 = (4, 6)

# ユークリッド距離を計算
distance = math.sqrt((point2[0] - point1[0])**2 + (point2[1] - point1[1])**2)

print("2点間の距離:", distance)

実行結果:

2点間の距離: 5.0

平方根の近似処理との比較

べき乗演算(**0.5)でも平方根は求められますが、math.sqrt() の方が読みやすく、明示的でバグを防げます。

# べき乗演算でもOK(同じ結果)
print(25 ** 0.5)  # => 5.0

 

4. 注意点・エラー対策

負の数を渡すとValueErrorが発生する

math.sqrt() は、負の数には対応していません。以下のようなエラーになります。

import math

print(math.sqrt(-4))  # 負の数

実行結果:

ValueError: math domain error

対策としては、入力値が負でないか事前にチェックする、あるいは複素数の平方根を扱う cmath モジュールを使う方法があります。

例:負の数をチェックしてから処理

import math

def safe_sqrt(x):
    if x < 0:
        return "負の数の平方根は計算できません"
    else:
        return math.sqrt(x)

print(safe_sqrt(-9))
print(safe_sqrt(16))

実行結果:

負の数の平方根は計算できません
4.0

複素数を使いたい場合

cmath.sqrt() を使うと、複素数の平方根も計算できます。

import cmath

print(cmath.sqrt(-4))  # => 2j(虚数)

実行結果:

2j

 

5. まとめ

  • math.sqrt() を使うと、Pythonで簡単に平方根(ルート)を計算できる
  • リスト処理・距離計算など、実務でも活用範囲は広い
  • 負の数には注意が必要。事前にチェックするか、cmath モジュールを使う

数学処理の基礎である平方根の計算は、Pythonプログラミングにおいて頻出です。これを機に math.sqrt() の使い方をしっかり身につけて、今後の数値処理・データ分析にも役立てていきましょう!

タイトルとURLをコピーしました