2016-04-07 12 views
0

alle. Ich versuche, einen quadratischen Gleichungslöser zu machen, aber nichts funktioniert. Es gibt mir die falsche Antwort. Ich bekomme x = - 2,5 und x = - 3,5, wenn die Antwort ist -2 und -1 für diese Gleichung:Quadratische Gleichung Solver PHP

x^2 + 3x + 2

Hier ist mein Code:

<?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; 

?> 

Antwort

3

Sie benötigen einen weiteren Satz von Pars:

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

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

die -b in die quadratische Gleichung Formel gliedert sich auch durch 2a

2

Das liegt daran, dass Sie die formula mit Fehlern implementiert haben.

Dies ist die richtige (und besser lesbar) Formel:

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

Vielen Dank! Das hat für mich funktioniert :) –

0

nur Formel ist nicht die Lösung, weil sqrt - kann ($ bx * $ bx 4 * $ ax * $ c) -Komplex und einem Ergebnis führen, wird dir keine Lösung geben. über komplexe Zahlen zu lernen - complex numbers

kurz komplexe Zahl "i" hier ist sqrt (-1)

diese Sie Bedingung hinzufügen müssen lösen: zB: 3x2 + 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. 
} 

als Sie entscheiden müssen, wie Sie Ihre Werte von ax und bx zeigen möchten. Ich habe es gerade als eine Saite wiederholt.