【Python】cmath で複素数の計算

田中太郎
田中太郎

Pythonの標準モジュールであるcmath を使って複素数の計算をします!

複素数を定義する

まず、複素数を定義します

ここではまだ、cmath をimport する必要はないです

"""複素数を定義する"""
z = 2 + 3j
print(z)
print(type(z))

"""出力
(2+3j)
<class 'complex'>
"""

z = 2 + 3*j
とかにすると読み込んでくれません。虚数が変数の時は
z = 2 + a*1j
と書く必要があります。

【cmath.polar】複素数を極座標に変換

複素数を極座標に変換します。引数はcomplex型、戻り値は(大きさ、角度[rad])のタプルが返ってきます。

import cmath

"""虚数(z = a + bj)を極座標(z = (r, θ))に変換する。"""
z = 3 + 4j
z1 = cmath.polar(z)
print(z1)

"""出力
(5.0, 0.9272952180016122)
<class 'tuple'>
"""

【cmath.rect】極座標を複素数に変換する

極座標を複素数に変換します。引数は(大きさ, 角度)、戻り値はcomplex 型です。

import cmath

"""極座標(z = (r, θ))を複素数(z = a + bj)に変換する"""
z = cmath.rect(1, cmath.pi)
print(z)
print(type(z))

"""出力
(-1+1.2246467991473532e-16j)
<class 'complex'>
"""

【cmath.exp】EXPを計算する

exp(x) の計算をします。引数は(大きさ, 角度)、戻り値はcomplex 型です。

import cmath

"""z = exp(r, θ)"""
z = cmath.exp(1, cmath.pi)
print(z)
print(type(z))

"""出力
(-1+1.2246467991473532e-16j)
<class 'complex'>
"""

cmath にある定数

import cmath

"""cmathにある定数"""
print(cmath.pi)  # 3.14159...
print(cmath.e)  # 2.72828...
print(cmath.tau)  # 6.28318
print(cmath.inf)  # float("inf")
print(cmath.infj)  # float("infj")
print(cmath.nan) # float("nan")
print(cmath.nanj) # float("nanj")

まとめ

python 標準モジュールであるcmath の説明をしました。ほかにも機能があるので、気になる方は公式ドキュメントをご覧ください。

コメント

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