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

複素数を極座標(半径・角度)に変換するPythonプログラムの書き方

Pythonでは、複素数を極座標形式(半径と角度のペア)に変換することができます。本記事では、x + yj の形式で表される複素数 c を極座標へ変換する方法を、具体例とともにわかりやすく解説します。

複素数と極座標の基本

複素数 c = x + yj を極座標で表す場合、次の2つの値が必要になります。

  • 半径(絶対値):複素数の大きさを表し、√(x² + y²) で計算されます。
  • 角度(偏角):正の実軸(x軸の正方向)から、原点と複素数 x + yj を結ぶ線分までの反時計回りの角度です。

cmathライブラリを使った変換方法

Pythonの標準ライブラリである cmath を使うと、この変換は非常に簡単に行えます。

  • abs() 関数に複素数を渡すと、その大きさ(半径)が返されます。
  • cmath.phase() 関数を使うと、複素数の角度(偏角)がラジアン単位で返されます。

解法の手順

変換は以下のステップで実現できます。

  1. cmath ライブラリをインポートする。
  2. (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です。わずか数行のコードで数学的な変換が完結するため、信号処理や電気回路計算など、複素数を扱う場面でぜひ活用してみてください。

  1. PythonでN番目のフィボナッチ数を求める方法|再帰と動的計画法を解説

    この記事では、Pythonを使ってN番目のフィボナッチ数を計算する方法を解説します。 フィボナッチ数とは フィボナッチ数は、次の漸化式によって定義される数列です。 Fn = Fn-1 + Fn-2 初期値は F0 = 0、F1 = 1 となります。したがって、フィボナッチ数列の最初のいくつかの項は以下のようになります。 0, 1, 1, 2, 3, 5, 8, 13, ………… フィボナッチ数を求めるには、大きく分けて「再帰」と「動的計画法」の2つのアプローチがあります。それぞれの実装方法をPythonスクリプトで見ていきましょう。 方法1:再帰を使うアプローチ まずは最も直感的な再帰による実

  2. 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)のどちらの手法でも求めることができます。それでは、それぞれの実装方法