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

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

วิธีการ:

Haskell จัดการตัวเลขเชิงซ้อนด้วยโมดูล Data.Complex นี่คือการแนะนำอย่างรวดเร็ว:

import Data.Complex

-- กำหนดตัวเลขเชิงซ้อนสองตัว
let z1 = 3 :+ 4  -- คือ 3 + 4i
let z2 = 5 :+ (-2)  -- 5 - 2i

-- การดำเนินการทางคณิตศาสตร์
let sum = z1 + z2  -- 8 :+ 2
let difference = z1 - z2  -- -2 :+ 6
let product = z1 * z2  -- 23 :+ 14
let quotient = z1 / z2  -- 0.20689655172413793 :+ 0.9655172413793104

-- คอนจูเกตเชิงซ้อน
let conjugateZ1 = conjugate z1  -- 3 :+ (-4)

-- ขนาดและเฟส
let magnitudeZ1 = magnitude z1  -- 5.0
let phaseZ1 = phase z1  -- 0.9272952180016122

-- การแปลงจากโพลาร์เป็นสี่เหลี่ยมผืนผ้า และในทางกลับกัน
let z1Polar = polar z1  -- (5.0,0.9272952180016122)
let fromPolar = mkPolar 5.0 0.9272952180016122  -- เหมือนกับ z1

ตัวอย่างผลลัพธ์หลังจากโหลดโค้ดข้างต้นใน GHCi อาจเป็น:

*Main> sum
8.0 :+ 2.0
*Main> product
23.0 :+ 14.0
*Main> magnitudeZ1
5.0

ศึกษาเพิ่มเติม

ตัวเลขเชิงซ้อนมีมาตั้งแต่ศตวรรษที่ 16 แต่ได้รับการยอมรับอย่างกว้างขวางในช่วงเวลาที่หลังมากขึ้น Haskell นั้นเหมือนกับภาษาอื่นๆ เพราะมีการสนับสนุนการคำนวณเชิงซ้อนเป็นอย่างดี ทำให้ง่ายต่อการทำงานกับตัวเลขเหล่านี้โดยไม่จำเป็นต้องสร้างฐานคณิตศาสตร์ใหม่

ทางเลือกอื่น ๆ รวมถึงการสร้างประเภทของตัวเลขเชิงซ้อนของคุณเอง หรือใช้ไลบรารีสำหรับสาขาเฉพาะ เช่น ควอเทอร์เนียนสำหรับกราฟิก 3 มิติ แต่สำหรับกรณีการใช้งานส่วนใหญ่ โมดูล Data.Complex ของ Haskell เพียงพอแล้ว

ภายใต้ฝาครอบ Data.Complex เป็นเพียงแค่ประเภทของข้อมูลที่รวมค่า Float หรือ Double สองค่า เป็นตัวแทนของส่วนจริงและส่วนจินตภาพตามลำดับ มันเป็นวิธีที่ง่ายและมีประสิทธิภาพในการทำงานกับตัวเลขเชิงซ้อนบนแพลตฟอร์ม Haskell

ดูเพิ่มเติม

ตรวจสอบทรัพยากรเหล่านี้เพื่อศึกษาเพิ่มเติมเกี่ยวกับตัวเลขเชิงซ้อนใน Haskell:

  • เอกสารคู่มือ Haskell Data.Complex อย่างเป็นทางการ: Hackage Data.Complex
  • การดำน้ำลึกเข้าไปในประเภทตัวเลขของ Haskell: Learn You a Haskell for Great Good!
  • สำหรับการประยุกต์ใช้ สำรวจอัลกอริทึม Fast Fourier Transform ใน Haskell: ไลบรารี Haskell FFT