Python|指数・対数を計算する:math.exp(), math.log()

1. はじめに

Pythonで数値計算を行う際、「指数関数」や「対数関数」は、統計処理・機械学習・金融計算など様々な場面で活躍します。Pythonでは、mathモジュールを使うことで、簡単に指数・対数の計算が可能です。

本記事では、math.exp()math.log()の使い方や応用例について、初心者でも理解できるように丁寧に解説していきます。これらの関数を使いこなすことで、実務での計算業務やアルゴリズム開発の幅がぐっと広がります。

 

2. Pythonで指数・対数を計算する基本:math.exp(), math.log()

math.exp(x):eのx乗を計算

math.exp(x)は、自然対数の底e(約2.718)をx乗した値を返します。例えば、exp(1)ならeの1乗、exp(2)ならeの2乗を求めます。

import math

# eの1乗を求める
result = math.exp(1)
print(result)

実行結果:

2.718281828459045

math.log(x[, base]):対数を求める

math.log(x)は、自然対数(底e)を計算します。
また、math.log(x, base)のように第二引数で底を指定することで、任意の底の対数も計算可能です。

import math

# 自然対数を求める(ln(10))
ln_result = math.log(10)

# 底10の対数(log10)
log10_result = math.log(1000, 10)

print("ln(10):", ln_result)
print("log10(1000):", log10_result)

実行結果:

ln(10): 2.302585092994046
log10(1000): 3.0

 

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

指数関数を使った成長のモデル化(例:人口増加)

指数関数は「何倍にも増える」成長を表現する際によく使われます。例えば、人口やウイルス感染者数などのシミュレーションに有効です。

import math

# 初期人口
P0 = 1000
# 増加率(例:10%増)
r = 0.1
# 時間(年)
t = 5

# 指数関数による人口増加モデル:P = P0 * e^(rt)
P = P0 * math.exp(r * t)
print("5年後の人口推定:", P)

実行結果:

5年後の人口推定: 1648.7212707001281

対数を使ったスケール変換(例:データのスケーリング)

機械学習や統計解析では、数値のスケールが大きすぎる場合、対数変換してスケーリングすることで学習精度を高めるテクニックがあります。

import math

data = [10, 100, 1000, 10000]

# log10でスケール変換
scaled_data = [math.log(x, 10) for x in data]
print("スケーリング後のデータ:", scaled_data)

実行結果:

スケーリング後のデータ: [1.0, 2.0, 3.0, 4.0]

対数を使って逆算する(例:利率の年数逆算)

例えば「何年後に資産が2倍になるか?」などを対数を使って逆算することができます。

import math

# 元本に対して2倍にするには何年かかるか(利率5%)
r = 0.05
target_ratio = 2

# 対数で時間tを逆算:t = ln(2) / r
t = math.log(target_ratio) / r
print("資産が2倍になる年数:", t)

実行結果:

資産が2倍になる年数: 13.862943611198906

 

4. 注意点・エラー対策

math.log()に負の値を渡すとエラー

math.log()に0や負の値を渡すとValueErrorになります。必ずx > 0であることを確認しましょう。

import math

try:
    print(math.log(-5))
except ValueError as e:
    print("エラー:", e)

実行結果:

エラー: math domain error

math.exp()で非常に大きな値を渡すとオーバーフロー

math.exp(1000)のように非常に大きな値を渡すとOverflowErrorが発生します。指数爆発には注意が必要です。

import math

try:
    print(math.exp(1000))
except OverflowError as e:
    print("エラー:", e)

実行結果:

エラー: math range error

 

5. まとめ

本記事では、Pythonのmath.exp()math.log()を使って指数・対数の計算を行う方法を解説しました。

  • math.exp(x):eのx乗を計算
  • math.log(x):自然対数を計算
  • math.log(x, base):任意の底の対数も可能
  • 実務例:人口成長・資産運用・スケーリング・逆算など

指数や対数は、機械学習・統計・経済計算など様々な現場で使われています。Pythonのmathモジュールを活用することで、より実践的な数値処理が可能になります。学習のコツは、「使う場面を想定しながら手を動かす」こと。実務と結びつけながら学ぶことで、理解が深まります。

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