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

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

วิธีการ:

C# มีโครงสร้าง System.Numerics.Complex ในตัวสำหรับการประมวลผลจำนวนเชิงซ้อน นี่คือการแนะนำอย่างรวดเร็ว:

using System;
using System.Numerics;

class ComplexNumberExample
{
    static void Main()
    {
        // สร้างจำนวนเชิงซ้อน
        Complex c1 = new Complex(4, 5); // 4 + 5i
        Complex c2 = Complex.FromPolarCoordinates(1, Math.PI / 4); // 1 * e^(iπ/4)

        // การดำเนินการพื้นฐาน
        Complex sum = c1 + c2;
        Complex difference = c1 - c2;
        Complex product = c1 * c2;
        Complex quotient = c1 / c2;

        // แสดงผลลัพธ์
        Console.WriteLine($"ผลรวม: {sum}");
        Console.WriteLine($"ผลต่าง: {difference}");
        Console.WriteLine($"ผลคูณ: {product}");
        Console.WriteLine($"ผลหาร: {quotient}");
        Console.WriteLine($"ขนาดของ c1: {c1.Magnitude}");
        Console.WriteLine($"เฟสของ c1: {c1.Phase}");
    }
}

และผลลัพธ์ที่ได้จะเป็น:

ผลรวม: (4.70710678118655, 5.70710678118655)
ผลต่าง: (3.29289321881345, 4.29289321881345)
ผลคูณ: (-1.00000000000001, 9)
ผลหาร: (0.6, 0.8)
ขนาดของ c1: 6.40312423743285
เฟสของ c1: 0.896055384571344

ลงลึก:

จำนวนเชิงซ้อน ประกอบด้วยส่วนจริงและจินตภาพ (บ่อยครั้งที่ใช้เครื่องหมาย a + bi) มีมาตั้งแต่ศตวรรษที่ 17 นักคณิตศาสตร์ชาวอิตาเลียน Gerolamo Cardano ได้รับเครดิตในการพัฒนาในช่วงแรก ๆ ในการเขียนโปรแกรม การจัดการกับจำนวนเชิงซ้อนหมายถึงการเข้าใจและจัดการกับสองส่วนนี้

ถึงแม้ C#’s System.Numerics.Complex จะเข้มแข็งและรวมเข้ากับภาษา แต่ภาษาอื่น ๆ เช่น Python ก็เสนอฟังก์ชันลักษณะเดียวกันกับ cmath หรือไลบรารีของบุคคลที่สาม และหากคุณทำงานในเวอร์ชัน C# ที่เก่ากว่าหรือเวอร์ชัน .NET ที่ไม่รองรับ System.Numerics คุณอาจต้องสร้างคลาสจำนวนเชิงซ้อนของคุณเองหรือค้นหาไลบรารี

ภายในนั้น การดำเนินการบนจำนวนเชิงซ้อนใช้เลขทศนิยมลอยซึ่งสามารถนำไปสู่ข้อผิดพลาดในการปัดเศษ ดังนั้น เมื่อนำไปใช้กับอัลกอริทึมที่ใช้จำนวนเชิงซ้อนอย่างกว้างขวาง สิ่งสำคัญคือต้องจำไว้ถึงสิ่งนี้และพิจารณาผลกระทบต่อความแม่นยำและความถูกต้อง

ดูเพิ่มเติม

  1. C# อ้างอิงสำหรับ System.Numerics.Complex: https://learn.microsoft.com/en-us/dotnet/api/system.numerics.complex
  2. การศึกษาลึกเกี่ยวกับคณิตศาสตร์ของจำนวนเชิงซ้อน: https://mathworld.wolfram.com/ComplexNumber.html
  3. สำหรับการใช้งานอื่น ๆ และไลบรารี ตรวจสอบ Math.NET Numerics: https://numerics.mathdotnet.com/