complex
Mire használható az complex?
A „complex” típusú változók a Python programozási nyelvben a komplex számokat tárolják. A komplex számok egy valós és egy képzeletbeli részből állnak, amelyeket az alábbi módon írnak fel: a + bj
, ahol a
a valós rész, b
pedig a képzeletbeli rész. A j
az ún. imaginárius egység, amelyre teljesül, hogy j^2 = -1
.
A „complex” típusú változókat általában matematikai műveletekhez használják, amelyekben komplex számok szerepelnek. Az ilyen műveletek közé tartoznak például az összeadás, kivonás, szorzás, osztás, konjugáció és az abszolút érték számítása.
1. Példa
Alábbi példában két komplex számot szorozunk össze, majd eredményként egy új „complex” típusú változóban tároljuk az eredményt:
a = 2 + 3j
b = 1 - 2j
c = a * b
print(c)
A fenti példában a „a” változóba egy komplex számot (2 + 3j), a „b” változóba pedig egy másik komplex számot (1 – 2j) helyeztünk el. Azután az „a” és „b” változókat összeszorzuk és az eredményt egy új „complex” típusú változóba (c) helyezzük. Az „c” változó értékét kiíratjuk a képernyőre, és az eredmény (8+1j) lesz.
A „complex” típusú változók használatakor fontos tudni, hogy a valós és a képzeletbeli rész is lebegőpontos számokat tartalmazhat. Emiatt azokat a matematikai műveleteket, amelyek komplex számokkal dolgoznak, lebegőpontos hibák is érinthetik.
2. Példa
Ebben a példában egy egyszerű komplex számot hozunk létre, majd kiíratjuk annak valós és képzeletbeli részét:
z = 2 + 3j
print("A komplex szám valós része:", z.real) # A komplex szám valós része: 2.0
print("A komplex szám képzeletbeli része:", z.imag) # A komplex szám képzeletbeli része: 3.0
Ebben az esetben a „z” változó egy egyszerű komplex számot tartalmaz (2 + 3j). Azután kiíratjuk a „z” változó valós és képzeletbeli részét a „real” és „imag” attribútumok segítségével. Az eredmény a következő lesz:
Összetett - Példa
z = 2 + 3j
w = 4 - 5j
# Összeadás
print(z + w) # eredmény: (6-2j)
# Kivonás
print(z - w) # eredmény: (-2+8j)
# Szorzás
print(z * w) # eredmény: (23+2j)
# Osztás
print(z / w) # eredmény: (-0.18421052631578946+0.7105263157894737j)
# Modulus (abszolút érték)
print(abs(z)) # eredmény: 3.605551275463989
# Argumentum (fázis) radiánban
print(cmath.phase(z)) # eredmény: 0.982793723247329
# Konjugált
print(z.conjugate()) # eredmény: (2-3j)
Ebben a példában két komplex számot hozunk létre, z
és w
. Majd különböző műveleteket hajtunk végre velük, például összeadjuk őket, kivonjuk őket, szorozzuk és osztjuk őket. A abs()
függvény használatával a modulus (abszolút érték) határozható meg, és a cmath.phase()
függvénnyel a fázis (argumentum) radiánban határozható meg. Végül a conjugate()
függvény segítségével meghatározható egy adott komplex szám konjugáltja.