Pythonの数学関数入門 ― 特殊関数と定数の使い方
この記事では、Python標準ライブラリのmathモジュールで利用できる特殊関数と定数について詳しく解説します。数学的な計算を行う際に役立つこれらの機能をマスターすれば、より高度な数値処理が可能になります。
mathモジュールの主な定数
まず、mathモジュールでよく使われる代表的な定数を紹介します。
- pi ― 円周率
- e ― 自然対数の底(ネイピア数)
- inf ― 正の無限大
- nan ― 非数(Not a Number)
- tau ― 2π(円周率の2倍)
それぞれの定数が持つ値は以下の通りです。
| pi | 3.141592… |
| e | 2.718281… |
| inf | 無限大(∞) |
| nan | 非数(Not a Number) |
| tau | 6.283185… |
主な特殊関数
次に、mathモジュールが提供する便利な特殊関数を見ていきましょう。
gamma(n) ― ガンマ関数 Γ(n) の値を返します。n が正の整数の場合、(n−1)! の階乗と同じ結果になります。
isinf(x) ― 引数 x が無限大(正または負)であるかどうかを判定します。
isnan(x) ― 引数 x が NaN(非数)であるかどうかを判定します。
isfinite(x) ― x が無限大でも NaN でもない場合に
Trueを返し、それ以外の場合はFalseを返します。erf(x) ― 誤差関数(error function)の値を返します。統計学や確率論の分野で広く利用されます。
実行例
それでは、これらの関数を実際に使ってみましょう。
import math
num = 10
print(math.gamma(num))
if (math.isnan(math.nan)):
print("The number is not a number")
else:
print("The number is a number")
if (math.isinf(math.inf)):
print("The number is positive infinity")
else:
print("The number is not positive infinity")
print(math.isfinite(math.inf))
出力結果
362880.0 The number is not a number The number is positive infinity False
この例では、gamma(10) が 9! = 362880 を返し、isnan() や isinf() による判定、さらに isfinite() が無限大に対して False を返すことが確認できます。
まとめ
この記事では、Pythonのmathモジュールにおける特殊関数と定数について学びました。pi や e といった基本的な定数から、gamma()、erf() などの高度な関数まで、これらを活用することで科学技術計算やデータ分析の幅が大きく広がります。ぜひ実際のコードで試してみてください。
-
Pythonで数値の自然対数を計算する方法を解説
mathモジュールによる対数計算 Pythonでは、標準ライブラリのmathモジュールに、対数値を計算するための関数が2つ定義されています。log()関数は数値の自然対数(底がネイピア数 e)を返し、log10()関数は常用対数(底が10)を計算します。 log()関数は最大2つの引数を受け取ります。第1引数には対象となる数値を指定し、第2引数には底を指定できます。第2引数を省略した場合、デフォルトで自然対数が計算されます。 log()関数の使用例 import math print(math.log(100.12) : , math.log(100.12)) print(math.log(1
-
Pythonの文字列で数式を計算する方法:eval関数の使い方と注意点
Pythonでは、eval関数を使うことで、文字列として記述された数学式(数式表現)を実際に評価し、計算結果を取得できます。基本的な使い方例えば、(4*5) + 22 のように数式が含まれた文字列がある場合、それをevalに渡すだけで計算結果を得ることができます。>>> s = (4*5) + 22 >>> eval(s) 42evalの評価ルールevalは、括弧が省略された場合の演算子の優先順位などを含め、Pythonの通常の数式評価ルールに従って処理を行います。そのため、同じ式をPythonコードとして直接書いた場合とまったく同じ結果になります。セキュリ