Pythonで対数・指数関数を計算(math.log, math.exp, etc.)
この記事では、Pythonのmathモジュールを使用して対数関数と指数関数を計算する方法を説明します。math.log(), math.exp(), math.log10(), math.pow()などの関数の使用方法と、具体的な例を交えて解説します。
目次
math.log(): 自然対数
math.log(x)関数は、xの自然対数(底がeの対数)を返します。xは正の数でなければなりません。
import math
# 自然対数の計算
result = math.log(10)
print(f"10の自然対数: {result}")
# 底を指定して対数を計算
result = math.log(1000, 10) # 1000の10を底とする対数
print(f"1000の10を底とする対数: {result}")
第二引数に底を指定することも可能です。
import math
result = math.log(8, 2) # 2を底とする8の対数
print(f"2を底とする8の対数: {result}")
上記の例では、8の2を底とする対数は3となります。
math.exp(): 指数関数
math.exp(x)関数は、eのx乗(指数関数)を返します。
import math
# 指数関数の計算
result = math.exp(2)
print(f"eの2乗: {result}")
eはネイピア数(約2.71828)です。
math.log10(): 常用対数
math.log10(x)関数は、xの常用対数(底が10の対数)を返します。xは正の数でなければなりません。
import math
# 常用対数の計算
result = math.log10(100)
print(f"100の常用対数: {result}")
上記の例では、100の常用対数は2となります。
math.pow(): ベキ乗
math.pow(x, y)関数は、xのy乗を計算します。
import math
# ベキ乗の計算
result = math.pow(2, 3) # 2の3乗
print(f"2の3乗: {result}")
result = math.pow(10, -2) # 10の-2乗
print(f"10の-2乗: {result}")
任意の数のベキ乗を計算できます。
その他の注意点
これらの関数の引数には、数値型(int, floatなど)を使用する必要があります。不正な引数を渡すとValueErrorが発生する可能性があります。
- math.log(x)とmath.log10(x)関数は、xが正の数である必要があります。そうでない場合はValueErrorが発生します。
- math.pow(x, y)関数は、xとyが数値型である必要があります。そうでない場合はTypeErrorが発生します。
- 非常に大きい数や非常に小さい数を計算すると、オーバーフローやアンダーフローが発生する可能性があります。
関連記事
- Pythonで四捨五入・切り上げ・切り捨て(round, math.ceil, math.floor)
- Pythonで三角関数を計算(math.sin, math.cos, math.tan, etc.)
- Pythonでべき乗計算(**)
- Pythonで整数・浮動小数点数・複素数間の型変換
- Pythonで数値の書式設定(format, f文字列 (Python 3.6以降))
- Pythonで分数演算(fractions.Fraction)
- Pythonで十進数演算(decimal.Decimal)
- Pythonで最大公約数・最小公倍数を計算(math.gcd, lcm (Python 3.9以降))
- Pythonで乱数を生成(random.random, random.randint, random.uniform, random.gauss, etc.)