ازگر، پیچیدہ نمبروں کے ساتھ کام کرنے کے لیے پیچیدہ اقسام (مطلق اقدار، زوال، قطبی تبدیلیاں، وغیرہ)

کاروبار

Python میں پیچیدہ نمبروں کو سنبھالنے کے لیے ایک معیاری قسم ہے، COMPLEX قسم۔ اگر آپ صرف سادہ حساب کرنا چاہتے ہیں، تو آپ کو کوئی ماڈیول درآمد کرنے کی ضرورت نہیں ہے، لیکن اگر آپ معیاری لائبریری cmath درآمد کرتے ہیں، تو آپ پیچیدہ اعداد سے مطابقت رکھنے والے ریاضیاتی فنکشنز (ایکسپونینشل، لوگاریتھمک، ٹرگنومیٹرک وغیرہ) بھی استعمال کر سکتے ہیں۔

مندرجہ ذیل مواد کو نمونہ کوڈ کے ساتھ یہاں بیان کیا گیا ہے۔

  • پیچیدہ متغیرات بنائیں
  • حقیقی اور خیالی حصے حاصل کریں۔:real,imagوصف
  • کنجوگیٹ کمپلیکس نمبرز حاصل کریں۔:conjugate()طریقہ
  • مطلق قدر حاصل کریں (شدت):abs()فنکشن (مثلاً ریاضی، پروگرامنگ، پروگرامنگ)
  • زوال حاصل کریں (مرحلہ):math,cmathماڈیول
  • پولر کوآرڈینیٹ تبدیلی (قطبی شکل کی نمائندگی):math,cmathماڈیول
  • پیچیدہ نمبروں کی گنتی (چوک، طاقت، مربع جڑ)

پیچیدہ متغیرات بنائیں

خیالی اکائی کو j سے ظاہر کریں اور درج ذیل لکھیں، نوٹ کریں کہ یہ i نہیں ہے۔

c = 3 + 4j

print(c)
print(type(c))
# (3+4j)
# <class 'complex'>

اگر خیالی حصہ 1 ہے، تو اسے چھوڑنے سے NameError نکلتا ہے۔ اگر j نامی متغیر کی پہلے تعریف کی جائے تو اسے وہ متغیر سمجھا جاتا ہے۔

1j
اسے اس طرح واضح طور پر بیان کیا جانا چاہیے۔

# c = 3 + j
# NameError: name 'j' is not defined

c = 3 + 1j

print(c)
# (3+1j)

اگر اصلی حصہ 0 ہے تو اسے چھوڑا جا سکتا ہے۔

c = 3j

print(c)
# 3j

اگر آپ 0 کے خیالی حصے کے ساتھ کسی قدر کو ایک پیچیدہ پیچیدہ قسم کے طور پر بیان کرنا چاہتے ہیں تو واضح طور پر 0 لکھیں۔ جیسا کہ ذیل میں بیان کیا گیا ہے، پیچیدہ قسم اور عددی قسم یا فلوٹنگ پوائنٹ کی قسم کے درمیان آپریشن کیے جا سکتے ہیں۔

c = 3 + 0j

print(c)
# (3+0j)

حقیقی اور خیالی حصوں کو فلوٹنگ پوائنٹ فلوٹ ٹائپ کے طور پر بیان کیا جا سکتا ہے۔ کفایتی اشارے بھی قابل قبول ہیں۔

c = 1.2e3 + 3j

print(c)
# (1200+3j)

یہ "complex” قسم کے کنسٹرکٹر کے ذریعہ بھی تیار کیا جا سکتا ہے، جیسا کہ "complex(حقیقی حصہ، خیالی حصہ)”۔

c = complex(3, 4)

print(c)
print(type(c))
# (3+4j)
# <class 'complex'>

پیچیدہ اعداد کے حقیقی اور خیالی حصے حاصل کریں۔:real,imagوصف

ایک پیچیدہ پیچیدہ قسم کے حقیقی اور خیالی حصوں کو بالترتیب حقیقی اور تصویری صفات کے ساتھ حاصل کیا جا سکتا ہے۔ دونوں فلوٹنگ پوائنٹ فلوٹ کی قسمیں ہیں۔

c = 3 + 4j

print(c.real)
print(type(c.real))
# 3.0
# <class 'float'>

print(c.imag)
print(type(c.imag))
# 4.0
# <class 'float'>

یہ صرف پڑھا جاتا ہے اور اسے تبدیل نہیں کیا جا سکتا۔

# c.real = 5.5
# AttributeError: readonly attribute

کنجوگیٹ کمپلیکس نمبرز حاصل کریں۔:conjugate()

conjugate پیچیدہ نمبرز حاصل کرنے کے لیے conjugate() طریقہ استعمال کریں۔

c = 3 + 4j

print(c.conjugate())
# (3-4j)

ایک پیچیدہ عدد کی مطلق قدر (شدت) حاصل کریں۔:abs()

