Ich versuche, eine Funktion in C++ zu schreiben, die für X mithilfe der quadratischen Gleichung löst. Das ist, was ich ursprünglich geschrieben, die so lange zu arbeiten scheint, da es keine komplexen Zahlen für eine Antwort:Quadratische Gleichung in C++ lösen
float solution1 = (float)(-1.0 * b) + (sqrt((b * b) - (4 * a * c)));
solution1 = solution1/(2*a);
cout << "Solution 1: " << solution1 << endl;
float solution2 = (float)(-b) - (sqrt((b*b) - (4 * a * c)));
solution2 = solution2/(2*a);
cout << "Solution 2: " << solution2;
Wenn zum Beispiel verwende ich die Gleichung: x^2 - x - 6, I bekomme die Lösung 3, -2 richtig.
Meine Frage ist, wie würde ich für komplexe Zahlen berücksichtigen .... zum Beispiel angesichts der Gleichung:
x^2 + 2x + 5
Solving von Hand, würde ich -1 + 2i, -1 - 2i.
Nun, ich denke, zwei Frage, kann ich die oben genannten besser und auch machen es für die komplexe Zahl?
Danke für jede Hilfe!
Die anderen Jungs zur Verfügung gestellt gute Antworten so für mich keinen Grund, sie zu versuchen und den Schatten stellen;) Wenn Sie jedoch eine allgemeinere Lösung der Gleichung ax wollen^2 + bx + c = 0, das eine erinnern = = 0 sollte ein gültiger Wert sein. Dies würde zu einer Division von Null führen, daher müssen Sie diesen Fall separat behandeln. In diesem Fall würde das bedeuten, dass Sie eine lineare Gleichung mit einer Wurzel haben. Prost! – ralphtheninja
Sie implizieren, Sie sind besorgt über komplexe Wurzeln, aber was ist mit komplexen Koeffizienten in der ursprünglichen Gleichung? –
Komplexe Koeffizienten erfordern einen anderen Ansatz vollständig. Also wird das die nächste Frage sein :) * schreit ab und bereitet eine Antwort vor Hand vor * – ralphtheninja