Kompleksilukujen käsittely

Haskell:
Kompleksilukujen käsittely

Kuinka:

Haskell käsittelee kompleksilukuja Data.Complex-moduulin avulla. Tässä on pikakierros:

import Data.Complex

-- Määritellään kaksi kompleksilukua
let z1 = 3 :+ 4  -- eli 3 + 4i
let z2 = 5 :+ (-2)  -- 5 - 2i

-- Aritmeettiset operaatiot
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

-- Kompleksikonjugaatti
let conjugateZ1 = conjugate z1  -- 3 :+ (-4)

-- Suuruus ja vaihe
let magnitudeZ1 = magnitude z1  -- 5.0
let phaseZ1 = phase z1  -- 0.9272952180016122

-- Polaarinen -ja suorakaidekoordinaattien muunnos ja päinvastoin
let z1Polar = polar z1  -- (5.0,0.9272952180016122)
let fromPolar = mkPolar 5.0 0.9272952180016122  -- sama kuin z1

Esimerkkituloste koodin lataamisen jälkeen GHCi:ssä voisi olla:

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

Syväsukellus

Kompleksiluvut ulottuvat 16. vuosisadalle, mutta ne hyväksyttiin laajalti paljon myöhemmin. Haskell, kuten monet muut kielet, tarjoaa natiivituen kompleksiaritmetiikalle, mikä tekee näiden lukujen kanssa työskentelystä helppoa ilman perustavanlaatuisen matematiikan toteuttamista.

Vaihtoehtoihin kuuluu oman kompleksilukutyypin rakentaminen tai erityisille aloille, kuten quaternionit 3D-grafiikkaan, tarkoitettujen kirjastojen käyttäminen. Mutta useimmissa käyttötapauksissa Haskellin Data.Complex riittää.

Data.Complexin alla on vain tietotyyppi, joka parittaa kaksi Float tai Double -arvoa, edustaen vastaavasti reaali- ja imaginääriosia. Se on suoraviivainen ja tehokas tapa työskennellä kompleksilukujen kanssa Haskell-alustalla.

Katso myös

Tutustu näihin resursseihin saadaksesi lisätietoja kompleksiluvuista Haskellissa: