Zum Inhalt springen
Varlig-Handbuch
Varlig-Startseite

Komplexe Zahlen

Eine komplexe Zahl hat einen Realteil und einen Imaginärteil, geschrieben mit i, der Quadratwurzel aus −1. Auf dieser Seite geht es darum, komplexe Zahlen zu schreiben, mit ihnen zu rechnen, sie in Betrag und Argument zu zerlegen, Quadratwurzeln negativer Zahlen zu ziehen, und um die mathematischen Funktionen, die komplexe Werte akzeptieren.

Das hilft dir, wenn eine quadratische Gleichung keine reellen Lösungen hat, wenn du mit Wechselstromkreisen oder Signalen arbeitest oder wenn du Übungen zur Funktionentheorie überprüfst.

Komplexe Zahlen schreiben

calc
2 + 3i ergibt 2 + 3i
complex(3, -4) ergibt 3 - 4i
i^2 ergibt -1

Schreib i für den Imaginärteil direkt hinter eine Zahl, wie in 3i oder 1.5i, oder verwende i allein. complex(Realteil, Imaginärteil) baut denselben Wert aus zwei Teilen zusammen, das ist praktisch, wenn die Teile Namen sind: complex(Widerstand, Reaktanz). Beide Teile müssen reine Zahlen ohne Einheiten sein.

i bedeutet die imaginäre Einheit nur, solange nichts anderes in der Notiz i heißt. Sobald du einen Namen oder eine eigene Einheit namens i definierst, hat sie Vorrang:

calc
i = 5
2 + 3i ergibt 17
complex(2, 3) ergibt 2 + 3i

Hier wurde 3i zu 3 × 5, und die Zeile ergab 17. Namen gelten über alle Rechenblöcke einer Notiz hinweg, ein i = … irgendwo weiter oben in der Notiz hat also dieselbe Wirkung. Verwende i nicht als Namen in Notizen mit komplexen Zahlen. complex(2, 3) nutzt den Namen nicht und funktioniert deshalb weiterhin.

Rechnen

calc
(2 + 3i) + (1 - 5i) ergibt 3 - 2i
(1 + 2i) * (3 - i) ergibt 5 + 5i
(2 + 3i) * (2 - 3i) ergibt 13
10 / (3 + 4i) ergibt 1.2 - 1.6i
(1 + i)^8 ergibt 16

Addition, Subtraktion, Multiplikation, Division und ganzzahlige Potenzen sind exakt. Ist der Imaginärteil eines Ergebnisses null, wie bei (2 + 3i) * (2 - 3i), erscheint das Ergebnis als gewöhnliche Zahl. Setz jede komplexe Zahl in Klammern, wenn du multiplizierst oder dividierst, damit (2 + 3i) * (2 - 3i) nicht als 2 + (3i * 2) - 3i gelesen wird.

Bestandteile einer komplexen Zahl

calc
z = 3 + 4i
real(z) ergibt 3
imag(z) ergibt 4
conj(z) ergibt 3 - 4i
abs(z) ergibt 5
arg(1 + i) ergibt 0.7853981634
arg(1 + i) rad in degrees ergibt 45°
Funktion Liefert
real(z) Den Realteil
imag(z) Den Imaginärteil als reine Zahl
conj(z) Die konjugiert komplexe Zahl: gleicher Realteil, Imaginärteil mit umgekehrtem Vorzeichen
abs(z) Den Betrag: den Abstand von null
arg(z) Das Argument: den Winkel zur positiven reellen Achse, im Bogenmaß

arg gibt eine reine Zahl im Bogenmaß zwischen −π und π zurück. Um sie in Grad zu sehen, kennzeichne sie als Bogenmaß und rechne um, wie in der letzten Zeile. Für den umgekehrten Weg, von Betrag und Winkel zurück zur komplexen Zahl, nimm exp: 2 * exp(i * pi / 3) ist 1 + 1.7320508076i.

Quadratwurzeln negativer Zahlen

Die Quadratwurzel einer gewöhnlichen negativen Zahl ist eine Rechnung mit reellen Zahlen, deshalb zeigt sqrt(-16) einen Fehler, der dir sagt, was du stattdessen schreiben kannst: Error: imaginary number. For a complex answer, write sqrt(-16 + 0i). Um die komplexe Wurzel zu erhalten, schreib die Zahl als komplexe Zahl: Hänge 0i an oder nimm complex(…, 0):

calc
sqrt(-16 + 0i) ergibt 4i
sqrt(complex(-16, 0)) ergibt 4i
sqrt(3 + 4i) ergibt 2 + i
sqrt(2i) ergibt 1 + i

sqrt gibt den Hauptwert zurück, die Wurzel mit positivem Realteil (oder, bei negativen Zahlen, mit positivem Imaginärteil). Die andere Quadratwurzel ist ihr Negatives.

