Search on blog:

Python: Liczby zespolone - część rzeczywista i wyimaginowana

Python ma liczby zespolone - complex - które używają znaku j zamiast i do definiowania części wyimaginowanej.

Można ją rozdzielić na część rzeczywistą i wyimaginowaną używając .real i .imag.

Części można ponownie zamienić na liczbę zespoloną używając complex() lub 1j.

Liczbę sprzeżoną można pobrać za pomocą .conjugate()

Moduł (wartość bezwględną) można pobrać standardowym abs()

cmath ma więcej funkcji, które działają z liczbami zespolonymi.

# complex number

x = -5.79829066331+4.55640490659j

# parts

r = x.real   # float
i = x.imag   # float

# tuple, not complex number

y = (x.real, x.imag)

# complex number again

a = complex(r, i)

b = r + i * 1j

# operations

c = a + b

d = a * b

e = 1j * 1j   # -1

f = abs(x)    # distance - float

g = x.conjugate()

import cmath  # not `math`

h = cmath.sin(x)

print('x:', x, type(x))
print('r:', r, type(r))
print('i:', i, type(i))
print('y:', y, type(y))
print('a:', a, type(a))
print('b:', b, type(b))
print('c:', c, type(c))
print('d:', d, type(d))
print('e:', e, type(e))
print('f:', f, type(f))
print('g:', g, type(g))
print('h:', h, type(h))

Wynik:

x: (-5.79829066331+4.55640490659j) <class 'complex'>
r: -5.79829066331 <class 'float'>
i: 4.55640490659 <class 'float'>
y: (-5.79829066331, 4.55640490659) <class 'tuple'>
a: (-5.79829066331+4.55640490659j) <class 'complex'>
b: (-5.79829066331+4.55640490659j) <class 'complex'>
c: (-11.59658132662+9.11280981318j) <class 'complex'>
d: (12.8593489434305-52.838720056281346j) <class 'complex'>
e: (-1+0j) <class 'complex'>
f: 7.374347448352657 <class 'float'>
g: (-5.79829066331-4.55640490659j) <class 'complex'>
h: (22.19895896009363+42.126120958884385j) <class 'complex'>

If you like it
Buy a Coffee