каждый. Я пытаюсь сделать решатель квадратичных уравнений, но ничего не получается. Это дает мне неправильный ответ. Я получаю х = — 2,5 и х = — 3,5, когда ответ -2 и -1 для этого уравнения:
х ^ 2 + 3х + 2
Вот мой код:
<?php
$ax = $_REQUEST['num9'];
$bx = $_REQUEST['num10'];
$c = $_REQUEST['num11'];
$answerx1 = ($bx * -1) + (sqrt(($bx * $bx) + (-1 * 4 * $ax * $c)) / (2 * $ax));
$answerx2 = ($bx * -1) - (sqrt(($bx * $bx) + (-1 * 4 * $ax * $c)) / (2 * $ax));
echo "The answers are: x = " . $answerx1 . " or x = " . $answerx2;
?>
Вам нужен еще один набор паренов:
$answerx1 = (($bx * -1) + (sqrt(($bx * $bx) + (-1 * 4 * $ax * $c))) / (2 * $ax));
$answerx2 = (($bx * -1) - (sqrt(($bx * $bx) + (-1 * 4 * $ax * $c))) / (2 * $ax));
-b
в формуле квадратного уравнения также делится на 2a
Это потому, что вы реализовали формула с ошибками.
Это правильная (и более читаемая) формула:
$answerx1 = (- $bx + sqrt($bx * $bx - 4 * $ax * $c)) / (2 * $ax);
$answerx2 = (- $bx - sqrt($bx * $bx - 4 * $ax * $c)) / (2 * $ax);
только формула не является решением, потому что sqrt ($ bx * $ bx — 4 * $ ax * $ c) может быть сложным, и результат не даст вам решения.
Чтобы узнать о комплексных числах — сложные числа
в коротком комплексном числе «i» здесь — sqrt (-1)
Для решения этой проблемы необходимо добавить условие:
например: 3×2 + 4x + 2 = 0
$num = ($bx * $bx - 4 * $ax * $c)
if($num<0) {
echo "(- $bx + ".sqrt(abs($bx * $bx - 4 * $ax * $c)."i)) / ".(2 * $ax);
echo "\n";
echo "(- $bx + ".sqrt(abs($bx * $bx - 4 * $ax * $c)."i)) / ".(2 * $ax);
} else {
//(-b(+/-)sqrt(b*b-(4*a*c)))/2a formula method.
}
чем вам нужно решить, как вы хотите показать свои значения ax и bx. я только что повторил это как строку.