Home > Backend Development > PHP Tutorial > Function code for finding polynomial derivatives written in PHP

Function code for finding polynomial derivatives written in PHP

黄舟
Release: 2023-03-03 14:46:01
Original
1302 people have browsed it

代码如下:


function getDerivativeByFormulaAndXDATA($formula, $x_data){ 
$xArray = explode("+", $formula); 
$Derivative = 0; 
foreach ($xArray as $x_record) { 
$tmpArray = explode("x^", $x_record); 
if(count($tmpArray) == 2){ 
$coefficient = $tmpArray[0]==""?1:$tmpArray[0]; 
$exp = $tmpArray[1]; 

//constant 
else { 
$coefficient = $tmpArray[0]; 
$exp = 0; 

$Derivative += $coefficient*$exp*pow($x_data,$exp-1); 

return $Derivative; 

function getValueByFormulaAndXDATA($formula, $x_data){ 
$xArray = explode("+", $formula); 
$y_data = 0; 
foreach ($xArray as $x_record) { 
$tmpArray = explode("x^", $x_record); 
if(count($tmpArray) == 2){ 
$coefficient = $tmpArray[0]==""?1:$tmpArray[0]; 
$exp = $tmpArray[1]; 

//constant 
else { 
$coefficient = $tmpArray[0]; 
$exp = 0; 

$y_data += $coefficient*pow($x_data,$exp); 

return $y_data; 

function getMaxDerivativeByFormulaAndXDATAS($formula, $x_datas, &$matchs){ 
$derivatives = array(); 
$max_derivative = 0; 
foreach ($x_datas as $x_data) { 
$derivative = getDerivativeByFormulaAndXDATA($formula, $x_data); 
$derivatives[$x_data] = $derivative; 
$max_derivative = $max_derivative>=abs($derivative)?$max_derivative:abs($derivative); 
//printf("x=%f, derivative=%f n",$x_data, $derivative); 

$matchs = array(); 
foreach ($derivatives as $x_data=>$derivative) { 
if(abs($derivative) == $max_derivative){ 
$matchs[] = $x_data; 


printf("max derivative=%fn",$max_derivative); 
foreach ($matchs as $x_match) { 
printf(" derivative=%f when x=%fn",$derivatives[$x_match], $x_match); 


//notice the format of formula: ax^b if b=0 could omit except coefficient a, if a=1 could omit coefficient 
$formula = "x^2+2x^1+1"; 
print "The formula is $formula n"; 
//printf("Derivative of 2 is %f n",getDerivativeByFormulaAndXDATA($formula, 3.2)); 
//print getValueByFormulaAndXDATA($formula, 3.2)."n"; 
$sampleData = array(-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12); 
foreach ($sampleData as $x_data) { 
$str.=$x_data.", "; 

print "sample x values: $str n"; 
getMaxDerivativeByFormulaAndXDATAS($formula, $sampleData, $matchs)."n"; 
?> 
 


the output will be: 
sample x values: -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
max derivative=26.000000 
derivative=26.000000 when x=12.000000

 以上就是PHP写的求多项式导数的函数代码的内容,更多相关文章请关注PHP中文网(www.php.cn)! 


Related labels:
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 Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template