Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの数学関数入門 ― 特殊関数と定数の使い方

この記事では、Python標準ライブラリのmathモジュールで利用できる特殊関数と定数について詳しく解説します。数学的な計算を行う際に役立つこれらの機能をマスターすれば、より高度な数値処理が可能になります。

mathモジュールの主な定数

まず、mathモジュールでよく使われる代表的な定数を紹介します。

  • pi ― 円周率
  • e ― 自然対数の底(ネイピア数)
  • inf ― 正の無限大
  • nan ― 非数(Not a Number)
  • tau ― 2π(円周率の2倍)

それぞれの定数が持つ値は以下の通りです。

pi3.141592…
e2.718281…
inf無限大(∞)
nan非数(Not a Number)
tau6.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モジュールにおける特殊関数と定数について学びました。pie といった基本的な定数から、gamma()erf() などの高度な関数まで、これらを活用することで科学技術計算やデータ分析の幅が大きく広がります。ぜひ実際のコードで試してみてください。

  1. 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

  2. Pythonの文字列で数式を計算する方法:eval関数の使い方と注意点

    Pythonでは、eval関数を使うことで、文字列として記述された数学式(数式表現)を実際に評価し、計算結果を取得できます。基本的な使い方例えば、(4*5) + 22 のように数式が含まれた文字列がある場合、それをevalに渡すだけで計算結果を得ることができます。>>> s = (4*5) + 22 >>> eval(s) 42evalの評価ルールevalは、括弧が省略された場合の演算子の優先順位などを含め、Pythonの通常の数式評価ルールに従って処理を行います。そのため、同じ式をPythonコードとして直接書いた場合とまったく同じ結果になります。セキュリ