複素数を極座標(半径・角度)に変換するPythonプログラムの書き方
Pythonでは、複素数を極座標形式(半径と角度のペア)に変換することができます。本記事では、x + yj の形式で表される複素数 c を極座標へ変換する方法を、具体例とともにわかりやすく解説します。
複素数と極座標の基本
複素数 c = x + yj を極座標で表す場合、次の2つの値が必要になります。
- 半径(絶対値):複素数の大きさを表し、√(x² + y²) で計算されます。
- 角度(偏角):正の実軸(x軸の正方向)から、原点と複素数
x + yjを結ぶ線分までの反時計回りの角度です。
cmathライブラリを使った変換方法
Pythonの標準ライブラリである cmath を使うと、この変換は非常に簡単に行えます。
abs()関数に複素数を渡すと、その大きさ(半径)が返されます。cmath.phase()関数を使うと、複素数の角度(偏角)がラジアン単位で返されます。
解法の手順
変換は以下のステップで実現できます。
cmathライブラリをインポートする。(abs(c), cmath.phase(c))のペア(タプル)を返す関数を定義する。
実装例
実際のコードを見てみましょう。入力が c = 2+5j の場合、出力は (5.385164807134504, 1.1902899496825317) となります。
import cmath
def solve(c):
return (abs(c), cmath.phase(c))
c = 2+5j
print(solve(c))
入力
2+5j
出力
(5.385164807134504, 1.1902899496825317)
コードの解説
abs(2+5j) は √(2² + 5²) = √29 ≈ 5.385... を計算します。一方、cmath.phase(2+5j) は arctan(5/2) ≈ 1.190... ラジアン(約68.2度)を返します。これにより、複素数が「距離」と「角度」の組み合わせとして正確に表現されます。
まとめ
複素数を極座標に変換するには、abs() で半径を、cmath.phase() で角度を取得するだけでOKです。わずか数行のコードで数学的な変換が完結するため、信号処理や電気回路計算など、複素数を扱う場面でぜひ活用してみてください。
-
PythonでN番目のフィボナッチ数を求める方法|再帰と動的計画法を解説
この記事では、Pythonを使ってN番目のフィボナッチ数を計算する方法を解説します。 フィボナッチ数とは フィボナッチ数は、次の漸化式によって定義される数列です。 Fn = Fn-1 + Fn-2 初期値は F0 = 0、F1 = 1 となります。したがって、フィボナッチ数列の最初のいくつかの項は以下のようになります。 0, 1, 1, 2, 3, 5, 8, 13, ………… フィボナッチ数を求めるには、大きく分けて「再帰」と「動的計画法」の2つのアプローチがあります。それぞれの実装方法をPythonスクリプトで見ていきましょう。 方法1:再帰を使うアプローチ まずは最も直感的な再帰による実
-
PythonでN番目のカタラン数を計算する方法【再帰・動的計画法】
本記事では、N番目のカタラン数(Catalan number)を求める方法について解説します。カタラン数とは、以下の漸化式で定義される自然数の数列です。$$c_{0} = 1\;and\; c_{n+1} = \displaystyle\sum\limits_{i=0}^nc_{i} c_{n-i}\; for n\geq 0 ;$$n = 0, 1, 2, 3, … に対するカタラン数は、1, 1, 2, 5, 14, 42, 132, 429, …… と続いていきます。カタラン数は、再帰(リカージョン)と動的計画法(DP)のどちらの手法でも求めることができます。それでは、それぞれの実装方法