การทำงานกับตัวเลขซับซ้อน

C:
การทำงานกับตัวเลขซับซ้อน

วิธีการ:

ในภาษา C, จำนวนเชิงซ้อนได้รับการสนับสนุนโดย Standard Library, โดยเฉพาะ <complex.h> ในการใช้งาน, ประกาศตัวแปรด้วยชนิด double complex (หรือ float complex สำหรับความแม่นยำเดี่ยว) นี่คือวิธีการดำเนินการพื้นฐาน:

#include <stdio.h>
#include <complex.h>

int main() {
    double complex z1 = 1.0 + 2.0*I; // ประกาศตัวเลขเชิงซ้อน 1+2i
    double complex z2 = 1.0 - 2.0*I; // ประกาศอีกตัวเลขเชิงซ้อนหนึ่ง 1-2i
    
    // การบวก
    double complex sum = z1 + z2;
    printf("ผลรวม: %.2f + %.2fi\n", creal(sum), cimag(sum)); // ผลลัพธ์: ผลรวม: 2.00 + 0.00i

    // การคูณ
    double complex product = z1 * z2;
    printf("ผลคูณ: %.2f + %.2fi\n", creal(product), cimag(product)); // ผลลัพธ์: ผลคูณ: 5.00 + 0.00i

    // จำนวนเชิงซ้อนสลับสัญกรณ์
    double complex conjugate = conj(z1);
    printf("จำนวนเชิงซ้อนสลับสัญกรณ์ของ z1: %.2f + %.2fi\n", creal(conjugate), cimag(conjugate)); // ผลลัพธ์: จำนวนเชิงซ้อนสลับสัญกรณ์ของ z1: 1.00 - 2.00i
    
    // ขนาด
    double magnitude = cabs(z1);
    printf("ขนาดของ z1: %.2f\n", magnitude); // ผลลัพธ์: ขนาดของ z1: 2.24

    // ขั้นตอน
    double phase = carg(z1);
    printf("ขั้นตอนของ z1: %.2f\n", phase); // ผลลัพธ์เป็นเรเดียน
    
    return 0;
}

โปรดทราบว่า I เป็นค่าคงที่ที่แสดงถึงหน่วยจินตภาพใน <complex.h> ฟังก์ชั่นเช่น creal() และ cimag() ใช้เพื่อแยกส่วนจริงและส่วนจินตภาพตามลำดับ ในขณะที่ conj() ดำเนินการคำนวณจำนวนเชิงซ้อนสลับสัญกรณ์ สำหรับขนาดและขั้นตอน (อาร์กิวเมนต์) ของจำนวนเชิงซ้อน cabs() และ carg() ถูกใช้

การศึกษาเจาะลึก

การสนับสนุนจำนวนเชิงซ้อนใน C เป็นสิ่งที่ค่อนข้างใหม่ เนื่องจากมีการบรรจุมาตรฐานใน C99 ก่อนหน้านี้ การเลขคณิตของจำนวนเชิงซ้อนใน C นั้นยุ่งยาก บ่อยครั้งที่ต้องใช้โครงสร้างข้อมูลและฟังก์ชั่นที่กำหนดเอง การรวม <complex.h> และชนิดข้อมูลเชิงซ้อนให้ความสามารถที่สำคัญในการเพิ่มขีดความสามารถของภาษาสำหรับการใช้งานวิทยาศาสตร์และวิศวกรรม อย่างไรก็ตาม ควรทราบว่าภาษาบางตัว เช่น Python นั้นมีการสนับสนุนจำนวนเชิงซ้อนที่เข้าใจง่ายกว่าโดยใช้ชนิดข้อมูลที่ให้มาและชุดฟังก์ชั่นไลบรารีที่หลากหลายมากขึ้น แม้กระนั้น ประสิทธิภาพและการควบคุมที่ C มอบให้ทำให้เป็นตัวเลือกที่ต้องการสำหรับการทำงานคอมพิวเตอร์ประสิทธิภาพสูง แม้ว่าจะหมายถึงการจัดการกับไวยากรณ์สำหรับการคำนวณเชิงซ้อนที่ค่อนข้างมากกว่าก็ตาม