Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตัวเลขที่ซับซ้อนใน Python?


จำนวนเชิงซ้อนถูกสร้างขึ้นจากจำนวนจริง สามารถสร้างจำนวนเชิงซ้อนของ Python ได้โดยใช้คำสั่งการกำหนดโดยตรงหรือโดยใช้ฟังก์ชันเชิงซ้อน ()

จำนวนเชิงซ้อนซึ่งส่วนใหญ่ใช้ในกรณีที่เราใช้จำนวนจริงสองจำนวน ตัวอย่างเช่น วงจรไฟฟ้าที่กำหนดโดยแรงดัน (V) และกระแส (C) ใช้ในเรขาคณิต การคำนวณทางวิทยาศาสตร์ และแคลคูลัส

ไวยากรณ์

ซับซ้อน([จริง[, ภาพ]])

การสร้างจำนวนเชิงซ้อนอย่างง่ายใน python

>>> c =3 +6j>>> print(type(c))>>> print(c)(3+6j)>>>>>> c1 =complex(3) ,6)>>>> print(type(c1))>>> print(c1)(3+6j)

จากผลลัพธ์ข้างต้น เราจะเห็นได้ว่าจำนวนเชิงซ้อนของหลามนั้นเป็นประเภทเชิงซ้อน จำนวนเชิงซ้อนแต่ละจำนวนประกอบด้วยส่วนจริงหนึ่งส่วนและส่วนจินตภาพหนึ่งส่วน

Python Complex Numbers- คุณลักษณะและฟังก์ชัน

>>> #จำนวนเชิงซ้อน:>>> c =(3 + 6j)>>>>>>> #ส่วนจริงของจำนวนเชิงซ้อน>>> print('Complex Number:Real Part is =', c. real )จำนวนเชิงซ้อน:ส่วนจริงคือ =3.0>>>>>> #จินตภาพส่วนหนึ่งของจำนวนเชิงซ้อน>>>> พิมพ์('จำนวนเชิงซ้อน:ส่วนจินตภาพคือ =', c. imag)จำนวนเชิงซ้อน:ส่วนจินตภาพคือ =6.0>>>>>> #คอนจูเกตของจำนวนเชิงซ้อน>>> print('Complex Number:conjugate Part =', c. conjugate())Complex Number:conjugate Part =(3-6j)

การคำนวณทางคณิตศาสตร์ของจำนวนเชิงซ้อน

เราสามารถคำนวณทางคณิตศาสตร์อย่างง่ายเกี่ยวกับจำนวนเชิงซ้อนได้:

>>> #จำนวนเชิงซ้อนตัวแรก>>> c1 =3 + 6j>>> #จำนวนเชิงซ้อนที่สอง>>> c2 =6 + 15j>>>>>> #Addition>>> print("การบวกของสอง จำนวนเชิงซ้อน =", c1 + c2) การบวกจำนวนเชิงซ้อนสองจำนวน =(9+21j)>>>>>> #Subtraction>>> print("การลบจำนวนเชิงซ้อนสองตัว =", c1 - c2) การลบของสองจำนวนเชิงซ้อน number =(-3-9j)>>>>>> #Multiplication>>> print("การคูณของจำนวนเชิงซ้อนสองตัว =", c1 * c2) การคูณของจำนวนเชิงซ้อนสองตัว =(-72+81j)>>>>>> #Division>>> print("หารสองจำนวนเชิงซ้อน =", c1 / c2) ส่วนของจำนวนเชิงซ้อนสองตัว =(0.4137931034482759-0.03448275862068964j)

อย่างไรก็ตาม จำนวนเชิงซ้อนไม่รองรับตัวดำเนินการเปรียบเทียบ เช่น <,>, <=, => และจะผ่านข้อความ TypeError:

>>> c2 <=c2Traceback (การโทรล่าสุดครั้งล่าสุด):ไฟล์ "" บรรทัดที่ 1 ใน c2 <=c2TypeError:'<=' ไม่รองรับระหว่างอินสแตนซ์ของ 'complex' และ 'ซับซ้อน'

โมดูล Python cmath

โมดูล Python cmath ให้การเข้าถึงฟังก์ชันทางคณิตศาสตร์สำหรับจำนวนเชิงซ้อน มาดูคุณสมบัติที่สำคัญบางอย่างของจำนวนเชิงซ้อนโดยใช้ฟังก์ชันโมดูลคณิตศาสตร์กัน

เฟสของจำนวนเชิงซ้อน

