//**************************** AFFICHAGE TABLE ******************************************** function aff_tab($tab) { echo "
[$cle] => $val\n | "; } else { echo "
"; print_r($array); print ""; } //**************************** MARGE TABLE ********************************************** function Marge($Numerateur,$Denominateur) { if(is_numeric($Denominateur) && $Denominateur != 0) { return ($Numerateur/$Denominateur); } else { return 0; } } //************************* REGRESION LINEAIRE /** * linear regression function * @param $x array x-coords * @param $y array y-coords * @returns array() m=>slope, b=>intercept */ function linear_regression($x, $y) { // Forme mX+b // calculate number points $n = count($x); // ensure both arrays of points are the same size if ($n != count($y)) { trigger_error("linear_regression(): Number of elements in coordinate arrays do not match.", E_USER_ERROR); } // calculate sums $x_sum = array_sum($x); $y_sum = array_sum($y); // Calcul Moyenne $moy_x = $x_sum/$n; $moy_y = $y_sum/$n; $xx_sum = 0; $xy_sum = 0; $x_moyx = 0; $y_moyy = 0; $x_moyxXy_moyy = 0; for($i = 0; $i < $n; $i++) { //somme x*y $xy_sum+=($x[$i]*$y[$i]); //somme x*x $xx_sum+=($x[$i]*$x[$i]); //somme(x-Moyx)^2 $x_moyx2+=pow(($x[$i]-$moy_x),2); //somme(x-Moyx)^2 $y_moyy2+= pow(($y[$i]-$moy_y),2); // somme((x-moyx)*(y-moyy)) $x_moyxXy_moyy+= ($x[$i]-$moy_x)*($y[$i]-$moy_y); //echo $y_moyy2."*"; } //echo "
".$n."/xy_sum:".$xy_sum."/x_sum:".$x_sum."/y_sum:".$y_sum."/x_moyxXy_moyy:". $x_moyxXy_moyy."/x_moyx2:".$x_moyx2."/y_moyy2:".$y_moyy2."/Moy_y:".$moy_y."/moy_x:".$moy_x;
// calculate Pente
$m = (($n * $xy_sum) - ($x_sum * $y_sum)) / (($n * $xx_sum) - ($x_sum * $x_sum));
// calculate Origine
$b = ($y_sum - ($m * $x_sum)) / $n;
// Calcul R2
$R2 = pow($x_moyxXy_moyy /(sqrt($x_moyx2*$y_moyy2)),2);
//echo "R2:".$R2;
// Stdevp x
$stdevp_x = sqrt($x_moyx2/$n);
// Stdevp y
$stdevp_y = sqrt($y_moyy2/$n);
//Cov(xy)
$cov_xy = 1/$n * $x_moyxXy_moyy;
// return result
return array("m"=>$m, "b"=>$b, "R2"=>$R2, "Stdevp_x"=>$stdevp_x, "Stdevp_y"=>$stdevp_y, "Cov_xy"=>$cov_xy );
}
// *************************************** CALCUL du POIDS d'un exercice
// Date_Ref - Date_Cloture_Exercice en TImestamp UNIX
function Pdx_Exercice($date_cloture_exercice,$date_actuelle)
{
$Duree = ($date_actuelle - $date_cloture_exercice)/(60*60*24);
$Pdx = (cos(max(-pi(),min(pi(),($Duree*0.65)/100+1.05)))+1)/2.6;
return $Pdx;
}
//***************************************CALCUL MEDIANE
// Utilisation median($Un_array)
function median()
{
$args = func_get_args();
switch(func_num_args())
{
case 0:
trigger_error('median() requires at least one parameter',E_USER_WARNING);
return false;
break;
case 1:
$args = array_pop($args);
// fallthrough
default:
if(!is_array($args)) {
trigger_error('median() requires a list of numbers to operate on or an array of numbers',E_USER_NOTICE);
return false;
}
sort($args);
$n = count($args);
$h = intval($n / 2);
if($n % 2 == 0) {
$median = ($args[$h] + $args[$h-1]) / 2;
} else {
$median = $args[$h];
}
break;
}
//echo $n."+".$args[$h]."+".$median."
";
return $median;
}
//************************************* Mise en Format Numerique
Function Format_Dec($Data,$NbDec,$SepDec,$SepThou)
{
$Temp = number_format(round($Data,$NbDec),$SepDec,$SepThou);
return($Temp);
}
//************************************* Imprime le timestamp (Pour chronometrage des temps d'execution)
Function PrintTimestamp($Title)
{
//echo $Title.date("d-m-Y H:i:s:u")."
\n";
}
?>