Eine komplexe Zahl wird in der Form z = a + b * i ausgedrückt, wobei:
a der Realteil ist (eine reelle Zahl),
b der Imaginärteil ist (ebenfalls eine reelle Zahl), und
i die imaginäre Einheit ist, für die i^2 = -1 gilt.
Die Konjugierte der komplexen Zahl z = a + b * i ist gegeben durch:
zc = a - b * i
Der Betrag (oder Modul) von z ist definiert als:
|z| = sqrt(a^2 + b^2)
Das Quadrat des Betrags wird als Produkt von z und seiner Konjugierten zc berechnet:
|z|^2 = z * zc = a^2 + b^2
Die Summe zweier komplexer Zahlen z1 = a + b * i und z2 = c + d * i berechnest du, indem du ihre Real- und Imaginärteile getrennt addierst:
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
Die Differenz zweier komplexer Zahlen erhältst du, indem du die jeweiligen Teile subtrahierst:
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
Das Produkt zweier komplexer Zahlen ist definiert als:
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
Für den Kehrwert einer komplexen Zahl ungleich null gilt:
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
Für die Division einer komplexen Zahl durch eine andere gilt:
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
Potenziert man e (die Basis des natürlichen Logarithmus) mit einem komplexen Exponenten, lässt sich das mit der eulerschen Formel ausdrücken:
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
Da du keine eingebaute Unterstützung für komplexe Zahlen verwenden sollst, implementiere die folgenden Operationen:
Hilfe zum Überladen und Anpassen von Operatoren findest du unter Numerische Typen emulieren.
Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.