Maison >développement back-end >tutoriel php >Code de fonction pour trouver des dérivées polynomiales en PHP
Le code de fonction pour trouver des dérivées polynomiales écrit en PHP, les amis qui en ont besoin peuvent s'y référer
<?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=%f\n",$max_derivative); foreach ($matchs as $x_match) { printf(" derivative=%f when x=%f\n",$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"; ?>
le résultat sera :
exemples de valeurs x : -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 dérivé=26.000000
derivative=26.000000 when x=12.000000
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun pour un contenu plus connexe. , veuillez faire attention au site Web PHP chinois !
Recommandations associées :
3 façons de générer des nombres aléatoires en php
Comment utiliser php pour générer dynamiquement tous les droits mode d'information réservé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!