Estoy tratando de escribir una función en C++ que resuelva para X usando la ecuación cuadrática. Esto es lo que he escrito en un principio, que parece funcionar, siempre y cuando no hay números complejos para una respuesta:Resuelva la ecuación cuadrática en C++
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;
Si, por ejemplo, yo uso la ecuación: x^2 - x - 6, I obtener la solución 3, -2 correctamente.
Mi pregunta es ¿cómo tener en cuenta que para los números complejos .... por ejemplo, dada la ecuación:
x^2 + 2x + 5
Resolución de la mano, que obtendría -1 + 2i, -1 - 2i.
Bueno, supongo que dos preguntas, ¿puedo escribir lo anterior mejor y también hacer que tenga en cuenta el número complejo?
¡Gracias por cualquier ayuda!
Los otros chicos siempre buenas respuestas para ninguna razón para mí para tratar de eclipsar a ellos;) Sin embargo, si desea una solución más general a la ecuación ax^2 + bx + c = 0, recuerde que a = = 0 debe ser un valor válido. Esto daría como resultado una división de cero, por lo que debe encargarse de este caso por separado. En este caso, significa que te queda una ecuación lineal con una raíz. ¡Salud! – ralphtheninja
Usted implica que le preocupan las raíces complejas, pero ¿qué pasa con los coeficientes complejos en la ecuación original? –
Los coeficientes complejos requieren otro enfoque por completo. Así que esa será la siguiente pregunta :) * desciende y prepara una respuesta antes de la mano * – ralphtheninja