математика — переполнение стека решателя квадратичных уравнений

каждый. Я пытаюсь сделать решатель квадратичных уравнений, но ничего не получается. Это дает мне неправильный ответ. Я получаю х = — 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;

?>

0

Решение

Вам нужен еще один набор паренов:

$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

3

Другие решения

Это потому, что вы реализовали формула с ошибками.

Это правильная (и более читаемая) формула:

$answerx1 = (- $bx + sqrt($bx * $bx - 4 * $ax * $c)) / (2 * $ax);
$answerx2 = (- $bx - sqrt($bx * $bx - 4 * $ax * $c)) / (2 * $ax);
2

только формула не является решением, потому что 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. я только что повторил это как строку.

0
По вопросам рекламы [email protected]