Heim >Backend-Entwicklung >PHP-Tutorial >Funktionscode zum Finden von Polynomableitungen in PHP

Funktionscode zum Finden von Polynomableitungen in PHP

不言
不言Original
2018-06-21 11:22:553107Durchsuche

In PHP geschriebener Funktionscode zum Finden von Polynomableitungen. Freunde, die ihn benötigen, können darauf zurückgreifen.

<?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"; 
?>

Die Ausgabe lautet:
Beispiel-x-Werte: -12, -11, -10, -. 9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
maximale Ableitung = 26,000000
Ableitung = 26,000000, wenn x = 12,000000

Ich hoffe, dass es für das Studium aller hilfreich ist Achtung auf die chinesische PHP-Website!

Verwandte Empfehlungen:

3 Möglichkeiten, Zufallszahlen in PHP zu generieren

So verwenden Sie PHP, um alle Rechte dynamisch zu generieren reserviert Art der Information

Das obige ist der detaillierte Inhalt vonFunktionscode zum Finden von Polynomableitungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn