Location : Home > Languages > Perl > Package Title : Math::Approx |
![]() |
Math::Approx - 与えられたデータに対して近似式を推計
new (constructor)
Math::Approx->new(\&poly, $degree, %data);
最初の引数はコード参照(CODE reference)であり、データごとに繰り返し使用される関数である。その関数は degree と x の2つの引数をとる。
近似を行う関数 poly としては簡単な多項式を次のように定義できる。
sub poly { my($n,$x) = @_; return $x ** $n; }
もしコンストラクタにおける第1引数がコード参照ではなく FALSE であれば、上記の多項式 poly は数え上げ関数(iterator function)を用いる。
第2引数は近似を行う最大次元数を与える。この値は 0 から始まる。
最後の引数は記事すべきデータの組 x と y である。
コンストラクタは Math::Approx への参照を返す。
approx
$approximation->approx(17);
引数として与えられた x の値に対応する近似値 y の値を返す。
fit
$approximation->fit;
データに対する平均2乗誤差を返す。
plot
$approximation->plot("tmp/app");
引数として与えられた名称のファイルにデータと対応する近似値を出力する。出力はgnuplot(1)で表示できる。
$approximation->print;
近似に関する情報を標準出力に出力する。
use Math::Approx; sub poly { my($n,$x) = @_; return $x ** $n; } for (1..20) { $x{$_} = sin($_/10)*cos($_/30)+0.3*rand; } $a = new Math::Approx (\&poly, 5, %x); $a->print; $a->plot("math-approx-demo.out"); print "Fit: ", $a->fit, "\n";
gnuplot(1).
Ulrich Pfeifer <pfeifer@wait.de>
![]() |
Updated : 2006/07/8 |