Eine komplexe Zahl ist eine Zahl der Form a + b * i, wobei a und b reell sind und i die Gleichung i^2 = -1 erfüllt.
a heißt der Realteil und b der Imaginärteil von z.
Die konjugiert komplexe Zahl zu a + b * i ist die Zahl a - b * i.
Der Betrag einer komplexen Zahl z = a + b * i ist eine reelle Zahl |z| = sqrt(a^2 + b^2). Das Quadrat des Betrags |z|^2 ist das Ergebnis der Multiplikation von z mit ihrer konjugiert komplexen Zahl.
Bei der Summe/Differenz zweier komplexer Zahlen werden ihre Real- und Imaginärteile getrennt addiert/subtrahiert:
(a + i * b) + (c + i * d) = (a + c) + (b + d) * i,
(a + i * b) - (c + i * d) = (a - c) + (b - d) * i.
Das Ergebnis der Multiplikation ist per Definition
(a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i.
Der Kehrwert einer komplexen Zahl ungleich null ist
1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i.
Dividiert man eine komplexe Zahl a + i * b durch eine andere c + i * d, ergibt sich:
(a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i.
Das Potenzieren von e mit einem komplexen Exponenten lässt sich als e^(a + i * b) = e^a * e^(i * b) ausdrücken, wobei der letzte Term durch die Eulersche Formel e^(i * b) = cos(b) + i * sin(b) gegeben ist.
Implementiere die folgenden Operationen:
Gehe davon aus, dass die Programmiersprache, die du verwendest, keine Implementierung komplexer Zahlen hat.
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.