لغة Python لديها نوع قياسي للتعامل مع الأعداد المركبة ، نوع COMPLEX. إذا كنت تريد فقط إجراء حسابات بسيطة ، فلن تحتاج إلى استيراد أي وحدات نمطية ، ولكن إذا قمت باستيراد cmath للمكتبة القياسية ، فيمكنك أيضًا استخدام الدوال الرياضية (الأسية ، واللوغاريتمية ، والمثلثية ، وما إلى ذلك) المقابلة للأرقام المركبة.
يتم شرح المحتويات التالية هنا مع نموذج التعليمات البرمجية.
- توليد المتغيرات المعقدة
- احصل على أجزاء حقيقية وخيالية:
real
,imag
ينسب - احصل على الأعداد المركبة المرافقة:
conjugate()
طريقة - الحصول على القيمة المطلقة (المقدار):
abs()
الوظيفة (مثل الرياضيات ، البرمجة ، البرمجة) - الحصول على الانحراف (المرحلة):
math
,cmath
وحدة - تحويل الإحداثيات القطبية (تمثيل الشكل القطبي):
math
,cmath
وحدة - حساب الأعداد المركبة (التربيع ، القوى ، الجذور التربيعية)
- توليد المتغيرات المعقدة
- احصل على أجزاء حقيقية ومتخيلة من الأعداد المركبة:real,imagينسب
- احصل على الأعداد المركبة المرافقة:conjugate()
- احصل على القيمة المطلقة (المقدار) لعدد مركب:abs()
- الحصول على الانحراف (الطور) لعدد مركب:math,cmathوحدة
- تحويل الإحداثيات القطبية للأعداد المركبة (التمثيل الرسمي القطبي):math,cmathوحدة
- حساب الأعداد المركبة (التربيع ، القوى ، الجذور التربيعية)
توليد المتغيرات المعقدة
قم بالإشارة إلى الوحدة التخيلية بواسطة j واكتب ما يلي ، لاحظ أنها ليست i.
c = 3 + 4j
print(c)
print(type(c))
# (3+4j)
# <class 'complex'>
إذا كان الجزء التخيلي 1 ، فإن حذفه ينتج عنه خطأ في الاسم. إذا تم تعريف متغير اسمه 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)
يمكن أيضًا إنشاؤها بواسطة مُنشئ من النوع “معقد” ، كما هو الحال في “معقد (جزء حقيقي ، جزء تخيلي)”.
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()
للحصول على الأعداد المركبة المقترنة ، استخدم الطريقة المترافقة ().
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)
الأجزاء الحقيقية والخيالية مكافئة للنتائج المحسوبة بواسطة cosine 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)