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, як і багато мов, надає вбудовану підтримку для комплексної арифметики, що полегшує роботу з цими числами без необхідності реалізації основої математики.
Альтернативи включають створення вашого власного типу комплексних чисел або використання бібліотек для конкретних доменів, таких як кватерніони для 3D графіки. Але для більшості випадків використання, модуль Data.Complex в Haskell є більш ніж достатнім.
Всередині, Data.Complex є просто типом даних, що об’єднує два значення Float або Double, представляючи дійсну та уявну частини відповідно. Це простий і ефективний спосіб працювати з комплексними числами на платформі Haskell.
Дивіться Також
Перегляньте ці ресурси для більшої інформації про комплексні числа в Haskell:
- Офіційна документація Haskell
Data.Complex: Hackage Data.Complex - Більш глибоке вивчення типів чисел в Haskell: Learn You a Haskell for Great Good!
- Для застосування, дослідження алгоритмів швидкого перетворення Фур’є в Haskell: Бібліотека Haskell FFT