function polyregression($x, $y, $n) { $m = array(); for ($i = 0; $i < count($x); $i++) { $m[$i][0] = 1; for ($j = 1; $j <= $n; $j++) { $m[$i][$j] = $m[$i][$j - 1] * $x[$i]; } } $m = matrixsolve(matrixprod(matrixtranspose($m), $m), matrixprod(matrixtranspose($m), matrix($y, count($y), 1))); $m = matrixtranspose($m); return $m[0]; }
function veccomparesamespan($a, $b) { if (count($a) != count($b)) { return false; } include_once "matrix.php"; if ($b === null) { return 0; } foreach ($b as $k => $bv) { if (is_array($bv)) { continue; } if ($bv[0] == '[') { //in matrix notation $b[$k] = explode(',', str_replace(array('[', ']', '(', ')'), '', $bv)); } else { //in compressed notation $b[$k] = explode('|', $bv); } } foreach ($a as $av) { $b[] = $av; } $s = matrixreduce(matrixtranspose($b), true); $n = matrixnumsolutions($s, count($a)); return count($a) == $n; }