Zwei Fragen zum Rechnen mit komplexen Zahlen



  • Hallo, ich wollte zur Übung ein Programm schreiben, das mit komplexen Zahlen rechnen kann. Dabei habe ich zwei Fragen:

    1. Bei der Multiplikation gibt es ja einen "Trick", um die Anzahl der benötigten Multiplikationen von 4 auf 3 zu reduzieren. Gibt es so etwas auch für die Division (habe bei google nichts gefunden)?

    2. Nach der eulerschen Formel ist ja e^(i*b) = cos(b) + i*sin(b). Warum ist dann e^(a-ib) = e^a(cos(b) - isin(b)) und nicht e^a(cos(-b) + isin(-b))* ? Muss man hier den Fall gesondert betrachten, falls der imaginäranteil negativ ist?

    Schonmal Danke für Antworten!



  • Zu (1) kann ich dir nichts sagen, aber zu (2): Wenn du beachtest, dass cos(-x) = cos(x) und sin(-x) = -sin(x), dann sind beide Ausdrücke gleich.



  • KomplexPlane schrieb:

    2. Nach der eulerschen Formel ist ja e^(i*b) = cos(b) + i*sin(b). Warum ist dann e^(a-ib) = e^a(cos(b) - isin(b)) und nicht e^a(cos(-b) + isin(-b))* ? Muss man hier den Fall gesondert betrachten, falls der imaginäranteil negativ ist?

    Nein, mußt du nicht - nur die Symmetrie-Eigenschaften der trigonometrischen Funktionen.



  • Brett -> Kopf. Ihr habt ja so recht 😃
    Danke!


  • Mod

    KomplexPlane schrieb:

    1. Bei der Multiplikation gibt es ja einen "Trick", um die Anzahl der benötigten Multiplikationen von 4 auf 3 zu reduzieren. Gibt es so etwas auch für die Division (habe bei google nichts gefunden)?

    Sei vorsichtig mit solchen Tricks. Die sind auf modernen Computern gerne auch mal langsamer als der naive Weg. Teilweise eventuell auch ungenauer. So etwas solltest du unbedingt testen.

    Ein Blick in die Standardbibliothek des GNU C++-Compilers zeigt, dass dort die komplexe Multiplikation auf naive Weise durchgeführt wird (wobei ein Kommentar dies warnend hervorhebt). Die werden sicherlich getestet haben, was am besten ist.



  • Danke für den Tipp. Aber ich arbeite hier in meinem Fall mit einer BigNumber Klasse, in der eine Multiplikation deutlich teurer, als eine Addition ist. Daher auch die Frage 🙂



  • Hmm, eventuell lässt sich etwas daran drehen, wenn du die Division zurückführst auf die Multiplikation.
    (im Zähler kannst du deinen "Trick" anwenden, im Nenner hast du zwei Multiplikationen und eine Addition)


Anmelden zum Antworten