Location : Home > Languages > Perl > Package Title : Simulation::Sensitivity |
![]() |
Simulation::Sensitivity - ユーザ指定の計算とパラメータによる汎用感度解析ツール
use Simulation::Sensitivity; $sim = Simulation::Sensitiviy->new( calculation => sub { my $p = shift; return $p->{alpha} + $p->{beta} } parameters => { alpha => 1.1, beta => 0.2 }, delta => 0.1 ); $result = $sim->run; print $sim->text_report($result);
Simulation::Sensitivity は汎用の感度解s系ツールである。
ユーザが計算関数・パラメータのベースケース・入力感度データを与えれば、本モジュールは感度解析を実行し、指定された delta 分だけ正と負に値を振ったパラメータで計算した計算関数を出力する。モジュールは出力に描くパラメータの影響のパーセンテージを示すテキストレポートを出力もする。
ユーザ記述の計算関数は標準形式に従っていなければならないが、形式が満足している限りどんな型の計算も行うことができる。それは1引数−計算で用いるパラメータのハッシュ参照−でなければならない。単一の数値結果のみを返す。
new
my $sim = Simulation::Sensitivity->new( calculation => sub { my $p = shift; return $p->{alpha} + $p->{beta} } parameters => { alpha => 1.1, beta => 0.2 }, delta => 0.1 );
new は引数として3つのパラメータをハッシュとしてとる。
calculation は計算で使用するサブルーチンへの参照でなければならない。これはそのような関数への使用法ガイドラインを遵守しなければならない。
parameters は計算開始時のパラメータの初期値を示すハッシュへの参照でなければならない。
delta は解析中に各パラメータを変動させるパーセンテージである。パーセンテージは10進法で表される(0.1 は 10% を意味する)。
コンストラクタとして new は Simulation::Sensitivity オブジェクトを返す。
calculation, parameters, delta
$sim->calculation()->({alpha=1.0, beta=1.0}); %p = %{$sim->parameters()}; $new_delta = $sim->delta(.15);
Simulation::Sensitivity オブジェクトにおけるパラメータ値は get/set アクセスで取得または修正することができる。引数がなければパラメータの値を返し、引数があれば新しい値を設定し、その新しい値を返す。
base
$base_case = base();
本メソッドはコンストラクタで設定されたパラメータ値のベースケースに対する結果を返す。
run
$results = run();
本メソッドは感度解析の結果を含むハッシュ参照を返す。ハッシュのキーはパラメータ配列のキーと同じである。ハッシュの値は各キーが文字列(例えば "+10%" または "-10%")と表現されたハッシュ参照で値は計算の結果と同じである。簡単な例を以下に示す。
{ alpha => { "+25%" => 5.25, "-25%" => 4.75 }, beta => { "+25%" => 6, "-25%" => 4 } }
text_report
$report = text_report( $results );
本メソッドは単一または複数行の報告を含む文字列を生成する。
run で生成される結果の集合を含むハッシュ参照が唯一のパラメータである。
バグや特徴については CPAN Request Tracker を通じて報告してほしい。
バグは bug-Simulation-Sensitivity@rt.cpan.org に電子メールで、または http://rt.cpan.org/Public/Dist/Display.html?Name=Simulation-Sensitivity でウェブを通しても報告できる。
バグまたは要望を投げたときにはバグや要望する内容を説明したテキストファイルまたは既存のテキストファイルへのパッチを含んでほしい。
David A Golden (DAGOLDEN), dagolden@cpan.org, http://dagolden.com/
Copyright (c) 2006 by David A Golden
本プログラムはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。
ライセンスの全文書は本モジュールに同封のLICENCEファイルに記されている。
ライブラリは無償で使用許諾されるので、適用法令の範囲内で、ライブラリの保証は一切ない。著作権者やその他の第三者は全く無保証で「そのまま」の状態で、且つ、明示か暗黙であるかを問わず一切の保証をつけないで提供するものとする。ここでいう保証とは、市場性や特定目的適合性についての暗黙の保証も含まれるが、それに限定されるものではない。ライブラリの品質や性能に関する全てのリスクはあなたが負うものとする。ライブラリに欠陥があるとわかった場合、それに伴う一切の派生費用や修理・訂正に要する費用は全て利用者の負担とする。
適用法令の定め、又は書面による合意がある場合を除き、著作権者や上記許諾を受けてライブラリの変更・再配布を為し得る第三者は、ライブラリを使用したこと、または使用できないことに起因する一切の損害について何らの責任も負わない。著作権者や前記の第三者が、そのような損害の発生する可能性について知らされていた場合でも同様である。なお、ここでいう損害には通常損害、特別損害、偶発損害、間接損害が含まれる(データの消失、またはその正確さの喪失、利用者や第三者が被った損失、他のプログラムとのインタフェースの不適合化等も含まれるが、これに限定されるものではない)。
![]() |
Updated : 2007/10/28 |