Home > php教程 > php手册 > PHP如何求一元二次方程的根?

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

WBOY
Release: 2016-06-13 09:39:00
Original
3261 people have browsed it

今天有人问题一个数学问题,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 class="brush:php;toolbar:false">求得根: <br>"; 
print_r($root); 
echo " <pre class="brush:php;toolbar:false">"; 
  
?>
Copy after login

程序运行的结果为:

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

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

一元二次方程为4x2+-2x+1
求得根: 
Array
(
    [0] => no root
    [1] => no root
)
Copy after login
Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template