Tracks
/
Raku
Raku
/
Übungen
/
Komplexe Zahlen
Komplexe Zahlen

Komplexe Zahlen

Einfach

Anleitung

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.

Operationen mit komplexen Zahlen

Konjugierte

Die Konjugierte der komplexen Zahl z = a + b * i ist gegeben durch:

zc = a - b * i

Betrag

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

Addition

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

Subtraktion

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

Multiplikation

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

Kehrwert

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

Division

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

Potenzierung

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))

Anforderungen an die Implementierung

Da du keine eingebaute Unterstützung für komplexe Zahlen verwenden sollst, implementiere die folgenden Operationen:

  • Addition zweier komplexer Zahlen
  • Subtraktion zweier komplexer Zahlen
  • Multiplikation zweier komplexer Zahlen
  • Division zweier komplexer Zahlen
  • Konjugierte einer komplexen Zahl
  • Betrag einer komplexen Zahl
  • Potenzierung von e (der Basis des natürlichen Logarithmus) mit einer komplexen Zahl

Eigene Operatoren

Raku hat eingebaute Unterstützung für komplexe Zahlen1, daher geht es in dieser Übung eher um das Erstellen eigener Operatoren2. Operatoren werden nach ihrer Position relativ zu ihren Operanden klassifiziert. In dieser Übung gibt es vier Typen, nämlich:

  • Präfix (davor)
  • Infix (dazwischen)
  • Zirkumfix (umschließend) und
  • Postfix (danach)
  1. https://docs.raku.org/numerics#Complex ↩

  2. https://docs.raku.org/language/optut ↩


Quelle

WikipediaDer Link öffnet sich in einem neuen Fenster oder Tab
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Raku Exercism

Bereit, mit Komplexe Zahlen zu starten?

Melde dich bei Exercism an, um Raku mit 94 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.