Pythonの複素数?
複素数は実数から作成されます。 Pythonの複素数は、直接代入ステートメントを使用するか、complex()関数を使用して作成できます。
2つの実数を使用している場合に主に使用される複素数。たとえば、電圧(V)と電流(C)で定義される電気回路は、幾何学、科学計算、微積分学で使用されます。
構文
complex([real[, imag]])
Pythonで単純な複素数を作成する
>>> c = 3 +6j >>> print(type(c)) <class 'complex'> >>> print(c) (3+6j) >>> >>> c1 = complex(3,6) >>> print(type(c1)) <class 'complex'> >>> print(c1) (3+6j)
上記の結果から、Pythonの複素数は複素数型であることがわかります。各複素数は、1つの実数部と1つの虚数部で構成されます。
Python複素数-属性と関数
>>> #Complex Number: >>> c = (3 + 6j) >>> >>> #Real Part of complex number >>> print('Complex Number: Real Part is = ', c. real) Complex Number: Real Part is = 3.0 >>> >>> #Imaginary Part of complex number >>> print('Complex Number: Imaginary Part is = ', c. imag) Complex Number: Imaginary Part is = 6.0 >>> >>> #Conjugate of complex number >>> print('Complex Number: conjugate Part = ', c. conjugate()) Complex Number: conjugate Part = (3-6j)
複素数の数学的計算
複素数に対して簡単な数学的計算を行うことができます:
>>> #first complex number >>> c1 = 3 + 6j >>> #Second complex number >>> c2 = 6 + 15j >>> >>> #Addition >>> print("Addition of two complex number =", c1 + c2) Addition of two complex number = (9+21j) >>> >>> #Subtraction >>> print("Subtraction of two complex number =", c1 - c2) Subtraction of two complex number = (-3-9j) >>> >>> #Multiplication >>> print("Multiplication of two complex number =", c1 * c2) Multiplication of two complex number = (-72+81j) >>> >>> #Division >>> print("Division of two complex number =", c1 / c2) Division of two complex number = (0.4137931034482759-0.03448275862068964j)
ただし、複素数は<、>、<=、=>などの比較演算子をサポートしておらず、TypeErrorメッセージを介してサポートされます:
>>> c2 <= c2 Traceback (most recent call last): File "<pyshell#40>", line 1, in <module> c2 <= c2 TypeError: '<=' not supported between instances of 'complex' and 'complex'
Pythoncmathモジュール
Python cmathモジュールは、複素数の数学関数へのアクセスを提供します。数学モジュール関数を使用して、複素数の重要な機能のいくつかを見てみましょう。
複素数の位相
複素数の位相は、実軸と虚数部を表すベクトルの間の角度です。
mathモジュールとcmathモジュールによって返される位相はラジアンであり、numpy.degrees()関数を使用して度に変換します。
import cmath, math, numpy c = 4+ 4j # phase phase = cmath.phase(c) print('4+ 4j Phase =', phase) print('Phase in Degrees =', numpy.degrees(phase)) print('-4-4j Phase =', cmath.phase(-4-4j), 'radians. Degrees =', numpy.degrees(cmath.phase(-4-4j))) # we can get phase using math.atan2() function too print('Complex number phase using math.atan2() =', math.atan2(2, 1))
結果
4+ 4j Phase = 0.7853981633974483 Phase in Degrees = 45.0 -4-4j Phase = -2.356194490192345 radians. Degrees = -135.0 Complex number phase using math.atan2() = 1.1071487177940904
cmathモジュール定数
複素数の計算で使用されるcmathモジュールで利用可能なコンスタンスがいくつかあります:
import cmath print('π =', cmath.pi) print('e =', cmath.e) print('tau =', cmath.tau) print('Positive infinity =', cmath.inf) print('Positive Complex infinity =', cmath.infj) print('NaN =', cmath.nan) print('NaN Complex =', cmath.nanj)
結果
π = 3.141592653589793 e = 2.718281828459045 tau = 6.283185307179586 Positive infinity = inf Positive Complex infinity = infj NaN = nan NaN Complex = nanj
電源およびログ機能
cmath()モジュールは、対数演算と累乗演算に役立つ関数をいくつか提供します。
import cmath c = 1 + 2j print('e^c =', cmath.exp(c)) print('log2(c) =', cmath.log(c, 2)) print('log10(c) =', cmath.log10(c)) print('sqrt(c) =', cmath.sqrt(c))
結果
e^c = (-1.1312043837568135+2.4717266720048188j) log2(c) = (1.1609640474436813+1.5972779646881088j) log10(c) = (0.3494850021680094+0.480828578784234j) sqrt(c) = (1.272019649514069+0.7861513777574233j)>
三角関数
import cmath c = 2 + 4j print('arc sine value:\n ', cmath.asin(c)) print('arc cosine value :\n', cmath.acos(c)) print('arc tangent value of complex number c :\n', cmath.atan(c)) print('sine value:\n', cmath.sin(c)) print('cosine value:\n', cmath.cos(c)) print('tangent value:\n', cmath.tan(c))
結果
arc sine value: (0.4538702099631225+2.198573027920936j) arc cosine value : (1.1169261168317741-2.198573027920936j) arc tangent value of complex number c : (1.4670482135772953+0.20058661813123432j) sine value: (24.83130584894638-11.356612711218174j) cosine value: (-11.36423470640106-24.814651485634187j) tangent value: (-0.0005079806234700387+1.0004385132020523j)
双曲線関数
import cmath c = 2 + 4j print('Inverse hyperbolic sine value: \n', cmath.asinh(c)) print('Inverse hyperbolic cosine value: \n', cmath.acosh(c)) print('Inverse hyperbolic tangent value: \n', cmath.atanh(c)) print('Hyperbolic sine value: \n', cmath.sinh(c)) print('Hyperbolic cosine value: \n', cmath.cosh(c)) print('Hyperbolic tangent value: \n', cmath.tanh(c))
結果
Inverse hyperbolic sine value: (2.183585216564564+1.096921548830143j) Inverse hyperbolic cosine value: (2.198573027920936+1.1169261168317741j) Inverse hyperbolic tangent value: (0.09641562020299617+1.3715351039616865j) Hyperbolic sine value: (-2.370674169352002-2.8472390868488278j) Hyperbolic cosine value: (-2.4591352139173837-2.744817006792154j) Hyperbolic tangent value: (1.0046823121902348+0.03642336924740368j)
-
Pythonで整数の文字列を複素数に解凍するにはどうすればよいですか?
文字列には、カンマで区切られた2つの整数が含まれています。最初に、数字を持つ2つの文字列のリストに分割されます。 >>> s="1,2".split(",") >>> s ['1', '2'] 次に、2つの項目が整数に変換され、complex()関数の引数として使用されます >>> complex(int(s[0]), int(s[1])) (1+2j) これにより、複素数の整数の文字列が解凍されます
-
Pythonで複素数を使用するにはどうすればよいですか?
複素数は実数aとbのペアであり、ほとんどの場合a+biまたはa+ibと表記されます。ここで、iは虚数単位と呼ばれ、のラベルとして機能します。第二期。数学的には、i2=-1です。 iの代わりにjが使用されることもあります。 複素数を変数に割り当てる方法は次のとおりです。 >>> a=5+6j >>> a (5+6j) >>> type(a) <class 'complex'> Pythonには、複雑なデータ型を返す組み込み関数complex()があります。 complex(x)は、xを実数部、虚数部をゼロとする