ガイガーのHP
この前のHPがBANされたので、新しいの作った。
PHP慣れてないから、構文でエラーになることが多くて苦労する。
[php]
function getPolyfit($data, $N, $M)
{
$polyfitdata=array();
$i = 0;
$j = 0;
$k = 0;
$x = array();
$y = array();
$s = array();
$a = array();
$t = array();
$d = 0;
$px = 0;
// データの取得
for ($i = 0; $i < $N; $i++)
{
$x[] = $i;
$y[] = $data[$i];
}
for ($i = 0; $i < $N; $i++)
{
for ($j = 0; $j <= 2 * $M; $j++) // s0からs2mの計算
$s[$j] = $s[$j] + pow($x[$i], $j);
for ($j = 0; $j <= $M; $j++) // t0からtmの計算
$t[$j] = $t[$j] + pow($x[$i], $j) * $y[$i];
}
// $a[][]に$s[],$t[]の値を入れる
for ($i = 0; $i <= $M; $i++)
{
for ($j = 0; $j <= $M; $j++)
$a[$i][$j] = $s[$i + $j];
$a[$i][$M + 1] = $t[$i];
}
// はき出し
for ($k = 0; $k <= $M; $k++)
{
$p = $a[$k][$k];
for ($j = $k; $j <= $M + 1; $j++)
$a[$k][$j] = $a[$k][$j] / $p;
for ($i = 0; $i <= $M; $i++)
{
if ($i != $k)
{
$d = $a[$i][$k];
for ($j = $k; $j <= $M + 1; $j++)
$a[$i][$j] = $a[$i][$j] – $d * $a[$k][$j];
}
}
}
// 補間多項式によるyの値の計算
for ($px=0; $px < $N; $px++)
{
$p = 0;
for ($k = 0; $k <= $M; $k++)
$p = $p + $a[$k][$M + 1] * pow($px, $k);
$polyfitdata[] = $p;
}
return $polyfitdata;
}
[/php]
しばらくしたら、すっかり忘れるんだろうな。。
サイトはこちら↓
http://kappa.toypark.in/geiger/
http://kappa.toypark.in/geiger/index.php?limit=1000
limitは表示したい点数(デフォルトは499)