PHP写的求多项式导数的函数代码_php教程-查字典教程网
PHP写的求多项式导数的函数代码
PHP写的求多项式导数的函数代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:theoutputwillbe:samplexvalues:-12,-11,-10,-9,-8,-7,-6,-5,-4,-...

复制代码 代码如下:

<?php

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教程学习
    编程开发子分类