简明现代魔法 -> PHP服务器脚本 -> PHP求一元二次方程的根的算法

PHP求一元二次方程的根的算法

2011-03-02

今天有人问题一个数学问题,4x+1/x=2,求x是多少。把方程转化一下,4x² + 1 = 2x,然后4x² - 2x + 1 =0,其实就是个一元二次方程的问题。好久没弄这些东西了,数学都还高中老师了。还好会写程序,下面用程序求出这个方程的根。

<? 
//ax*x bx c=0;  一元二次方程一般形式  
  
//系数设定  
$a = 2;  
$b = 3;  
$c = 0;  

echo '一元二次方程为';
echo $a.'x²'.'+'.$b.'x'.'+'.$c;
  
//求根的函数 
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>"; 
  
?>

程序运行的结果为:

一元二次方程为2x²+3x+0
求得根: 
Array
(
    [0] => 0
    [1] => -1.5
)

回到最初的问题,经程序运算,结果为:

一元二次方程为4x²+-2x+1
求得根: 
Array
(
    [0] => no root
    [1] => no root
)
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们