"; foreach($tab AS $cle => $val) { if( !is_array($val) ) { echo "[$cle] => $val\n"; } else { echo "[$cle] => \n"; aff_tab($val); } } echo ""; } //**************************** AFFICHAGE ARRAY en HIERARCHIQUE *************************** function print_h($array){ print "
";
	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"; } ?>