Я пытаюсь написать функцию в C++, которая решает для X, используя квадратичное уравнение. Это то, что я написал вначале, что, кажется, работает до тех пор, пока не существует комплексных чисел для ответа:Решите квадратичное уравнение в 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;
Если, например, я использую уравнение: х^2 - х - 6, я правильное решение 3, -2.
Мой вопрос заключается в том, как бы мне объяснить комплексных чисел .... например, учитывая уравнение:
х^2 + 2x + 5
Решая вручную, я хотел бы получить -1 + 2i, -1 - 2i.
Ну, я думаю, что два вопроса, могу ли я написать выше, а также сделать его учет для комплексного числа?
Спасибо за помощь!
Остальные ребята при условии хороших ответов так нет причин для меня не пытаться затмить их;) Тем не менее, если вы хотите получить более общее решение уравнения ах^2 + Ьх + с = 0, помните, что а = = 0 должно быть допустимым значением. Это приведет к делению нуля, поэтому вы должны позаботиться об этом случае отдельно. В этом случае это будет означать, что вы останетесь с линейным уравнением с одним корнем. Приветствия! – ralphtheninja
Вы подразумеваете, что вас беспокоят сложные корни, но как насчет комплексных коэффициентов в исходном уравнении? –
Сложные коэффициенты требуют другого подхода полностью. Итак, это будет следующий вопрос :) * отмахивается и готовит ответ перед рукой * – ralphtheninja