Location : Home > Languages > Perl > Package Title : Math::ErrorPropagation |
![]() |
Math::ErrorPropagation - 統計関数の誤差を計算
use ErrorPropagation; $x1 = Math::ErrorPropagation->datum(value=>1.2, var=>0.1); $x2 = Math::ErrorPropagation->datum(value=>2.3, var=>0.12); $x3 = Math::ErrorPropagation->datum(value=>3.5); $x3->sd(0.23); $f = sin(0.5*$x1)/($x2**3)+log($x3); printf ("f = %f +/- %f", $f->central_value(), $f-sd());
平均 {x_i} = {x_0, x_1, ..., x_(n-1)} と分散 {var_i} = {var_0, var_1, ..., var_(n-1)} を持つ n 個の独立確率変数 {X_i} = {X_0, X_1, ..., X_(n-1)} の集合の関数 f({X_i}) は平均 f({x_i}) と分散 var_f(偏微分の2乗に分散を乗じた値の和)を持つ。
var_f = (df/dx_i)**2 var_i
本パッケージは自動的に関数の誤差を計算するために数学演算子を通して計算される変数の誤差伝播に対処した計算を行う。中心値(平均)及び分散または標準偏差(分散の平方根)の一方で定義されるデータを用い、関数 f を計算するために Perl の数学関数をそのデータに適用する。本演算子は f が自動的に正しい分散を持つ f となるようにオーバーロードする。
$x = Math::ErrorPropagation->datum(value=>1.2, var=>0.1);
平均 1.2 ・分散 0.1 のデータを初期化。
$x = Math::ErrorPropagation->datum();
空データを初期化。
$x->central_value(2.3);
中央値を代入。
$x->variance(0.25);
分散を代入。
$x->sd(0.5);
標準偏差を代入。
$m = $x->central_value(2.3);
中央値を読み込む。
$v = $x->variance(0.25);
分散を読み込む。
$s = $x->sd(0.5);
標準偏差を読み込む。
$y = copy $x;
データをコピーする。
$z = 1.2+$y;
$z = $y+$x;
$z = $y+2.3;
$z += $x;
データを加える。
$z++;
データをインクリメントする。
$z = $y-$x;
$z = $y-2.3;
$z = 1.2-$y;
$z -= $x;
データを引く。
$z--;
データをデクリメントする。
$z = $y*$x;
$z = $y*2.3;
$z = 1.2*$y;
$z *= $x;
データを乗じる。
$z = $y/$x;
$z = $y/2.3;
$z = 1.2/$y;
$z /= $x;
データを除する。
$z = $y**$x;
$z = $y**2.3;
$z = 1.2**$y;
べき乗。
$z = exp($x);
$z = sin($x);
$z = cos($x);
m $z = log($x);
$z = sqrt($x);
いくつかの数学関数。
バグ/断片化を発見すること。
他の数学関数、特に Math::Trig に組み込まれている関数の実装。
Z. Sroczynski, <zs@theorie.physik.uni-wuppertal.de>
perl
![]() |
Updated : 2006/08/24 |