Ein Wert, den du als komplexe Zahl schreibst, bleibt komplex, auch wenn sein Imaginärteil null ist. Du kannst ihn in einem Namen speichern oder erst noch mit ihm weiterrechnen: Nach x = -16 + 0i ist sqrt(x) gleich 4i, obwohl x als -16 angezeigt wird.

Damit funktioniert die Mitternachtsformel für jede quadratische Gleichung:

calc
# Lösungen von x^2 + 2x + 5 = 0
a = 1
b = 2
c = 5
Diskriminante = b^2 - 4*a*c ergibt -16
(-b + sqrt(Diskriminante + 0i)) / (2*a) ergibt -1 + 2i
(-b - sqrt(Diskriminante + 0i)) / (2*a) ergibt -1 - 2i

Kubikwurzeln folgen derselben Hauptwertregel, was bei negativen Zahlen überraschen kann:

calc
cbrt(-8) ergibt -2
cbrt(-8 + 0i) ergibt 1 + 1.7320508076i

Beides sind Kubikwurzeln aus −8. Die reelle Version liefert die reelle Wurzel, die komplexe Version den komplexen Hauptwert.

Funktionen einer komplexen Zahl

calc
exp(i * pi) ergibt -1
ln(-1 + 0i) ergibt 3.1415926536i
i^i ergibt 0.2078795764
cos(i) ergibt 1.5430806348
sinh(i) ergibt 0.8414709848i
2^i ergibt 0.7692389014 + 0.6389612763i

Diese Funktionen akzeptieren komplexe Werte:

  • sin, cos, tan und ihre Umkehrfunktionen asin, acos, atan
  • sinh, cosh, tanh und ihre Umkehrfunktionen asinh, acosh, atanh
  • exp, ln, log (oder log10), log2, sqrt und cbrt
  • Potenzen mit gebrochenen oder komplexen Exponenten, etwa i^0.5 oder 2^i

Sie rechnen mit binären Gleitkommazahlen, die Ergebnisse sind also gute Näherungen. Rundungsreste, die zu klein sind, um eine Rolle zu spielen, erscheinen als 0, exp(i * pi) lautet also −1, wie du es aus dem Lehrbuch erwartest. Der gespeicherte Wert behält alle Stellen. Wenn du solche Ergebnisse vergleichst, prüfe deshalb, ob die Differenz winzig ist, wie in abs(exp(i * pi) + 1) < 1e-9, statt == zu verwenden.

Jede Funktion liefert ein einziges Ergebnis, aus ihrem Hauptzweig. Eine komplexe Zahl hat unendlich viele Logarithmen und mehrere Wurzeln, und du erhältst jeweils den üblichen Wert. Wie bei sqrt bleiben reelle Eingaben reell: ln(-1) und log(-100) zeigen den Fehler zu imaginären Zahlen samt der komplexen Schreibweise, die du ausprobieren kannst, während ln(-1 + 0i) πi ergibt. Der Logarithmus von null ist ein Fehler.

Funktionen, die nur für reelle Zahlen sinnvoll sind, etwa floor und round, akzeptieren keine komplexen Werte.

Komplexe Zahlen vergleichen

calc
2 + 3i == complex(2, 3) ergibt true
2 + 3i != 2 - 3i ergibt true
complex(3, 0) >= 3 ergibt true
abs(3 + 4i) > abs(1 + 2i) ergibt true

== und != funktionieren mit beliebigen komplexen Werten. <, <=, > und >= funktionieren nur, wenn beide Seiten einen Imaginärteil von null haben, denn komplexe Zahlen haben keine natürliche Ordnung: i < 2 ist ein Fehler. Um Größen zu vergleichen, vergleiche die Beträge mit abs, wie in der letzten Zeile. Komplexe Zahlen lassen sich nicht sortieren.

Die vollständigen Regeln stehen in der Referenz Höhere Mathematik: Möglichkeiten und Grenzen.

Alles zusammen

Hier ist die Kontrolle einer Aufgabe zum Wechselstromkreis: ein 30-Ω-Widerstand und eine Spule mit 40 Ω Blindwiderstand in Reihe, an einer 10-V-Spannungsquelle:

calc
# Reihenschaltung: 30 Ω Widerstand, 40 Ω Blindwiderstand, 10 V Spannung
Widerstand = 30
Reaktanz = 40
z = complex(Widerstand, Reaktanz) ergibt 30 + 40i
abs(z) ergibt 50
Strom = 10 / z ergibt 0.12 - 0.16i
abs(Strom) ergibt 0.2
arg(z) rad in degrees to 1 dp ergibt 53.1°

Die Impedanz ist 30 + 40i mit einem Betrag von 50 Ω, der Strom beträgt also 0,2 A und eilt der Spannung um etwa 53,1° nach. In der Elektrotechnik schreibt man für die imaginäre Einheit oft j; in Varlig ist es immer i. Ohm, Volt und Ampere stehen im Kommentar, weil die Teile einer komplexen Zahl keine Einheiten tragen können.