มีรากจริงสองรากของจำนวนบวกเสมอ ตัวอย่างเช่น ถ้า x2 คือ 25 x คือ ±5 อย่างไรก็ตาม ถ้า x2 คือ -25 รากจริงไม่มีอยู่ สแควร์รูทของจำนวนลบใดๆ คือสแควร์รูทของค่าสัมบูรณ์คูณด้วยหน่วยจินตภาพ j =√−1
ดังนั้น √−25 =√25 𝑋−1 =√25 × √−1 =5j
จำนวนเชิงซ้อนประกอบด้วยองค์ประกอบจริงและจินตภาพ มันถูกแสดงเป็น x+yj ทั้ง x และ y เป็นจำนวนจริง Y คูณด้วยหน่วยจินตภาพสร้างส่วนจินตภาพของจำนวนเชิงซ้อน
ตัวอย่าง:3+2j, 10-5.5J, 9.55+2.3j, 5.11e-6+4j
Python มีประเภทข้อมูลที่ซับซ้อนในตัว วัตถุจำนวนเชิงซ้อนสามารถสร้างได้โดยการแทนค่าตามตัวอักษรดังนี้ −
>>> x =2+3j>>> พิมพ์(x)
วัตถุจำนวนเชิงซ้อนมีสองแอตทริบิวต์ จำนวนจริง (ส่งคืนองค์ประกอบจริง) และ ภาพ (ส่งคืนองค์ประกอบจินตภาพโดยไม่รวมหน่วยจินตภาพ j)
>>> x.real2.0>>> x.imag3.0
นอกจากนี้ยังมี conjugate() กระบวนการ. คอนจูเกตของจำนวนเชิงซ้อนมีส่วนประกอบจริงและองค์ประกอบจินตภาพเหมือนกันกับเครื่องหมายตรงข้าม ดังนั้นคอนจูเกตของ 2+3j คือ 2-3j
>>> x.conjugate()(2-3j)
Python ยังมีฟังก์ชัน complex() ในตัวซึ่งส่งคืนอ็อบเจกต์จำนวนเชิงซ้อน ฟังก์ชันนี้ใช้พารามิเตอร์สองตัว อย่างละตัวสำหรับองค์ประกอบจริงและจินตภาพ อาจเป็นตัวเลขประเภทใดก็ได้ (int, float หรือ complex)
>>> คอมเพล็กซ์(9,5)(9+5j)>>> คอมเพล็กซ์(-6, -2.5)(-6-2.5j)>>> คอมเพล็กซ์(1.5j, 2.5j)(-2.5+ 1.5j)
หากให้พารามิเตอร์เพียงตัวเดียว จะถือว่าเป็นองค์ประกอบจริง องค์ประกอบจินตภาพจะถือว่าเป็นศูนย์
>>> ซับซ้อน(15)(15+0j)
ฟังก์ชันนี้ยังสามารถรับสตริงเป็นอาร์กิวเมนต์ได้หากมีการแสดงตัวเลข
>>> ซับซ้อน('51')(51+0j)>>> ซับซ้อน('1.5')(1.5+0j)
การบวกและการลบของจำนวนเชิงซ้อนนั้นคล้ายกับจำนวนเต็มหรือทศนิยม ส่วนจริงและส่วนจินตภาพมีการบวก/ลบแยกกัน
>>> a =6+4j>>> b =3+6j>>> a+b(9+10j)>>> a-b(3-2j)
สำหรับการคูณ ให้พิจารณาจำนวนเชิงซ้อนเป็นทวินามและคูณแต่ละเทอมในจำนวนแรกด้วยแต่ละเทอมในจำนวนที่สอง
a =6+4jb =3+2jc =a*bc =(6+4j)*(3+2j)c =(18+12j+12j+8*-1)c =10+24j>
ในคอนโซล Python ผลลัพธ์จะตรวจสอบสิ่งนี้ −
>>> a =6+4j>>> b =3+2j>>> a*b(10+24j)
การหารจำนวนเชิงซ้อนทำได้ดังนี้ -
ให้ตัวเลขทั้งสองเป็น
a =2+4j
b =1-2j
และเราต้องการคำนวณ a/b
รับคอนจูเกตของตัวส่วนซึ่งก็คือ 1+2j
คูณตัวเศษและส่วนด้วย คอนจูเกต ของตัวส่วนเพื่อให้ได้ผลหาร
c =a/bc =(2+4j)*(1+2j)/(1-2j)(1+2j)c =(2+4j+4j+8*-1)/(1+2j) -2j-4*-1)c =(-6+8j)/5c =-1.2+1.6j
การติดตามเซสชันคอนโซล Python จะยืนยันการรักษาด้านบน
>>> a =2+4j>>> b =1-2j>>> a/b(-1.2+1.6j)
โมดูล cmath
ฟังก์ชันทางคณิตศาสตร์ที่กำหนดไว้ในโมดูลคณิตศาสตร์ของเลขทศนิยมของกระบวนการไลบรารีมาตรฐานของ Python สำหรับจำนวนเชิงซ้อน ไลบรารี Python มีโมดูล cmath
จำนวนเชิงซ้อน z =x+yj คือ การแทนค่าคาร์ทีเซียน มันถูกแสดงภายในในพิกัดเชิงขั้วด้วยโมดูลัส r (ตามที่ส่งคืนโดยฟังก์ชัน abs() ในตัว) และมุมเฟส Φ (ออกเสียงว่า phi) ซึ่งเป็นมุมทวนเข็มนาฬิกาในหน่วยเรเดียน ระหว่างแกน x และเส้นเชื่อม x กับ ต้นทาง. แผนภาพต่อไปนี้แสดงการแทนค่าเชิงขั้วของจำนวนเชิงซ้อน -
ฟังก์ชันในโมดูล cmath ช่วยให้สามารถแปลงการแทนค่าคาร์ทีเซียนเป็นการแทนค่าเชิงขั้วและในทางกลับกันได้
ขั้ว() − ฟังก์ชันนี้คืนค่าการแสดงขั้วของสัญกรณ์คาร์ทีเซียนของจำนวนเชิงซ้อน ค่าที่ส่งคืนคือทูเพิลที่ประกอบด้วยโมดูลัสและเฟส
>>> นำเข้า cmath>>> a =2+4j>>> cmath.polar(a)(4.47213595499958, 1.1071487177940904)
โปรดทราบว่าโมดูลัสถูกส่งกลับโดยฟังก์ชัน abs()
>>> abs(a)4.47213595499958
เฟส() − ฟังก์ชันนี้จะคืนค่ามุมทวนเข็มนาฬิการะหว่างแกน x และการรวมส่วน a ที่มีต้นกำเนิด มุมจะแสดงเป็นเรเดียนและอยู่ระหว่าง π และ -π
>>> cmath.phase(a)1.1071487177940904z =x+yjΦ
rect() − ฟังก์ชันนี้คืนค่าการแทนค่าคาร์ทีเซียนของจำนวนเชิงซ้อนที่แสดงในรูปแบบขั้ว เช่น ในโมดูลัสและเฟส
<ก่อนหน้า>>>> cmath.rect(4.47213595499958, 1.1071487177940904)(2.0000000000000004+4j)โมดูล cmath มีทางเลือกอื่นสำหรับฟังก์ชันทางคณิตศาสตร์ทั้งหมดที่กำหนดไว้ในโมดูลคณิตศาสตร์ มีฟังก์ชันตรีโกณมิติและลอการิทึมตามที่อธิบายไว้ด้านล่าง -
cmath.sin() − ฟังก์ชันนี้ส่งคืนอัตราส่วนตรีโกณมิติไซน์สำหรับมุมเฟสที่แสดงเป็นเรเดียน
>>> นำเข้า cmath>>> a =2+4j>>> p =cmath.phase(a)>>> cmath.sin(p)(0.8944271909999159+0j)
ฟังก์ชันสำหรับอัตราส่วนอื่นๆ cos(), tan(), asin(), acos() และ atan() ถูกกำหนดไว้ในโมดูล cmath
cmath.exp() − คล้ายกับ math.exp() ฟังก์ชันนี้จะคืนค่า ex โดยที่ x เป็นจำนวนเชิงซ้อน และ e คือ 2.71828
>>> cmath.exp(a)(-1.1312043837568135+2.4717266720048188j)
cmath.log10() − ฟังก์ชันนี้คำนวณค่าบันทึกของจำนวนเชิงซ้อนที่มีฐานเป็น 10
>>> a =1+2j>>> cmath.log10(a)(0.3494850021680094+0.480828578784234j)
cmath.sqrt() − ฟังก์ชันนี้จะคืนค่ารากที่สองของจำนวนเชิงซ้อน
>>> cmath.sqrt(a)(1.272019649514069+0.7861513777574233j)
ในบทความนี้ เราได้เรียนรู้คุณลักษณะที่สำคัญของชนิดข้อมูลจำนวนเชิงซ้อนของ Python และวิธีการคำนวณทางคณิตศาสตร์ นอกจากนี้เรายังได้สำรวจฟังก์ชันต่างๆ ที่กำหนดไว้ในโมดูล cmath