ایک کمپلیکس نمبر کی مطلق قدر (میگنیٹیوڈ) حاصل کرنے کے لیے، بلٹ ان فنکشن abs() کا استعمال کریں۔

c = 3 + 4j

print(abs(c))
# 5.0

c = 1 + 1j

print(abs(c))
# 1.4142135623730951

ایک پیچیدہ نمبر کا زوال (مرحلہ) حاصل کریں۔:math,cmathماڈیول

ایک پیچیدہ نمبر کے زوال (فیز) کو حاصل کرنے کے لیے، ریاضی یا cmath ماڈیول استعمال کریں۔

cmath ماڈیول پیچیدہ اعداد کے لیے ایک ریاضیاتی فنکشن ماڈیول ہے۔

اس کا حساب الٹا ٹینجنٹ فنکشن math.atan2() کے ساتھ کیا جا سکتا ہے جیسا کہ وضاحت کی گئی ہے، یا cmath.phase() کا استعمال کریں، جو زوال (فیز) لوٹاتا ہے۔

import cmath
import math

c = 1 + 1j

print(math.atan2(c.imag, c.real))
# 0.7853981633974483

print(cmath.phase(c))
# 0.7853981633974483

print(cmath.phase(c) == math.atan2(c.imag, c.real))
# True

دونوں صورتوں میں، زاویہ کی اکائی جو حاصل کی جا سکتی ہے ریڈینز ہے۔ ڈگری میں تبدیل کرنے کے لیے، math.degrees() استعمال کریں۔

print(math.degrees(cmath.phase(c)))
# 45.0

پیچیدہ اعداد کی پولر کوآرڈینیٹ تبدیلی (قطبی رسمی نمائندگی):math,cmathماڈیول

جیسا کہ اوپر ذکر کیا گیا ہے، ایک پیچیدہ نمبر کی مطلق قدر (میگنیٹیوڈ) اور زوال (فیز) حاصل کی جا سکتی ہے، لیکن cmath.polar() کا استعمال کرتے ہوئے انہیں ایک (مطلق قدر، زوال) ٹیپل کے طور پر ایک ساتھ حاصل کیا جا سکتا ہے۔

c = 1 + 1j

print(cmath.polar(c))
print(type(cmath.polar(c)))
# (1.4142135623730951, 0.7853981633974483)
# <class 'tuple'>

print(cmath.polar(c)[0] == abs(c))
# True

print(cmath.polar(c)[1] == cmath.phase(c))
# True

قطبی نقاط سے کارٹیسین کوآرڈینیٹ میں تبدیلی cmath.rect() کا استعمال کرتے ہوئے کی جاتی ہے۔ cmath.rect(مطلق قدر، انحراف) اور اسی طرح کے دلائل کو مساوی پیچیدہ پیچیدہ پیچیدہ قسم کی اقدار حاصل کرنے کے لیے استعمال کیا جا سکتا ہے۔

print(cmath.rect(1, 1))
# (0.5403023058681398+0.8414709848078965j)

print(cmath.rect(1, 0))
# (1+0j)

print(cmath.rect(cmath.polar(c)[0], cmath.polar(c)[1]))
# (1.0000000000000002+1j)

حقیقی اور خیالی حصے کوزائن math.cos() اور sine math.sin() کے مطلق اقدار اور زوال کے زاویوں سے شمار کیے گئے نتائج کے برابر ہیں۔

r = 2
ph = math.pi

print(cmath.rect(r, ph).real == r * math.cos(ph))
# True

print(cmath.rect(r, ph).imag == r * math.sin(ph))
# True

پیچیدہ نمبروں کی گنتی (چوک، طاقت، مربع جڑ)

عام ریاضی کے آپریٹرز کا استعمال کرتے ہوئے چار ریاضی کے آپریشنز اور پاور کیلکولیشن کیے جا سکتے ہیں۔

c1 = 3 + 4j
c2 = 2 - 1j

print(c1 + c2)
# (5+3j)

print(c1 - c2)
# (1+5j)

print(c1 * c2)
# (10+5j)

print(c1 / c2)
# (0.4+2.2j)

print(c1 ** 3)
# (-117+44j)

مربع جڑ کا حساب **0.5 سے لگایا جا سکتا ہے، لیکن یہ غلطی کا تعارف کراتی ہے۔ cmath.sqrt() کو صحیح قدر کا حساب لگانے کے لیے استعمال کیا جا سکتا ہے۔

print((-3 + 4j) ** 0.5)
# (1.0000000000000002+2j)

print((-1) ** 0.5)
# (6.123233995736766e-17+1j)

print(cmath.sqrt(-3 + 4j))
# (1+2j)

print(cmath.sqrt(-1))
# 1j

یہ پیچیدہ اقسام، int کی قسموں اور فلوٹ کی اقسام کے ساتھ ریاضی کی کارروائیاں بھی کر سکتا ہے۔

print(c1 + 3)
# (6+4j)

print(c1 * 0.5)
# (1.5+2j)
Copied title and URL