Python math モジュールは、浮動小数点数に対する多くの数学演算関数を提供します。

Python cmath モジュールには、複素数演算のための関数がいくつか含まれています。

cmath モジュールの関数は math モジュールの関数とほぼ同じですが、違いは cmath モジュールが複素数を演算するのに対し、math モジュールは実数の数学演算を扱うことです。

math または cmath 関数を使用するには、まずインポートする必要があります:

import math

math パッケージの内容を確認する:

>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>

各関数の解説:

Python の複素数サポートと cmath モジュールの応用

Python は複素数演算をサポートしており、Python での複素数は次のように表現されます。 C==c.real+c.imag*j、複素数 C はその実部と虚部から構成されます。

複素数に対して、Python は加減乗除演算をサポートし、同時に cmath モジュールが他の複雑な演算をサポートします。cmath モジュールは Python の math モジュールに対応しており、math は実数に対するサポートを提供します。ここでは主に cmath モジュールのいくつかの関数の使い方について説明します。

cmath パッケージの内容を確認する:

>>> import cmath
>>> dir(cmath)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
>>>

1. 極座標とデカルト座標表現の変換。

C==c.real+c.imag*jの複素数表示方法は複素数のデカルト表示法です。cmath モジュールの polar() メソッドと rect() メソッドを使用すると、複素数を極座標表示とデカルト表示の間で変換できます。例:

>>> import cmath
>>> Z=1+2j
>>> print cmath.polar(Z)
(2.23606797749979, 1.1071487177940904)
>>> a,b=cmath.polar(Z)
>>> print cmath.rect(a,b)
(1+2j)
>>>

polar 関数は、入力されたデカルト形式の複素数を計算し、出力は2要素のタプルで、最初の値は Z の絶対値、2番目は偏角です。rect() 関数は、入力された絶対値と偏角を計算してデカルト表現を出力します。

複素数の偏角だけを求める必要がある場合は、cmath.phrase(x) 関数を呼び出すことで、偏角値を返します。

2. 複素数の冪指数と対数関数

複素数の指数関数は cmath.exp(x) で、e^x の式を求めるために使います。

cmath.log(x[,base])Base を底とする x の対数を求めます。

cmath.log10(x)10 を底とする x の対数を求めます。

cmath.sqrt(x)x の平方根を求めます。

3. 複素数の三角関数

すべての三角関数の計算を含みます。acos(x) asin(x) atan(x) sin(x) cos(x) tan(x)。

4. パラメータの種類判定

cmath.isinf(x)x の実部または虚部が無限大の場合、true を返します。

cmath.isnan(x)x の実部または虚部が数値でない場合、true を返します。

5. 定数サポート

cmat.pi浮動小数点値で、円周率の大きさを表します。

cmat.e浮動小数点値で、自然対数の底を表します。