Tracks
/
Julia
Julia
/
Übungen
/
Komplexe Zahlen
Komplexe Zahlen

Komplexe Zahlen

Schwer

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

Die Implementierung komplexer Zahlen in der Julia-Basis findest du hier: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.


Bonus A

Du kannst die Bonusaufgaben zur Arithmetik zwischen reellen Zahlen und komplexen Zahlen bearbeiten, indem du Folgendes auskommentierst: # enable_realcomplex_tests = true in der Stub-Datei complex-numbers.jl oder in runtests.jl

Bonus B

Du kannst die Bonusaufgaben zwischen reellen Zahlen und komplexen Zahlen bearbeiten, indem du Folgendes auskommentierst: # enable_syntaxsugar_tests = true in der Stub-Datei complex-numbers.jl oder in runtests.jl Implementiere dann jm analog zu im, sodass 1 + 1jm == ComplexNumber(1, 1) gilt.


Quelle

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

Bereit, mit Komplexe Zahlen zu starten?

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