to: luojxun 请问□x*x+□x+□=0 这是一元二次还是二元一次? 二元一次方程是 ax+by=c 二元一次方程组是 a1x+b1y=c1 a2x+b2y=c2 ...用矩阵的是二元一次方程组,不知道为什么这么简单的问题都搞不清楚,也不知道谁在闹笑话。ax*x+bx+c=0的解法 1) a = 0, b = 0, c = 0 x任意值 2) a = 0, b = 0, c <> 0 x无解 3) a = 0, b <>0, x = -c/b 4) a <>0, b*b - 4*a*c >= 0, x = (-b+sqrt(b*b - 4*a*c))/(2*a) x = (-b-sqrt(b*b - 4*a*c))/(2*a) 5) a <> 0 b*b - 4*a*c < 0, x无解惑者表示成复数
$a=4;
$b=-4;
$c=1;//标志
$flg=$b*$b-4*$a*$c;//放根的数组
$x=0;
$x=array();//△>0 两个不同的根
if($flg>0)
{
$x[0]=(0-$b)/2/$a+sqrt($flg);
$x[1]=(0-$b)/2/$a-sqrt($flg);
}
else if($flg==0)//△=0 两个相同的根
{
$x[0]=(0-$b)/2/$a;
$x[1]=(0-$b)/2/$a;
}
else // 无根
{
$x[0]=NULL;
$x[1]=NULL;
}
二元一次方程是 ax+by=c
二元一次方程组是
a1x+b1y=c1
a2x+b2y=c2
...用矩阵的是二元一次方程组,不知道为什么这么简单的问题都搞不清楚,也不知道谁在闹笑话。ax*x+bx+c=0的解法
1) a = 0, b = 0, c = 0 x任意值
2) a = 0, b = 0, c <> 0 x无解
3) a = 0, b <>0, x = -c/b
4) a <>0, b*b - 4*a*c >= 0, x = (-b+sqrt(b*b - 4*a*c))/(2*a) x = (-b-sqrt(b*b - 4*a*c))/(2*a)
5) a <> 0 b*b - 4*a*c < 0, x无解惑者表示成复数
//ax*x+bx+c=0; 一元二次方程一般形式 //系数设定
$a=4;
$b=-4;
$c=1; //求根的函数
function get_root($a,$b,$c)
{
//放根的数组
$x=0;
$x=array();
if($a==0)
{
if($b==0)
if($c==0)
{
$x[0]=0;
$x[1]="no root";
}
else
{
$x[0]="no root";
$x[1]="no root";
}
else if($b!=0)
{
$x[0]=(0-$c)/$b;
$x[1]="no root";
}
}
else
{
//标志
$flg=$b*$b-4*$a*$c;
//△ >0 两个不同的根
if($flg >0)
{
$x[0]=((0-$b)+sqrt($flg))/2/$a;
$x[1]=((0-$b)-sqrt($flg))/2/$a;
}
else if($flg==0)//△=0 两个相同的根
{
$x[0]=(0-$b)/2/$a;
$x[1]=(0-$b)/2/$a;
}
else // 无根
{
$x[0]="no root";
$x[1]="no root";
}
}
return $x;
}//验证代码 参数为顶部设置的a b c 的值,可自行修改测试
$root=array();
$root=get_root($a,$b,$c);
echo "<pre>根:<br>";
print_r($root);
echo "<pre>";
?>上面写错了个地方修改了下