เฟสของจำนวนเชิงซ้อนคือมุมระหว่างแกนจริงกับเวกเตอร์ที่แทนส่วนจินตภาพ

เฟสที่ส่งคืนโดยโมดูลคณิตศาสตร์และ cmath อยู่ในหน่วยเรเดียน และเราใช้ฟังก์ชัน numpy.degrees() เพื่อแปลงเป็นองศา

นำเข้า cmath, คณิตศาสตร์, numpyc =4+ 4j# phasephase =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)))# เราสามารถรับเฟสได้โดยใช้คณิตศาสตร์ .atan2() ฟังก์ชั่น tooprint('ขั้นตอนของจำนวนเชิงซ้อนโดยใช้ math.atan2() =', math.atan2(2, 1))

ผลลัพธ์

4+ 4j Phase =0.7853981633974483Phase in Degrees =45.0-4-4j Phase =-2.356194490192345 เรเดียน องศา =-135.0 เฟสตัวเลขที่ซับซ้อนโดยใช้ math.atan2() =1.1071487177940904

ค่าคงที่โมดูล cmath

มีค่าคงที่สองสามค่าในโมดูล cmath ที่ใช้ในการคำนวณจำนวนเชิงซ้อน:

import cmathprint('π =', cmath.pi)print('e =', cmath.e)print('tau =', cmath.tau)print('ค่าอินฟินิตี้บวก =', cmath.inf)print ('บวกเชิงซ้อนอินฟินิตี้ =', cmath.infj)print('NaN =', cmath.nan)print('NaN Complex =', cmath.nanj)

ผลลัพธ์

π =3.141592653589793e =2.718281828459045tau =6.283185307179586 อินฟินิตี้บวก =infPositive Complex อินฟินิตี้ =infjNaN =nanNaN คอมเพล็กซ์ =nanj

ฟังก์ชั่นเปิดเครื่องและบันทึก

โมดูล cmath() มีฟังก์ชันที่เป็นประโยชน์สำหรับการดำเนินการลอการิทึมและกำลัง:

นำเข้า cmathc =1 + 2jprint('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.27201964951406957+0.78615)> 

ฟังก์ชันตรีโกณมิติ

นำเข้า cmathc =2 + 4jprint('arc sine value:\n ', cmath.asin(c))print('arc cosine value :\n', cmath.acos(c))print('arc tangent value ของจำนวนเชิงซ้อน c :\n', cmath.atan(c))print('ค่าไซน์:\n', cmath.sin(c))print('ค่าโคไซน์:\n', cmath.cos(c)) print('tangent value:\n', cmath.tan(c))

ผลลัพธ์

ค่าไซน์อาร์ค:(0.4538702099631225+2.198573027920936j)ค่าอาร์คโคไซน์ :(1.1169261168317741-2.198573027920936j)ค่าอาร์คแทนเจนต์ของจำนวนเชิงซ้อน c :(1.4670482135772953+0.20058661813123432j)3184176611127) ค่าไซน์ -11.36423470640106-24.814651485634187j)ค่าแทนเจนต์:(-0.0005079806234700387+1.0004385132020523j)

ฟังก์ชันไฮเปอร์โบลิก

นำเข้า cmathc =2 + 4jprint('ค่าไฮเปอร์โบลิกไซน์ผกผัน:\n', cmath.asinh(c))print('ค่าไฮเปอร์โบลิกโคไซน์ผกผัน:\n', cmath.acosh(c))print('Inverse ค่าไฮเปอร์โบลิกแทนเจนต์:\n', cmath.atanh(c))print('ค่าไฮเปอร์โบลิกไซน์:\n', cmath.sinh(c))print('ค่าไฮเปอร์โบลิกโคไซน์:\n', cmath.cosh(c) )print('ค่าไฮเปอร์โบลิกแทนเจนต์:\n', cmath.tanh(c))

ผลลัพธ์

ค่าไฮเปอร์โบลิกไซน์ผกผัน:(2.183585216564564+1.096921548830143j)ค่าไฮเปอร์โบลิกโคไซน์ผกผัน:(2.198573027920936+1.1169261168317741j)ค่าไฮเปอร์โบลิกแทนเจนต์ผกผัน:(0.09641562020299617+1.3715351039616865j)ค่าไฮเปอร์โบลิก:16947jperbolic) :(-2.4591352139173837-2.744817006792154j)ค่าไฮเปอร์โบลิกแทนเจนต์:(1.0046823121902348+0.03642336924740368j)