עבודה עם מספרים מרוכבים

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 אך זכו לקבלה רחבה הרבה מאוחר יותר. הסקל, כמו שפות רבות, מספק תמיכה ילידית לאריתמטיקה מרוכבת, המקלה על העבודה עם מספרים אלה מבלי ליישם את המתמטיקה הבסיסית.

אלטרנטיבות כוללות בנייה של סוג מספר מרוכב מותאם אישית או שימוש בספריות לתחומים ספציפיים כמו קווטרניונים לגרפיקת 3D. אך לרוב תרחישי השימוש, Data.Complex של הסקל מספק בהחלט.

מאחורי הקלעים, Data.Complex הוא רק סוג נתונים המזווג שני ערכי Float או Double, המייצגים את החלקים הממשי והמדומה, בהתאמה. זוהי דרך יעילה וישירה לעבוד עם מספרים מרוכבים על פלטפורמת הסקל.

ראו גם

בדוקו את המשאבים האלה למידע נוסף על מספרים מרוכבים בהסקל: