Bearbeiten von: [Änderungshistorie]
  Zeilenumbrüche automatisch mache ich selbst mit HTML    

Ich möchte eine Mail an , nachdem mein Vorschlag bearbeitet ist.
  Nachricht zur Änderung:

Input assistance tools (JavaScript): [Link extern intern] [MathML?] [$$?]
[fed-area] [LaTeX-inline] [LaTeX-display] [Tikz] [hide-area][show-area] [Source code [num.]][?]
[Link zurück zum Kommentar]

Vorschau:
Re: Lösung der quadratischen Gleichung mit komplexen Koeffizienten
Hallo zusammen, es wäre schön, wenn Ihr Euch auf den Austausch von sachlichen Argumenten beschränken könntet. Die Darstellung von cis hat (möglicherweise) durchaus einen Vorteil, wie ich gleich zeigen werde. Die Kritik von weird ist aber dahingehend gerechtfertigt, dass sich im Grunde die ganze Sache auf das Ziehen der Wurzel einer komplexen Zahl reduzieren lässt, denn die Lösung der quadratischen Gleichung lautet genau wie in den reellen Zahlen: $$z_{1,2}=-\frac p2\pm\sqrt{\frac{p^2}4-q}$$nur dass hier halt $\frac{p^2}4-q$ auch eine komplexe Zahl sein kann. Daher bringt die Formel von cis erst einmal keine neue Erkenntnis. Die Beispiele von cis sind auch insofern unglücklich, weil sie so gewählt sind, dass sie glatt aufgehen. Nehmen wir aber ein (halbwegs) zufälliges Beispiel, wie etwa $D=17+31i$. Zunächst der Rechenaufwand mit cis Methode: $$|D|=\sqrt{17^2+31^2}=\sqrt{1250}=25\sqrt{2}$$$$D+|D|=17+25\sqrt2+31i$$$$\left|D+|D|\right|=\sqrt{(17+25\sqrt{2})^2+31^2}=\sqrt{17^2+2\cdot17\cdot25\sqrt2+1250+31^2}=\sqrt{2500+34\cdot25\sqrt2}$$$$\sqrt{|D|}\frac{D+|D|}{|D+|D||}=\sqrt{25\sqrt{2}}\cdot\frac{17+25\sqrt{2}+31i}{\sqrt{2500+34\cdot25\sqrt2}}$$Jetzt muss man genauer hinsehen, aber man kann die Wurzel vor dem Bruch mit dem Nenner teilweise kürzen: $$\sqrt{|D|}\frac{D+|D|}{|D+|D||}=\frac{17+25\sqrt{2}+31i}{\sqrt{50\sqrt2+34}}=\frac{17+25\sqrt{2}+31i}{\sqrt2 \sqrt{17+25\sqrt2}}$$Das muss man entweder so stehen lassen, oder den Realteil kürzen und den Imaginärteil passend erweitern, um dann letztlich zu erhalten: $$\sqrt{|D|}\frac{D+|D|}{|D+|D||}=\sqrt{\frac{17}2+\frac{25}2\sqrt2}+i\sqrt{\frac{25}2\sqrt2-\frac{17}2}$$Hier habe ich also den Rechenschritt des Erweiterns des Nenners sogar noch übersprungen. Die Alternative, auf die andere schon hingewiesen haben, lautet: $$\sqrt{a+bi}=\sqrt{\tfrac12\sqrt{a^2+b^2}+\tfrac12a}+i\cdot\mathrm{sgn}(b)\sqrt{\tfrac12\sqrt{a^2+b^2}-\tfrac12a}$$Auf dieses Zahlenbeispiel angewendet bedeutet das: $$\sqrt{D}=\sqrt{\tfrac12\sqrt{17^2+31^2}+\frac{17}2}+i\cdot1\cdot\sqrt{\tfrac12\sqrt{17^2+31^2}-\frac{17}2}$$$$\sqrt{D}=\sqrt{\tfrac12\sqrt{1250}+\frac{17}2}+i\sqrt{\tfrac12\sqrt{1250}-\frac{17}2}$$$$\sqrt{D}=\sqrt{\frac{25}2\sqrt2+\frac{17}2}+i\sqrt{\frac{25}2\sqrt2-\frac{17}2}$$Unter dem Strich kann man definitiv sagen, dass die Alternativformel zumindest für die manuelle Berechnung den deutlich kürzeren Weg darstellt, weil eigentlich in cis' Methode das gleiche gerechnet wird, man aber dann manuell noch die letzten Schritte (kürzen und Imaginärteil passend erweitern) durchführen muss, die in der Alternativ-Variante bereits fertig verarbeitet sind. Der potentielle (!) Vorteil der Darstellung von cis besteht dagegen in der numerischen Berechnung in Programmiersprachen. Nehmen wir an, wir haben eine Programmiersprache, die komplexe Zahlen verarbeiten kann. Dann würde man die cis-Variante so programmieren ($h$ sei eine Hilfsvariable, die Funktion "Abs()" berechne den Betrag einer ggf. komplexen Zahl, und die Funktion "Sqrt()" die Wurzel aus einer reellen Zahl): \sourceon h=Abs(D) h=Sqrt(h)*(D+h)/Abs(D+h) \sourceoff Zwei Funktionsaufrufe für "Abs()", einmal für "Sqrt()", zwei Additionen, eine Multiplikation, eine Division, zwei Wertzuweisungen an eine Variable. Mit der Alternativvariante sähe das so aus: \sourceon a=Re(D) b=Im(D) h=Sqrt(a*a+b*b) h=(Sqrt(h+a)+i*Sign(b)*Sqrt(h-a))*0.70710678118654752440084436210485 \sourceoff Von den Aufrufen für "Re()", "Im()" und "Sign()" und mehr Speicherbedarf für zwei zusätzliche Variablen abgesehen, haben wir drei Aufrufe von "Sqrt()", vier Additionen, vier Multiplikationen, vier Wertzuweisungen, also insgesamt (zumindest oberflächlich betrachtet) mehr Rechenoperationen. Wenn es darum geht, die letzten Mikrosekunden in zeitkritischem Code rauszuquetschen, sind solche Feinheiten manchmal entscheidend. Eventuell kann man Details geringfügig anders programmieren (z.B. a^2 statt a*a, wobei aber erfahrungsgemäß in den mir bekannten Programmiersprachen der doppelte Variablenaufruf und die einfache Multiplikation schneller vonstatten geht als das Potenzieren). Außerdem bedeutet für den Prozessor der Aufruf der "Abs()"-Funktion natürlich intern auch nichts anderes als $\sqrt{a^2+b^2}$, und insofern käme es jeweils auf einen Versuch an, welcher Code tatsächlich der schnellere ist - natürlich nur, falls es denn überhaupt notwendig ist, weil die Programmiersprache nicht einfach direkt die Wurzelfunktion für eine komplexe Variable zur Verfügung stellt... Ciao, Thomas
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]