程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP如何求一元二次方程的根?

PHP如何求一元二次方程的根?

編輯:關於PHP編程

今天有人問題一個數學問題,4x+1/x=2,求x是多少。把方程轉化一下,4x2 + 1 = 2x,然後4x2 - 2x + 1 =0,其實就是個一元二次方程的問題。好久沒弄這些東西了,數學都還高中老師了。還好會寫程序,下面用程序求出這個方程的根。

<? 
//ax*x bx c=0;  一元二次方程一般形式  
  
//系數設定  
$a = 2;  
$b = 3;  
$c = 0;  
echo '一元二次方程為';
echo $a.'x2'.'+'.$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>"; 
  
?>

程序運行的結果為:

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

回到最初的問題,經程序運算,結果為:

一元二次方程為4x2+-2x+1
求得根: 
Array
(
    [0] => no root
    [1] => no root
)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved